Page 1 of 1

Tdolphin, Reconexiones

PostPosted: Tue Jun 24, 2014 2:14 pm
by Adolfo
Fivewinners, Daniel.


Daniel, he revisado la clase y veo que existe la data lReconnect, la cual esta inicializada a .T., sin embargo he tenido problemas con un provvedor de servicios de hosting donde un cliente tiene un DB Mysql alojada, desde hace unos dias esta botando todas las conexiones a la DB que quedan iddle por mas de 30 segundos, el problema es que la aplicacion se cae con el error

"Error MYSQL/2013 Lost connection to MySQL server during query"

Existe alguna forma de forzar la reconexion antes de enviar el Query, de forma automatica para toda la aplicacion, no programando un Ping antes de cada select creada.

Desde Chile
Adolfo

Re: Tdolphin, Reconexiones

PostPosted: Tue Jun 24, 2014 9:52 pm
by Daniel Garcia-Gil
Hola

Sinceramente yo solucione el problema de la desconexion ejecutando un "SELECT 1" cada x segundos, nunca mas tuve problemas

Re: Tdolphin, Reconexiones

PostPosted: Tue Jun 24, 2014 9:56 pm
by Adolfo
Daniel, gracias

Pruebo y te comento.

Desde Chile
Adolfo

Re: Tdolphin, Reconexiones

PostPosted: Wed Oct 22, 2014 7:20 pm
by TOTOVIOTTI
Hola,
retomando éste tema, y tratando de solucionar el error 2013 de pérdida de conexión
con el servidor, cuanto sería recomendable el tiempo para ir haciendo el ping a la base
para que no se caiga la conexión?
Muchas gracias!
Roberto

Re: Tdolphin, Reconexiones

PostPosted: Wed Oct 22, 2014 8:44 pm
by carlos vargas
Daniel, el hacer ping cada x tiempo funciona para evitar que mysql corte la conexion, pero cuando por problemas de internet sucede un corte por pequeños lapsos de tiempos?
has probado situaciones donde conexiones por internet, tu simulas cortes de internet? (desconectas el cable de red y lo reconectas para simular la desconexion)
tdolphin no se reconecta.

segun info leida a partir de determinada version (5.0.3) mysql ha deshabilitado la re conexiones automáticas.
http://linux.overshoot.tv/wiki/mysql_server_has_gone_away
mira si esta modificacion ayuda
Code: Select all  Expand view

HB_FUNC( MYSQLCONNECT ) // -> MYSQL*
{
   MYSQL * mysql;
   unsigned int port  = ISNUM( 4 ) ? ( unsigned int ) hb_parni( 4 ) :  MYSQL_PORT;
   unsigned int flags = ISNUM( 5 ) ? ( unsigned int ) hb_parni( 5 ) :  0;
   PHB_ITEM pcbDecrypt = hb_param( 7, HB_IT_BLOCK );  
   HB_BOOL bReconnect = TRUE; /*NUEVO*/
   
   mysql = mysql_init( NULL );
   
   if ( ( mysql != NULL ) )
   {
      mysql_options( mysql, ( enum mysql_option ) MYSQL_OPT_RECONNECT, &bReconnect ); /*NUEVO*/
     
      mysql_real_connect( mysql,
                          hb_itemGetC( hb_vmEvalBlockV( pcbDecrypt, 1, hb_param( 1, HB_IT_ANY ) ) ),
                          hb_itemGetC( hb_vmEvalBlockV( pcbDecrypt, 1, hb_param( 2, HB_IT_ANY ) ) ),
                          hb_itemGetC( hb_vmEvalBlockV( pcbDecrypt, 1, hb_param( 3, HB_IT_ANY ) ) ),
                          hb_itemGetC( hb_vmEvalBlockV( pcbDecrypt, 1, hb_param( 6, HB_IT_ANY ) ) ),
                          port, NULL, flags );
      hb_MYSQL_ret( mysql );
   }
   else
   {
     hb_retptr( NULL );
   }
}
 

Re: Tdolphin, Reconexiones

PostPosted: Thu Oct 23, 2014 4:38 am
by Willi Quintana
Hola amigos....
Prueben con esta sentencia...
Code: Select all  Expand view

oQry:execute("SET SESSION wait_timeout = 86400" )   // para que no se desconecte al server
 

Re: Tdolphin, Reconexiones

PostPosted: Wed Oct 29, 2014 5:14 pm
by MGA
Carlos, você fez provas com:

oQry:execute("SET SESSION wait_timeout = 86400" ) // para que no se desconecte al server

Re: Tdolphin, Reconexiones

PostPosted: Thu Oct 30, 2014 1:47 pm
by carlos vargas
repito, el escenario es que la conexión de Internet se cae (se corta), no es que el servidor mysql corte la conexión por inactividad.

Estoy sabido que esta instrucción evita que el servidor desactive la conexión por inactividad hasta por un periodo de 8 horas.

oQry:execute("SET SESSION wait_timeout = 86400" )

pero la prueba aca es simular un corte de Internet, en este caso tomamos el cable de red a nuestra pc, lo desconectamos por unos 5 segundos y luego lo recolectamos, esto con la app cargada y la conexión activa, luego de reconectar el cable, cualquier consulta que se realice mostrara el mensaje de error que el servidor no esta disponible, aun cuando ya hay conexión de Internet, en este caso tdolphin no es capaz de reconectar ni aun usando el método recconect.

salu2
carlos vargas

Re: Tdolphin, Reconexiones

PostPosted: Fri Nov 13, 2015 3:03 am
by CARLOS ATUNCAR
Saludos, retomando el problema de las reconexiones , se encontro alguna solución, tengo un problema con servidor y que se pierde la conexión por el problema de la internet probe un proceso largo con el ping demoro un poco pero lo termino y al quitarlo aun determinado tiempo de congela.

Re: Tdolphin, Reconexiones

PostPosted: Mon Nov 16, 2015 12:05 pm
by cmsoft
Lo que puedes hacer para cuando sabes que vas a generar un proceso largo, es extender el tiempo de la sesion de mysql.
Prueba con
oServer:Execute("SET SESSION wait_timeout = 186400")
y cuando terminas lo vuelves al valor por defecto
oServer:Execute("SET SESSION wait_timeout = 28800")
Saludos