Clipper On Line • Ver Tópico - hb_cdxIndexPageRead: Read index page failed. - Ajudem!

hb_cdxIndexPageRead: Read index page failed. - Ajudem!

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

hb_cdxIndexPageRead: Read index page failed. - Ajudem!

Mensagempor bira » 31 Mai 2008 10:46

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")

...
xharbour 1.1.0 + FWH 9.02 + SQLLIB + SQLRDD + MYSQL + PELLES + WORKSHOP + XMATE + EMS
bira
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 17
Data de registro: 28 Jul 2004 10:58
Cidade/Estado: SÃO PAULO
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Re: hb_cdxIndexPageRead: Read index page failed. - Ajudem!

Mensagempor mmaciel11 » 04 Jul 2008 17:34

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
HBMake v1.55 - xHarbour Make
xHarbour build 0.99.60 (simplex)
Borland c++ 5.5.1
mmaciel11
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 69
Data de registro: 23 Mar 2006 11:16
Cidade/Estado: sao luis
Curtiu: 0 vez
Mens.Curtidas: 0 vez

hb_cdxIndexPageRead: Read index page failed. - Ajudem!

Mensagempor fladimir » 07 Mai 2018 15:11

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.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

hb_cdxIndexPageRead: Read index page failed. - Ajudem!

Mensagempor claudiochaves » 21 Fev 2020 18:31

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,
Claudio Chaves
Desenvolvedor
claudiochaves
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 29
Data de registro: 28 Jul 2017 15:48
Cidade/Estado: campinas/sp
Curtiu: 19 vezes
Mens.Curtidas: 1 vez

hb_cdxIndexPageRead: Read index page failed. - Ajudem!

Mensagempor Itamar M. Lins Jr. » 21 Fev 2020 20:01

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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

hb_cdxIndexPageRead: Read index page failed. - Ajudem!

Mensagempor claudiochaves » 22 Fev 2020 12:02

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,
Claudio Chaves
Desenvolvedor
claudiochaves
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 29
Data de registro: 28 Jul 2017 15:48
Cidade/Estado: campinas/sp
Curtiu: 19 vezes
Mens.Curtidas: 1 vez

hb_cdxIndexPageRead: Read index page failed. - Ajudem!

Mensagempor bencz » 22 Fev 2020 15:34

/*
* 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
}


Aparentemente, o erro ocorre pois a pagina que era para conter a informação que está sendo pesquisada, não existe...
O que pode causar isso é: O index não foi atualizado com as novas informações
Imagem
Avatar de usuário

bencz
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 517
Data de registro: 28 Abr 2012 17:36
Curtiu: 6 vezes
Mens.Curtidas: 34 vezes

hb_cdxIndexPageRead: Read index page failed. - Ajudem!

Mensagempor fladimir » 22 Fev 2020 16:47

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.
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.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

hb_cdxIndexPageRead: Read index page failed. - Ajudem!

Mensagempor claudiochaves » 26 Fev 2020 09:31

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,
Claudio Chaves
Desenvolvedor
claudiochaves
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 29
Data de registro: 28 Jul 2017 15:48
Cidade/Estado: campinas/sp
Curtiu: 19 vezes
Mens.Curtidas: 1 vez

hb_cdxIndexPageRead: Read index page failed. - Ajudem!

Mensagempor JoséQuintas » 26 Fev 2020 09:44

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.


Tô enxergando direito?
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, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

hb_cdxIndexPageRead: Read index page failed. - Ajudem!

Mensagempor Itamar M. Lins Jr. » 26 Fev 2020 10:37

Ola!
Está usando MT NO xHB ?
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


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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

hb_cdxIndexPageRead: Read index page failed. - Ajudem!

Mensagempor JoséQuintas » 26 Fev 2020 11:01

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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

hb_cdxIndexPageRead: Read index page failed. - Ajudem!

Mensagempor ANDRIL » 01 Mar 2020 10:56

Estou tendo o mesmo problema com DBF+CDX usando harbour 3.2 conforme cito neste post [url]http://www.pctoledo.com.br/forum/viewtopic.php?f=4&t=23898&p=139045#p139045[/url] ocorrendo aleatoriamente.

ClaudioChaves, conseguiu alguma solução no seu caso?
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar de usuário

ANDRIL
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1270
Data de registro: 06 Jul 2004 00:44
Curtiu: 12 vezes
Mens.Curtidas: 46 vezes

hb_cdxIndexPageRead: Read index page failed. - Ajudem!

Mensagempor JoséQuintas » 03 Mar 2020 20:54

Lembrei de uma coisa, que tem programador que ainda faz, que já era ruim no Clipper e no Harbour é pior ainda.

DO WHILE ! Rlock()
ENDDO


Isso mata Windows, rede, CPU, e tudo mais.

DO WHILE ! Rlock()
Inkey(0.3)
ENDDO


Assim é uma maravilha.
Mas se for Clipper.... melhor usar apenas OL_Yield() dentro do DO WHILE.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

hb_cdxIndexPageRead: Read index page failed. - Ajudem!

Mensagempor JoséQuintas » 04 Mar 2020 09:59

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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Próximo



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 6 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro