ayuda con mysql - reconexiones

ayuda con mysql - reconexiones

Postby carlos vargas » Mon Apr 07, 2014 8:37 pm

Estimados, estoy necesitando de su ayuda:

ya he portado una app a mysql usando dolphin, todo ha salido muy bien, menos la parte de las perdidas de conexión.

cuando la app trabaja en red local no hay problemas, dado que tanto el server y las pc clientes tiene su correspondiente baterías, por lo que un corte en la conexión es altamente improbable.

pero cuando se trabaja fuera, se usan conexiones por internet, y ahí es donde la cosa cambia.
para efectos de prueba he realizado lo siguiente:

1.-ejecuto la app y esta se conecta al servidor si hay conexión a internet.
2.-luego abro módulos los cuales hacen consultas y todo ok.
3.-teniendo abierta la app, realizo una corte de internet. ( ya sea apagando el modem, desconectando el cable, desconectando de internet).
4.-ahora intento abrir cualquier modulo, y el controlador de error me indica que la conexión al servidor se ha perdido.
la app no se cierra, sino que simplemente el modulo no continua y sale al menú principal.
5.-luego conecto nuevamente la conexión a internet.
6.-ahora, en la app tengo un timer cada 30 segundo que valida si hay conexión, en caso que no halla conexión, intenta realizar una nueva conexión, de lograrlo, obtengo un nuevo handle de conexión.

ahí mismo pruebo entrar a alguno modulo y como ya hay conexión todo retorna a la normalidad.

pero en el servidor ha quedado una conexión sin uso, y cuando cierro la app he intento conectarme de nuevo el programa se congela y no es hasta que cierro la conexión sin uso es que la app se conecta nuevamente.
uso estas instrucciones en mysql.
show processlist;
me muestra una lista de las conexiones.
kill conecction xxxx;
me permite matar conexiones sin uso.

como puedo manejar este tipo de situación?
cual es la mejor manera, las opciones en el sevidor, etc. como lo habeis hecho ustedes.

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

Re: ayuda con mysql - reconexiones

Postby xmanuel » Mon Apr 07, 2014 8:49 pm

Carlos.
Si TDolphin funciona como Eagle1 debe de existir un método ::ping() que comprueba si hay una desconexión temporal e intenta reconectar el cliente al servidor nuevamente usando el mismo objeto y reutilizando la conexion.
:-)
______________________________________________________________________________
Sevilla - Andalucía
xmanuel
 
Posts: 760
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla

Re: ayuda con mysql - reconexiones

Postby carlos vargas » Mon Apr 07, 2014 10:19 pm

ok, revisando, efectivamente, tiene un metodo ping
pero ocurre lo siguiente:

cuando la oconexion esta ok y se llama a ping, este toma unos pocos segundos.
pero si la conexión esta caída, la primera llamada a ping toma su buen tiempo, congelando la aplicacion.
aun cuando ping no hace la reconexion, la siguiente vez que se llama toma menos de un segundo.

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

Re: ayuda con mysql - reconexiones

Postby leandro » Tue Apr 08, 2014 1:10 am

Carlos hace un tiempo me sucedió exactamente lo mismo que te esta pasando... Y la única solución que encontré fue colocar un timer al inicio de la aplicación para que realizara una consulta sencilla sobre una tabla de la base de datos... fue la única solución real.. intente cambiando los tiempos de des conexión en mysql pero no me funciono... aquí un trozo del código..

Code: Select all  Expand view

*****************************************
*EJECUTA ESTA CONSULTA PARA EVITAR QUE SE
*CAIGA LA CONEXION CON EL SERVIDOR
*****************************************
PROC pTiempo
cQuery := "SELECT tiempo from "+oLamcla:tTiem
TRY
  oLamcla:oServer:Execute(cQuery)
CATCH oError
  MsgInfo("Error de Timer ","Control Conexión")
END
 


Espero te sirva saludos
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1627
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: ayuda con mysql - reconexiones

Postby carlos vargas » Tue Apr 08, 2014 2:24 am

Leando, eso es para que la conexión no se corte por inactividad,
pero acá el asunto es que hacer cuando la conexion se corta por falla de la internet, lo cual corta la conexion con el handle de conexion.

el corte lo provoco yo para ver como recuperar la conexión.
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1707
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: ayuda con mysql - reconexiones

Postby Daniel Garcia-Gil » Tue Apr 08, 2014 3:42 am

Hola Carlos

coloque un ping antes de ejecutarse cada query, de devolver falso genera un mensaje de error que puedes capturar desde TRY/CATH, prueba la rama unstable/1.1 del git
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: ayuda con mysql - reconexiones

Postby albeiroval » Thu May 15, 2014 2:56 am

Hola Carlos,

Me gustaria saber si pudiste implementarlo y como lo hiziste.

Saludos,
Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com
User avatar
albeiroval
 
Posts: 363
Joined: Tue Oct 16, 2007 5:51 pm
Location: Barquisimeto - Venezuela


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 38 guests