Buenas tardes,
Estuve buscando en el foro al respecto de como hacer un handle al respecto pero encontre diferentes soluciones a otras problematicas.
El problema a resolver es como tratar los errores de "Lost Connection to MYSQL" debido a la desconexión de internet. Ya utilizo el "Set TIMEOUT" y tambien el timer para que no se corte la conexión, pero el problema me radica en clientes con redes WiFi, donde, gracias a FiveWin por existir, cuando tienen un microcorte de unos segundos, solamente se frizza unos segundos y vuelve a reconectar.
El problema radica en que cuando intenta reconectarse y no lo hace en 15 segundos, me da un Fatal Error donde si o si hay que cerrar el aplicativo.
Hay alguna manera de cambiar ese tiempo o de que si la conexión se perdio, mostrar un msgstop() y volver a la pantalla anterior para asi no perder toda la carga realizada hasta ese momento?
Ejemplo de proceso:
Cuando presiona un boton, se ejecuta una query que trae información. Cuando lo presiona queda esperando a la reconexion, si en 15 segundos no reconecta, tira el error de "Lost Connection to MySQL" y obliga al usuario a salir.
Seria una herramienta muy buena para implementar en todos los sistemas, ya que en Argentina las redes no estan hechas por profesionales y el hardware es de mala calidad.
Muchas gracias de ante mano!
Perdida de conexion MySQL Catch error
-
- Posts: 50
- Joined: Tue Feb 02, 2021 10:21 pm
- Location: Buenos Aires, Argentina
- Contact:
- Marcelo Roggeri
- Posts: 342
- Joined: Sat Jul 22, 2006 9:04 pm
- Location: Venado Tuerto - Santa Fe -Argentina
- Contact:
Re: Perdida de conexion MySQL Catch error
Hola Nicolas buenas noches, pudiste solucionar este tema?
Te agradezco cualquier ayuda gracias
Marcelo
Te agradezco cualquier ayuda gracias
Marcelo
FWH - Harbour - BCC7 - PellesC
- JoseAlvarez
- Posts: 807
- Joined: Sun Nov 09, 2014 5:01 pm
Re: Perdida de conexion MySQL Catch error
Hola amigo.
Este es un tema por demas interesante. Pasé por un problema similar hace algunos años. Comenzaré por el final:
Aprendí a no dar garantías de funcionamiento de mi software si el cliente tiene una "red" wifi, y menos si es de bajas prestaciones ( tarjetas de red tipo USB, sin un servidor real y sin sistema operativo de red (windows server) )
Me contrataron para desarrollar un sistema, y una vez terminado e instalado (un "servidor" y 12 estaciones) los errores de pérdida de conexión no tardaron en aparecer. A veces funcionaba de maravilla y otras veces fatal. Intenté de todo a nivel de mi aplicación y nada, los problemas persistian, hasta que por descarte me di cuenta que el problema era a nivel de hardware.
Sugeri cambiar a red cableada, pero el cliente se negaba. Mandó a instalar un mikrotik y un balanceador de carga para sus servicios de internet y aumentó memoria al "servidor" (una PC normal, compartida) entre otras cosas. Pero nada, persistan las "colgadas" y las perdidas de conexion. Hasta que llegamos a un punto muerto. El estaba convencido que el problema era mi software, y yo estaba convencido de que era cuestion de hardware., llegando a presentarse una situacion tensa e incómoda.
De tanto insistir y gracias a la ayuda de un amigo en comun, el cliente decidió cablear, y desde el primer dia se acabaron los problemas. Cero desconexiones.
Pasados unos meses, se decidió a montar un verdadero servidor y con windows server. El cambio en el desempeño y velocidad de respuesta en los procesos y consultas fue inmenso y gratificante. Y el software sólido y estable como una roca, sin cambiarle ni una letra al codigo.
Hasta el dia de hoy, el cliente satisfecho y solo me llama cuando quiere alguna nueva integracion o cambio.
Hoy se que las redes wifi sufren interferencias con cualquier cosa: rudios, clima, radios, otros equipos, hasta con el flujo de personas o vehiculos andando dentro de las áreas de alcance.
Quizás tu caso es igual al mio.
No se puede garantizar un buen funcionamiento de nuestras aplicaciones sobre redes wifi y si hay alto numero de equipos conectados como PC, celulares, tablets, smart TV etc y accesando al servidor constantemente, mucho menos.
Por lo menos, esa es mi experiencia particular.
Este es un tema por demas interesante. Pasé por un problema similar hace algunos años. Comenzaré por el final:
Aprendí a no dar garantías de funcionamiento de mi software si el cliente tiene una "red" wifi, y menos si es de bajas prestaciones ( tarjetas de red tipo USB, sin un servidor real y sin sistema operativo de red (windows server) )
Me contrataron para desarrollar un sistema, y una vez terminado e instalado (un "servidor" y 12 estaciones) los errores de pérdida de conexión no tardaron en aparecer. A veces funcionaba de maravilla y otras veces fatal. Intenté de todo a nivel de mi aplicación y nada, los problemas persistian, hasta que por descarte me di cuenta que el problema era a nivel de hardware.
Sugeri cambiar a red cableada, pero el cliente se negaba. Mandó a instalar un mikrotik y un balanceador de carga para sus servicios de internet y aumentó memoria al "servidor" (una PC normal, compartida) entre otras cosas. Pero nada, persistan las "colgadas" y las perdidas de conexion. Hasta que llegamos a un punto muerto. El estaba convencido que el problema era mi software, y yo estaba convencido de que era cuestion de hardware., llegando a presentarse una situacion tensa e incómoda.
De tanto insistir y gracias a la ayuda de un amigo en comun, el cliente decidió cablear, y desde el primer dia se acabaron los problemas. Cero desconexiones.
Pasados unos meses, se decidió a montar un verdadero servidor y con windows server. El cambio en el desempeño y velocidad de respuesta en los procesos y consultas fue inmenso y gratificante. Y el software sólido y estable como una roca, sin cambiarle ni una letra al codigo.
Hasta el dia de hoy, el cliente satisfecho y solo me llama cuando quiere alguna nueva integracion o cambio.
Hoy se que las redes wifi sufren interferencias con cualquier cosa: rudios, clima, radios, otros equipos, hasta con el flujo de personas o vehiculos andando dentro de las áreas de alcance.
Quizás tu caso es igual al mio.
No se puede garantizar un buen funcionamiento de nuestras aplicaciones sobre redes wifi y si hay alto numero de equipos conectados como PC, celulares, tablets, smart TV etc y accesando al servidor constantemente, mucho menos.
Por lo menos, esa es mi experiencia particular.
"Los errores en programación, siempre están entre la silla y el teclado..."
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.
- leandro
- Posts: 1719
- Joined: Wed Oct 26, 2005 2:49 pm
- Location: Colombia
- Has thanked: 11 times
- Been thanked: 3 times
- Contact:
Re: Perdida de conexion MySQL Catch error
Hola buenos días, si te conectas por ADO, hace un tiempo Mr.Rao publico un función, que reconecta la base de datos.
Code: Select all | Expand
*************************************************************
*ESTA FUNCION RECONECTA LA BASE DE DATOS EN CASO DE UNA CAIDA
*SOBRE TODO CUANDO SE TRABAJA POR INTERNET WIFI
*************************************************************
Function AdoExecute( oCn, bAction ) //Aporte Mr.Rao Foro FW
local uRet
if oCn:State == 0 .or. Empty( oCn:Properties( "Current Catalog" ):Value )
oCn:Close()
oCn:Open()
endif
if oCn:State > 0
TRY
uRet := Eval( bAction, oCn )
CATCH
FW_ShowAdoError( oCn )
END
else
msginfo("Conexión Perdida, imposible recuperar","Error de conexión")
endif
//Usage:
//oRs := AdoExecute( oMyConObject, { |oCn| FW_OpenRecordSet( oCn, cSql ) } )
//uResult := AdoExecute( oMyConObject, { |oCn| oCn:Execute( cSql ) } )
return uRet
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com
[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 24.09 ] [ xHarbour 64 bits) ]
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com
[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 24.09 ] [ xHarbour 64 bits) ]