hb_cdxIndexPageRead: Read index page failed. - Ajudem!
Moderador: Moderadores
hb_cdxIndexPageRead: Read index page failed. - Ajudem!
Amigos, de tempos em tempos me acontece este erro:
hb_cdxIndexPageRead: Read index page failed.
Já deletei os indices e nada. O Kapiaba tentou me ajudar, passando algumas configurações mais mesmo assim de tempos em tempos acontece o erro:
Estou fazendo assim para chamar o RDDCDX, por favor me ajudem:
xharb 1.1 + fwh 8.02 + CDX
PRG:
ANNOUNCE RDDSYS
REQUEST OrdKeyNo, OrdKeyCount, OrdKeyGoto
REQUEST DBFCDX, DBFFPT
FUNCTION MAIN()
RddSetDefault("DBFCDX")
...
hb_cdxIndexPageRead: Read index page failed.
Já deletei os indices e nada. O Kapiaba tentou me ajudar, passando algumas configurações mais mesmo assim de tempos em tempos acontece o erro:
Estou fazendo assim para chamar o RDDCDX, por favor me ajudem:
xharb 1.1 + fwh 8.02 + CDX
PRG:
ANNOUNCE RDDSYS
REQUEST OrdKeyNo, OrdKeyCount, OrdKeyGoto
REQUEST DBFCDX, DBFFPT
FUNCTION MAIN()
RddSetDefault("DBFCDX")
...
xharbour 1.1.0 + FWH 9.02 + SQLLIB + SQLRDD + MYSQL + PELLES + WORKSHOP + XMATE + EMS
-
mmaciel11
- Usuário Nível 2

- Mensagens: 69
- Registrado em: 23 Mar 2006 11:16
- Localização: sao luis
- Contato:
Re: hb_cdxIndexPageRead: Read index page failed. - Ajudem!
amigao faço assim no meu e nunca deu problema !!!
Function Main()
Public _caminho
HB_SETCODEPAGE("PT")
request DBFCDX
RddSetDefault('DBFCDX')
SET INTERACTIVECLOSE OFF
Set date british
Set century on
Set epoch to year(date())+30
Set browsesync on
Set deleted on
Set multiple off warning
Set tooltipballoon on
Set navigation extended
Set SoftSeek OFF
SET CODEPAGE TO PORTUGUESE
SET LANGUAGE TO PORTUGUESE
Function Main()
Public _caminho
HB_SETCODEPAGE("PT")
request DBFCDX
RddSetDefault('DBFCDX')
SET INTERACTIVECLOSE OFF
Set date british
Set century on
Set epoch to year(date())+30
Set browsesync on
Set deleted on
Set multiple off warning
Set tooltipballoon on
Set navigation extended
Set SoftSeek OFF
SET CODEPAGE TO PORTUGUESE
SET LANGUAGE TO PORTUGUESE
HBMake v1.55 - xHarbour Make
xHarbour build 0.99.60 (simplex)
Borland c++ 5.5.1
xHarbour build 0.99.60 (simplex)
Borland c++ 5.5.1
hb_cdxIndexPageRead: Read index page failed. - Ajudem!
Olá... tive o mesmo problema, mas é muito raro, então o q fiz um colocar um TRY CATCH
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
-
claudiochaves
- Usuário Nível 1

- Mensagens: 35
- Registrado em: 28 Jul 2017 15:48
- Localização: campinas/sp
hb_cdxIndexPageRead: Read index page failed. - Ajudem!
Boa tarde Pessoal, estou tendo as vezes esta mensagem. Mas não sei aonde acontece.
Como vocês sabem qual o dbf que apresenta problema? Tem alguma rotina de teste de indices?
Obrigado, abraços,
Como vocês sabem qual o dbf que apresenta problema? Tem alguma rotina de teste de indices?
Obrigado, abraços,
Claudio Chaves
Desenvolvedor
Desenvolvedor
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
hb_cdxIndexPageRead: Read index page failed. - Ajudem!
Ola!
É xHarbour ?
Use o Harbour 3.2 ou 3.4
Em mensagens acima tem comandos que nem é do Harbour é de alguma LIB gráfica, talvez Minigui e não tem nada a ver com RDD.
Saudações,
Itamar M. Lins Jr.
É xHarbour ?
Use o Harbour 3.2 ou 3.4
Em mensagens acima tem comandos que nem é do Harbour é de alguma LIB gráfica, talvez Minigui e não tem nada a ver com RDD.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
-
claudiochaves
- Usuário Nível 1

