Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   tiempo limite para conexion remota firebird (https://www.clubdelphi.com/foros/showthread.php?t=86180)

anubis 27-06-2014 16:42:05

tiempo limite para conexion remota firebird
 
Buenas de nuevo,

Tengo instalado un servidor linux con firebird y, si al servidor le funciona bien el internet no hay problema de conexion, pero en estos dias se cayo internet y no se han podido conectar.
Me informan que, desde computadoras remotas, se intentan conectar y se queda congelado el programa (no responde) y les bloqueda el sistema.

Hay alguna forma que tengan los componentes, que se establezca un tiempo limite de intento de conexion en vez de quedarse pasmado hasta que le de la gana avisar?.

No se si me explico ;)

Casimiro Notevi 27-06-2014 20:03:35

Creo recordar que en la configuración de firebird puedes cambiarlo.

anubis 27-06-2014 21:34:22

Gracias por responder,

En la configuración pero en las aplicaciones clientes, porque si el problema es de conexion con el servidor, ya sea porque el servidor esta apagado, se le fue internet o simplemente cambiaron el modem y no tiene el puerto abierto (que puede pasar), el afectado es la aplicacion cliente.

La aplicacion cliente se conecta al servidor, si le da el ping, pero no responde, o bien, como digo, porque firebird se cayo, se cambio el puerto...

adrall 28-06-2014 17:29:10

Y porque no capturas el mensaje de error y que les plante un aviso en la pantalla, yo lo hago así mas o menos para conectar a MySQL:

Código Delphi [-]
try    
 MiConexion.connect;
 ...
 ...
 except
 begin      
 MessageDlg('No se puede conectar al servidor, llamen al telefono... ....', mtError, [mbOK], 0);
 ....
 ... cerrar aplicacion....
 end;
end

anubis 19-07-2014 05:36:58

gracias por las respuestas.
me refiero a q si se intenta establecer conexión con la máquina remota y no conecta bien, ya sea porque el puerto esta cerrado o la ip es errónea... q no se quede como bloqueada la aplicación en lo q responde sino q se pueda establecer un tiempo de intento de conexion

Casimiro Notevi 19-07-2014 12:33:06

Cita:

Empezado por Casimiro Notevi (Mensaje 478392)
Creo recordar que en la configuración de firebird puedes cambiarlo.

Ya te lo comenté antes, mira la configuración :)

mamcx 19-07-2014 16:50:57

Cita:

Empezado por anubis (Mensaje 479174)
gracias por las respuestas.
me refiero a q si se intenta establecer conexión con la máquina remota y no conecta bien, ya sea porque el puerto esta cerrado o la ip es errónea... q no se quede como bloqueada la aplicación en lo q responde sino q se pueda establecer un tiempo de intento de conexion

Aparte de que captures los errores de conexión, para que no se congele la app debes pasar a un thread de background y/o convertir en una llamada asincrónica toda operacion que pueda interferir con el thread principal.

Una forma de hacerlo es:

http://www.thedelphigeek.com/2012/07...in-delphi.html

Casimiro Notevi 19-07-2014 18:43:38

Cita:

Empezado por Casimiro Notevi (Mensaje 479177)
Ya te lo comenté antes, mira la configuración :)

Y algunos componentes, como fibplus, traen sus propios componentes para controlarlo.

anubis 19-07-2014 19:27:25

Gracias a los dos por el interes,

Os debo una disculpa, el titulo del post no es acertado y debiera de haber puesto otra cosa puesto que no tiene relacion directa con firebird sino mas bien con una conexion (sea en la misma red o remota) con otra maquina que no responde, ahi es cuando se traba el programa (a veces hasta el sistema) hasta que dice que fue imposible conectar.

mamcx, gracias, un thread en background seria estupendo para evitar la congelacion del programa y/o sistema poniendo algo, pero lamentablemente no se manejar threads :(.

De todas formas voy a ver el enlace a ver que saco de ahi.

gracias ;)

mamcx 19-07-2014 20:27:10

Manejar threads "a pelo" es complicado (o al menos, si es mas de 1 background a la vez), pero ultimamente han surgido nuevos modelos que simplifican mucho el uso. El estilo async/await es uno de ellos.

P.D: A quien le interese saber los 2 modelos que se estan imponiendo estan el "Actor Model" y el "Communicating sequential processes"

anubis 19-07-2014 21:32:52

interesar interesan gracias


La franja horaria es GMT +2. Ahora son las 21:18:09.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi