Errores varios en índices CDX

Errores varios en índices CDX

Postby AngelSalom » Wed Aug 30, 2017 4:01 pm

Buenas amigos!
Tengo un cliente desde hace un par de meses tiene problemas con los índices, con cuelgues del programa. En el hb_out.log se generan estos tres tipos de errores (no en este orden ni siempre los tres) :

Code: Select all  Expand view

Error irrecuperable 9201: hb_cdxPageSeekKey: wrong parent key
Error irrecuperable 9201: hb_cdxPageGetKeyVal: index corrupted.
Error irrecuperable 1010: hb_cdxIndexPageRead: Read index page failed.
 


Un borrado de índices y una regeneración solventan el problema por unos pocos días, pero pronto vuelve a presentarse este problema.
He estado revisando las tablas y la que más trabajan (detalle de albaranes de venta) ahora mismo tiene un tamaño de 2,7GB .

¿Alguna sugerencia o experiencia en estos problemas? No me gustaría tener que forzar una regeneración de índices cada día. :oops: :oops:
Gracias!
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
AngelSalom
 
Posts: 708
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España

Re: Errores varios en índices CDX

Postby karinha » Wed Aug 30, 2017 5:36 pm

Hola, muestre cómo usted está creando los índices.

Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7154
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Errores varios en índices CDX

Postby carlos vargas » Wed Aug 30, 2017 7:00 pm

por favor muestra el codigo de creacion de los indices.
ademas indica que compilador usas xharbour o harbour, y que version tienes.
lo puedes saber ejecutando "harbour -version"

salu2
carlos vargas
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1680
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: Errores varios en índices CDX

Postby karinha » Wed Aug 30, 2017 7:30 pm

Tu MENU principal esta asi?

Code: Select all  Expand view

#Include "FiveWin.ch"

REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850

ANNOUNCE RDDSYS
REQUEST OrdKeyNo, OrdKeyCount, OrdCreate, OrdKeyGoto
REQUEST DBFCDX, DBFFPT

FUNCTION Main()
 
   SET DATE BRITISH
   SET EPOCH TO 1950
   SET CENTURY ON
   SET SOFTSEEK OFF
   SET WRAP ON
   SETCANCEL( .F. )
   SET CONFIRM OFF
   SET DELETED ON
   SET ESCAPE OFF
   SET EXACT ON
   SET EXCLUSIVE OFF
   SET MULTIPLE OFF

   IF ISEXERUNNING( CFILENAME( HB_ARGV( 0 ) ) )
      __Quit()
   ENDIF

   RDDSETDEFAULT("DBFCDX")

   HB_LANGSELECT( 'PT' )     // Default language is now Portuguese
   HB_SETCODEPAGE( "PT850" )


   /*
   USE BD...
   GO TOP


   BROWSE()
   */


RETURN NIL
 


Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7154
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Errores varios en índices CDX

Postby AngelSalom » Wed Aug 30, 2017 8:06 pm

Si, en el inicio de la aplicación

Code: Select all  Expand view

  REQUEST DBFCDX
  REQUEST DBFFPT
  RDDSETDEFAULT ("DBFCDX")
  REQUEST HB_Lang_ES
  REQUEST HB_CODEPAGE_ESWIN
  HB_LangSelect("ES")
  HB_CDPSELECT ("ESWIN")

 


Dejo una de las funciones que utilizo para el indexado :

Code: Select all  Expand view

Function Indexa (cAlias,cOrden,cCond,cComo)
/* =====================================================================
   Crea un índice temporal
   
   Parámetros:
                cAlias . Alias que se quiere ordenar
                cOrden . Campo a ordenar el fichero
                cCond  . Condiciones a aplicar para generar el orden
                cComo  . Se le pasa .T. si se quiere ordenadr DESCENDING
               
   Devuelve el nombre del fichero temporal creado                
   ---------------------------------------------------------------------
   Última revisión:06/08/2013 17:05
   Revisado por   :Angel
   =====================================================================
*/
 
       
Local oWnd, nRecs, nFil:=0, cFil:="IND", nSel:=Select()

  Select &cAlias
  Set Index To

  cFil:="temporal.cdx"

  If cComo=NIL
    Index On &cOrden TAG (cOrden) To (cDirTemp+cFil)
  Else
    Index On &cOrden TAG (cOrden) To (cDirTemp+cFil) DESCENDING
  Endif
  (cAlias)->(OrdListAdd (cDirTemp+cFil))
  (cAlias)->(DbSetOrder(1))
  (cAlias)->(DbGoTop())
  Select (nSel)
 
 
Return (cFil)
 


Uso Harbour 3.2.0dev (r1703231115) y Borland 7.0
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
AngelSalom
 
