FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Tdolphin, Reconexiones
Posts: 883
Joined: Tue Oct 11, 2005 11:57 AM
Tdolphin, Reconexiones
Posted: Tue Jun 24, 2014 02:14 PM

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

;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Asus TUF F15, 32GB Ram, 2 * 1 TB NVME M.2, GTX 1650
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Tdolphin, Reconexiones
Posted: Tue Jun 24, 2014 09:52 PM

Hola

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

Posts: 883
Joined: Tue Oct 11, 2005 11:57 AM
Re: Tdolphin, Reconexiones
Posted: Tue Jun 24, 2014 09:56 PM

Daniel, gracias

Pruebo y te comento.

Desde Chile
Adolfo

;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Asus TUF F15, 32GB Ram, 2 * 1 TB NVME M.2, GTX 1650
Posts: 470
Joined: Fri Feb 05, 2010 11:30 AM
Re: Tdolphin, Reconexiones
Posted: Wed Oct 22, 2014 07:20 PM

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

Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.ar
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: Tdolphin, Reconexiones
Posted: Wed Oct 22, 2014 08:44 PM
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 (fw): Select all Collapse
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 );
聽 聽}
}
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 1054
Joined: Sun Oct 09, 2005 10:41 PM
Re: Tdolphin, Reconexiones
Posted: Thu Oct 23, 2014 04:38 AM
Hola amigos....
Prueben con esta sentencia...
Code (fw): Select all Collapse
oQry:execute("SET SESSION wait_timeout = 86400" )   // para que no se desconecte al server
Posts: 1286
Joined: Mon Feb 25, 2008 02:54 PM
Re: Tdolphin, Reconexiones
Posted: Wed Oct 29, 2014 05:14 PM

Carlos, voc锚 fez provas com:

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

ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles麓C
TDolphin
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: Tdolphin, Reconexiones
Posted: Thu Oct 30, 2014 01:47 PM

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

Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 230
Joined: Thu Sep 17, 2015 11:40 PM
Re: Tdolphin, Reconexiones
Posted: Fri Nov 13, 2015 03:03 AM

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.

Carlos Atuncar - CaSoftSystem
Chincha - Per煤
+51983478218
carlosalbatun@gmail.com
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: Tdolphin, Reconexiones
Posted: Mon Nov 16, 2015 12:05 PM

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

Continue the discussion