- Mensagens: 35
- Registrado em: 28 Jul 2017 15:48
- Localização: campinas/sp
hb_cdxIndexPageRead: Read index page failed. - Ajudem!
Ola Itamar, obrigado pela resposta.
Eu uso Xharbour.
O problema é em alguma tabela mesmo, porque refazendo o cdx fica normal.
Vou procurar na web alguma forma de trabalhar esta função , ja achei que ela checa o tamanho do arquivo, mas ainda preciso entender melhor.
Obrigado, abraços,
Eu uso Xharbour.
O problema é em alguma tabela mesmo, porque refazendo o cdx fica normal.
Vou procurar na web alguma forma de trabalhar esta função , ja achei que ela checa o tamanho do arquivo, mas ainda preciso entender melhor.
Obrigado, abraços,
Claudio Chaves
Desenvolvedor
Desenvolvedor
hb_cdxIndexPageRead: Read index page failed. - Ajudem!
Código: Selecionar todos
/*
* read index page
*/
static void hb_cdxIndexPageRead( LPCDXINDEX pIndex, HB_ULONG ulPage,
HB_BYTE * pBuffer, HB_SIZE nSize )
{
if( pIndex->fShared && ! ( pIndex->lockRead || pIndex->lockWrite ) )
hb_errInternal( 9103, "hb_cdxIndexPageRead on not locked index file.", NULL, NULL );
if( hb_fileReadAt( pIndex->pFile, pBuffer, nSize,
hb_cdxFilePageOffset( pIndex, ulPage ) ) != nSize )
hb_errInternal( EDBF_READ, "hb_cdxIndexPageRead: Read index page failed.", NULL, NULL );
#ifdef HB_CDX_DBGUPDT
cdxReadNO++;
#endif
}
O que pode causar isso é: O index não foi atualizado com as novas informações
hb_cdxIndexPageRead: Read index page failed. - Ajudem!
Uso muito indice temporario criado com ADDITIVE MEMORY no final, e percebo q depois de muito utilizar se faz necessário recriar o indíce.
vou dar um exemplo
Tenho uma indice chamado Mov (de movimentação) dentro dele tenho
MOV1, MOV2 ... até o 9
e em determinada situação para filtrar crio um indice temporario com o comando no final ADDITIVE MEMORY, q vai criar a ordem 10 no caso
blz tudo certo.
Conforme o usuário vai trabalhando no dia na maioria das vezes não da problema, mas com o passar dos dias (não sei se é q vai acumulando), em determinado momento da esse erro, mas se o cliente sai da rotina em questão e volta ou sai e volta no sistema não tem mais esse tipo de problema.
Não sei o q ocasiona ele. Mas é muito raro de ocorrer.
vou dar um exemplo
Tenho uma indice chamado Mov (de movimentação) dentro dele tenho
MOV1, MOV2 ... até o 9
e em determinada situação para filtrar crio um indice temporario com o comando no final ADDITIVE MEMORY, q vai criar a ordem 10 no caso
blz tudo certo.
Conforme o usuário vai trabalhando no dia na maioria das vezes não da problema, mas com o passar dos dias (não sei se é q vai acumulando), em determinado momento da esse erro, mas se o cliente sai da rotina em questão e volta ou sai e volta no sistema não tem mais esse tipo de problema.
Não sei o q ocasiona ele. Mas é muito raro de ocorrer.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
-
claudiochaves
- Usuário Nível 1