Posts: 708
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España

Re: Errores varios en índices CDX

Postby José Vicente Beltrán » Thu Aug 31, 2017 10:25 am

Hace tiempo que no tengo ese problema con mis clientes, y es porque al hacer una nueva instalación siempre me aseguro de anular el protocolo SMB de windows en el servidor y cada uno de los terminales existentes, protocolo que precisamente es el que por hacer un bien, ahorrar tiempo, lo que realmente hace es corromper los indices.
Ocurre generalmente cuando el servidor tiene como S.O el Server 2008 o 2012.
Hecho esto, nunca mas el problema en la instalación en cuestión.
Saludos :shock:
User avatar
José Vicente Beltrán
 
Posts: 282
Joined: Mon Oct 10, 2005 8:55 am
Location: Algeciras, España

Re: Errores varios en índices CDX

Postby AngelSalom » Thu Aug 31, 2017 10:34 am

José Vicente Beltrán wrote:Hace tiempo que no tengo ese problema con mis clientes, y es porque al hacer una nueva instalación siempre me aseguro de anular el protocolo SMB de windows en el servidor y cada uno de los terminales existentes, protocolo que precisamente es el que por hacer un bien, ahorrar tiempo, lo que realmente hace es corromper los indices.
Ocurre generalmente cuando el servidor tiene como S.O el Server 2008 o 2012.
Hecho esto, nunca mas el problema en la instalación en cuestión.
Saludos :shock:


Vaya! Pues voy a probarlo de inmediato. Efectivamente, el servidor del cliente tiene instalado Server 2008.
Gracias,
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
AngelSalom
 
Posts: 708
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España

Re: Errores varios en índices CDX

Postby karinha » Thu Aug 31, 2017 5:59 pm

Angel, cambia tu ERRSYSW.PRG para muestrar los errores.

Code: Select all  Expand view

   if Left( ProcName( 7 ), 10 ) == "ERRORDIALO"
      SET RESOURCES TO
      ErrorLevel( 1 )
      QUIT
   endif

   // Incluido em 27/06/2013 By Joao Santos - Sao Paulo - Brasil
   IF UPPER(e:Description)="CORRUPTION DETECTED"         .OR. ;
      UPPER(e:Description)="DETECTADO ÖNDICE CORROMPIDO" .OR. ;
      UPPER(e:Description)="DETECTADO INDICE CORROMPIDO"


      ? "CORRUPTION DETECTED"  // mensageria

      DBCLOSEALL()

      QUIT

   ENDIF

   // Incluido em 26/07/2013 By Joao Santos
   IF UPPER(e:Description) = "LOCK REQUIRED"                              .OR.;
      UPPER(e:Description) = "TRAVAMENTO REQUERIDO"                       .OR.;
      UPPER(e:Description) = "FALHA NO TRAVAMENTO"                        .OR.;
      UPPER(e:Description) = "FALHA NO TRAVAMENTO DO APPEND"              .OR.;
      UPPER(e:Description) = "USO EXCLUSIVO REQUERIDO"                    .OR.;
      UPPER(e:Description) = "Erro DBFCDX/1002 erro ao Abrir"             .OR.;
      UPPER(e:Description) = "Erro DBFCDX/1002 erro Open (DOS Erro 2)"    .OR.;
      UPPER(e:Description) = "Error DBFCDX/1002 Open error"               .OR.;
      UPPER(e:Description) = "Error DBFCDX/1002 Open error (DOS Error 2)" .OR.;
      UPPER(e:Description) = "ERROR BASE/1003 Variable does Not Exist"    .OR.;
      UPPER(e:Description) = "(DOS Error 2) DBFCDX/1002 ERRO DE ABERTURA" .OR.;
      UPPER(e:Description) = "Erro DBFCDX/1001 erro ao Abrir"             .OR.;
      UPPER(e:Description) = "Erro DBFCDX/1001 erro Open (DOS Erro 2)"    .OR.;
      UPPER(e:Description) = "Error DBFCDX/1001 Open error"               .OR.;
      UPPER(e:Description) = "Error DBFCDX/1001 Open error (DOS Error 2)" .OR.;
      UPPER(e:Description) = "(DOS ERROR 2) DBFCDX/1001 ERRO DE ABERTURA" .OR.;
      UPPER(e:Description) = "(DOS ERROR 2) DBFCDX/1001 Open Error"       .OR.;
      UPPER(e:Description) = "Error DBFCDX/1201 WORKAREA NOT INDEXED"     .OR.;
      UPPER(e:Description) = "ERROR DBFCDX/1201 WORKAREA NÇO INDEXADA"    .OR.;
      UPPER(e:Description) = "Error DBFCDX/1012 Corruption detected"      .OR.;
      UPPER(e:Description) = "ERROR DBFCDX/1012 CORRUPTION DETECTED"      .OR.;
      UPPER(e:Description) = "Error DBFCDX/1210 Corruption detected"      .OR.;
      UPPER(e:Description) = "ERROR DBFCDX/1210 CORRUPTION DETECTED"      .OR.;
      UPPER(e:Description) = "(DOS ERROR 64) DBFCDX/1010  ERRO DE LEITURA".OR.;
      UPPER(e:Description) = "(DOS ERROR 64) DBFCDX/1010  READ ERROR"     .OR.;
      UPPER(e:Description) = "(DOS ERROR 87) DBFCDX/1010  ERRO DE LEITURA".OR.;
      UPPER(e:Description) = "(DOS ERROR 87) DBFCDX/1010  READ ERROR"     .OR.;
      UPPER(e:Description) = "(DOS Error 2) DBFCDX/1001 ERRO DE ABERTURA" .OR.;
      UPPER(e:Description) = "Error DBCMD/2001 Workarea nao esta em uso"  .OR.;
      UPPER(e:Description) = "Error DBCMD/2001 Workarea not in use"


      ? [ERROR DE RED]  // Mensageria

   ENDIF

   cErrorLog += "Aplicacao - Instrucoes Para Envio de Email-Leia: DESCRICAO DO ERRO Logo Abaixo:" + CRLF
   cErrorLog += "===============================================================================" + CRLF
   cErrorLog += "   Caminho e Nome: " + GetModuleFileName( GetInstance() )
 


Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7154
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Errores varios en índices CDX

