FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour sesion tdolphin
Posts: 84
Joined: Tue Jul 26, 2016 09:52 PM
sesion tdolphin
Posted: Mon Oct 16, 2017 08:03 PM

Estimados tengo una aplicaci贸n que se conecta con mysql, con una base remota en un hosting, y la t铆pica situaci贸n, el usuario abre una ventana, lo llaman o lo que sea y pasa un rato y se cae el sistema... que se perdi贸 la conexion con el host... como puedo resolver esto... yo vi esto.

oServer:Execute("SET SESSION wait_timeout = 186400")

donde debo ubicarlo... ???

Posts: 84
Joined: Tue Jul 26, 2016 09:52 PM
Re: sesion tdolphin
Posted: Mon Oct 16, 2017 08:38 PM

sorry, ya lo vi... vere si funciona...

Posts: 162
Joined: Wed Feb 22, 2017 02:19 AM
Re: sesion tdolphin
Posted: Tue Oct 17, 2017 02:57 AM

Mira amigo lo mas simple es mandar un ping a server cada cierto tiempo. Yo utilizo la version Mysql de Sr. William y en ella viene un llamado a un ping al server
ASi dejo el programa conectado a server remoto y no tengo problemas con el time out.

.... llamado del diaglo o Window

Function PInGtimer()
DEFINE TIMER oTimer3 of oWnd INTERVAL 5000 ACTION EsTadoServer()
Activate timer oTimer3
return

Function EsTadoServer()

IF !oCon:oKon:ping()
MsgStop( "Se ha dectectado que el server no resnponde ","Aviso importante, revise estado del Servidor")
oTimer3:desativate()
oTimer3:end()
oCon:end()
QUIt

endif

oP:Pingserver:= oCon:oKon:ping()
return

Oscar Chacon.

Regards.
S.I.T.U.
Sistemas Inteligentes de transporte urbano
http://www.situcr.com
oscarchacon@Situcr.com
Desarrollos BA4/B4j androide
Posts: 84
Joined: Tue Jul 26, 2016 09:52 PM
Re: sesion tdolphin
Posted: Tue Oct 17, 2017 12:31 PM

Estimados, coloque esta opci贸n, y no me corre, se me cae la conexion a los 3 minutos de activar la se帽al.

Posts: 244
Joined: Fri Oct 28, 2005 06:29 PM
Re: sesion tdolphin
Posted: Tue Oct 17, 2017 04:59 PM

Donde la colocaste?

Yo la ubique despues de hacer la conexion:

oServer := TDolphinSrv():New( ....

oServer:Execute( "SET SESSION wait_timeout = 86400;" )

He tenido el sistema abierto por horas y no se me ha desconectado nunca.

Saludos!

Alejandro Cebolido

Buenos Aires, Argentina
Posts: 400
Joined: Tue Oct 16, 2007 05:51 PM
Re: sesion tdolphin
Posted: Sun Oct 22, 2017 10:21 PM
kpidata,


Estimados tengo una aplicaci贸n que se conecta con mysql, con una base remota en un hosting


Debes tener en cuenta que el tiempo de la sesion de conexion en los HOSTING son autonomas y no duran mas de 30 segundos,
por lo tanto la instruccion SET SESSION wait_timeout = 86400; no aplica en este caso.

Yo tengo una aplicacion cuya base de datos trabaja en un hosting, y la verdad que 30 segundos ha sido mas que suficiente para
hacer un INSERT, UPDATE, DELETE o un SELECT simple o complejo, incluyendo consultas que usan INNER JOIN / LEFT JOIN, con inclusion de mas de una tabla y con muchos registros.

Ahora si la database reside en un servidor que no es un hosting y el acceso es remoto, para ese caso si funciona esa instruccion,
sin embargo si y solo si para este caso no es recomendable dejar abierta la conexion tanto tiempo.
Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com
Posts: 537
Joined: Mon Jan 16, 2006 03:42 PM
Re: sesion tdolphin
Posted: Tue Oct 24, 2017 11:44 AM

Amigo Albeiro. entonces dices que cada vez que grabas algo en una TABLA abres la BASE DE DATOS,

saludos

Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: sesion tdolphin
Posted: Wed Oct 25, 2017 03:05 AM
Lo que comenta albeiro es cierto, pero si estas en una pantalla con un xbrowse abierto con una query, si la coexion se cae, el programa se caera al querer hacer algun proceso sobre el.
Lo que yo instrumente que me funciona bien tanto en bases de datos almacenadas en hosting como en local, es hacer una simple query para que la conexion no se caiga, cada x tiempo (con un timer).
Si te sirve, la coloco aqui

En la ventana principal de tu aplicacion pones:
Code (fw): Select all Collapse
DEFINE TIMER oApp:oTimer INTERVAL 10000 ACTION Pinguear() OF oApp:oWnd   
ACTIVATE WINDOW oApp:oWnd MAXIMIZED ON INIT oApp:oTimer:Activate()


Y la funcion pinguear seria:
Code (fw): Select all Collapse
*********************************************
** Pinguar
FUNCTION Pinguear()
LOCAL oQry, lRta 
IF oApp:oServer <> nil
   oQry := oApp:oServer:Query("SELECT 1")
   IF oQry:RecCount() = 0
      oApp:oTimer:Deactivate()
      oApp:oWnd:SetMsg("Reconectando con el servidor......")
      lRta := oApp:oServer:Ping()
      IF !lRta 
         MsgStop("Se desconecto el servidor!","Error")
         QUIT
      ENDIF
      oApp:oTimer:Activate()   
      ELSE
      oApp:oWnd:SetMsg("Pingueando...")      
   ENDIF
ENDIF
RETURN nil

Espero te sirva

Continue the discussion