Perdida de conexion MySQL Catch error

Perdida de conexion MySQL Catch error

Postby nlerdafehn » Thu May 13, 2021 9:11 pm

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!
Nicolás
nlerdafehn
 
Posts: 50
Joined: Tue Feb 02, 2021 10:21 pm
Location: Buenos Aires, Argentina

Re: Perdida de conexion MySQL Catch error

Postby Marcelo Roggeri » Thu Apr 27, 2023 11:33 pm

Hola Nicolas buenas noches, pudiste solucionar este tema?
Te agradezco cualquier ayuda gracias
Marcelo
FWH - Harbour - BCC7 - PellesC
User avatar
Marcelo Roggeri
 
Posts: 342
Joined: Sat Jul 22, 2006 9:04 pm
Location: Venado Tuerto - Santa Fe -Argentina

Re: Perdida de conexion MySQL Catch error

Postby JoseAlvarez » Fri Apr 28, 2023 3:14 am

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.
"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.
User avatar
JoseAlvarez
 
Posts: 805
Joined: Sun Nov 09, 2014 5:01 pm

Re: Perdida de conexion MySQL Catch error

Postby leandro » Fri Apr 28, 2023 5:12 pm

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 view  RUN

*************************************************************
*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

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


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 113 guests