Postby Antonio Mart. » Fri Oct 06, 2017 7:39 am

Hola Ángel,

¿ Pudiste solucionar el problema ?

Yo tengo corrupcion de indices pero en Terminal Server.

No sé si el SMB afecta cuando se trabaja en Terminal Server.

Algún hint, pls.

Salu2
Antonio Mart.
 
Posts: 174
Joined: Sat Feb 23, 2013 10:04 am

Re: Errores varios en índices CDX

Postby AngelSalom » Fri Oct 06, 2017 7:50 am

No, sigo igual :cry: :cry: :cry:
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
AngelSalom
 
Posts: 708
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España

Re: Errores varios en índices CDX

Postby Antonio Mart. » Fri Oct 06, 2017 9:43 am

Vaya !!

Yo he pedido que miren el antivirus, que tenga excluida la carpeta del programa.


Qué Windows tiene tu cliente ?
Antonio Mart.
 
Posts: 174
Joined: Sat Feb 23, 2013 10:04 am

Re: Errores varios en índices CDX

Postby AngelSalom » Fri Oct 06, 2017 9:49 am

Windows Server 2008 R2 ... de momento van trabajando (he programado una tarea que compacte y reindexe por las noches) ... pero no es plan, claro.
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
AngelSalom
 
Posts: 708
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España

Re: Errores varios en índices CDX

Postby Carlos Mora » Sun Oct 08, 2017 11:09 am

Yo he tenido bastante suerte con dbfcdx de Harbour, sin problemas salvo ocasiones inevitables como apagados repentinos o caídas de la red.
Una pregunta... ¿Como andamos de Commits()?

Hay commits antes del unlock? Es la principal causa de problemas. Sé que a veces se pone más lento el grabado de datos, pero el tiempo que te ahorras lo perderás en reindexar y peor aun, perder la confianza del cliente.

Del manual de Clipper:

http://www.itlnet.net/programming/progr ... 1df26.html

Code: Select all  Expand view

Notes

     .  Network environment: DBCOMMIT() makes database updates visible
        to other processes.  To insure data integrity, issue DBCOMMIT()
        before an UNLOCK operation.  For more information, refer to the
        "Network Programming" chapter in the Programming and Utilities Guide.

 


Un saludo
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Carlos Mora
 
Posts: 988
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Re: Errores varios en índices CDX

Postby Antonio Mart. » Mon Oct 09, 2017 5:35 pm

Gracias Carlos,

He incluido algunos dbCommit() en procesos más sensibles.

Veremos. Si aguanta tres semanas sin romper, creo que podremos decir que hemos tenido exito.

Salu2
Antonio Mart.
 
Posts: 174
Joined: Sat Feb 23, 2013 10:04 am

Re: Errores varios en índices CDX

Postby AngelSalom » Tue Oct 10, 2017 6:59 am

Yo he hecho lo mismo, haremos un seguimiento para ver qué tal.
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
AngelSalom
 
Posts: 708
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 19 guests