- Mensagens: 35
- Registrado em: 28 Jul 2017 15:48
- Localização: campinas/sp
hb_cdxIndexPageRead: Read index page failed. - Ajudem!
Ola Pessoal, obrigado pela informações.
No grupo do xharbour o pessoal avisou de uma atualização do xhb build 10259 que contempla agora indicação de qual tabela esta com problema.
abraços,
No grupo do xharbour o pessoal avisou de uma atualização do xhb build 10259 que contempla agora indicação de qual tabela esta com problema.
abraços,
Claudio Chaves
Desenvolvedor
Desenvolvedor
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
hb_cdxIndexPageRead: Read index page failed. - Ajudem!
Tô enxergando direito?claudiochaves escreveu:No grupo do xharbour o pessoal avisou de uma atualização do xhb build 10259 que contempla agora indicação de qual tabela esta com problema.
Com base na linha do erro, é só olhar no fonte.
Ou não tinha isso?
É por isso que gosto da minha errorsys kkkkkk
Mas vamos ao problema:
O índice está estragado.
Possíveis causas: muitas
Vamos à básica: já está usando CDX ?
Acredito que quase ninguém use NTX e pelo mesmo motivo os desenvolvedores nem percam tempo mexendo em NTX.
Na prática também tenho esse problema, talvez uma vez cada 6 meses, mas nunca reindexo, então considero até normal de vez em quando.
Mas também acontece por falhas de rede.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
hb_cdxIndexPageRead: Read index page failed. - Ajudem!
Ola!
Está usando MT NO xHB ?
O tal workaround...Gambiarra no português.do xHb.
Tem um bugs corrigidos no LetoDbf, veja se vc está acessando a tabela com PAGINAS diferentes, PT850, UTF8, PTISO, etc...
Saudações,
Itamar M. Lins Jr.
Está usando MT NO xHB ?
Código: Selecionar todos
Fixed. Please try after
2019-05-23 00:16 UTC+0100 Enrico Maria Giordano
<e.m.g...@emagsoftware.it>
* source\vm\errorapi.c
! add HB_THREAD_STUB to hb_errInternal() to allow mt compilation Tem um bugs corrigidos no LetoDbf, veja se vc está acessando a tabela com PAGINAS diferentes, PT850, UTF8, PTISO, etc...
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
hb_cdxIndexPageRead: Read index page failed. - Ajudem!
Só um complemento:
O Harbour utiliza HB_OUT.LOG para erros que não passam pela errorsys.
Na minha errorsys faço uso do mesmo arquivo, portanto, ao usar HB_OUT.LOG pego qualquer erro em geral, inclusive erros "não tratáveis".
Talvez encontre algo nesse arquivo.
O Harbour utiliza HB_OUT.LOG para erros que não passam pela errorsys.
Na minha errorsys faço uso do mesmo arquivo, portanto, ao usar HB_OUT.LOG pego qualquer erro em geral, inclusive erros "não tratáveis".
Talvez encontre algo nesse arquivo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
hb_cdxIndexPageRead: Read index page failed. - Ajudem!
Estou tendo o mesmo problema com DBF+CDX usando harbour 3.2 conforme cito neste post https://pctoledo.org/forum/viewto ... 45#p139045 ocorrendo aleatoriamente.
ClaudioChaves, conseguiu alguma solução no seu caso?
ClaudioChaves, conseguiu alguma solução no seu caso?
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
hb_cdxIndexPageRead: Read index page failed. - Ajudem!
Lembrei de uma coisa, que tem programador que ainda faz, que já era ruim no Clipper e no Harbour é pior ainda.
Mas se for Clipper.... melhor usar apenas OL_Yield() dentro do DO WHILE.
Isso mata Windows, rede, CPU, e tudo mais.DO WHILE ! Rlock()
ENDDO
Assim é uma maravilha.DO WHILE ! Rlock()
Inkey(0.3)
ENDDO
Mas se for Clipper.... melhor usar apenas OL_Yield() dentro do DO WHILE.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
hb_cdxIndexPageRead: Read index page failed. - Ajudem!
Vamos recapitular como eu uso, e dificilmente tenho problema:
RecLock()
REPLACE ...
RecUnlock()
Se um usuário altera "simultâneo" ou não, dá no mesmo.
Qual a diferença de alterar 1 segundo depois ou 1 hora depois? o último que altera é o que fica, então não precisa critério diferente, ou deixar registro bloqueado.
A exceção seria pedidos, pra não mexerem enquanto está emitindo nota.
É bloquear, salvar e desbloquear, nada de deixar uma eternidade bloqueado.
O usuário vai almoçar e deixa o sistema aberto... dane-se... não tem nada bloqueado, não tem nenhum problema.
Mas se deixar registro bloqueado..... O cara vai almoçar, e fica tudo bloqueado, gerando problemas.
Fora isso, o default do Windows é uns 15 minutos pra terminal desocupado.
Se o terminal não conversar com o servidor, o servidor fecha a conexão, e vai reabrir quando o terminal voltar a conversar.
Se o cara deixou o aplicativo aberto e foi almoçar... quando voltar o Windows vai ter deixado a rede de fora, e vai dar erro.
Talvez até esse erro de leitura de CDX, porque a rede se desconectou e o Harbour não espera reconectar.
"Aguarde... que o registro está bloqueado por outro usuário"
Essa mensagem nunca mais vai acontecer, porque cada usuário só vai bloquear por uma fração de segundos, só pra fazer REPLACE.
RecLock()
REPLACE ...
RecUnlock()
Se um usuário altera "simultâneo" ou não, dá no mesmo.
Qual a diferença de alterar 1 segundo depois ou 1 hora depois? o último que altera é o que fica, então não precisa critério diferente, ou deixar registro bloqueado.
A exceção seria pedidos, pra não mexerem enquanto está emitindo nota.
É bloquear, salvar e desbloquear, nada de deixar uma eternidade bloqueado.
O usuário vai almoçar e deixa o sistema aberto... dane-se... não tem nada bloqueado, não tem nenhum problema.
Mas se deixar registro bloqueado..... O cara vai almoçar, e fica tudo bloqueado, gerando problemas.
Fora isso, o default do Windows é uns 15 minutos pra terminal desocupado.
Se o terminal não conversar com o servidor, o servidor fecha a conexão, e vai reabrir quando o terminal voltar a conversar.
Se o cara deixou o aplicativo aberto e foi almoçar... quando voltar o Windows vai ter deixado a rede de fora, e vai dar erro.
Talvez até esse erro de leitura de CDX, porque a rede se desconectou e o Harbour não espera reconectar.
"Aguarde... que o registro está bloqueado por outro usuário"
Essa mensagem nunca mais vai acontecer, porque cada usuário só vai bloquear por uma fração de segundos, só pra fazer REPLACE.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/



