![]() |
Apagaron el servidor Firebird !!!!
Es una supocisión pero tengo días con la preocupación.
¿Que pasaría si mientras se ejecuta una aplicación cliente servidor algún usuario decide apagar justamente el equipo que sirve como servidor ó suspender el servicio del firebird? :mad: Por partes: :cool: Al cargar mi aplicación intento conectarme al servidor firebird (usando los MDO database.conected := true) capturo si ocurre una excepción y si es así permito reintentar o cancelar algo así:
Funciona bien al iniciar el programa pero: Y esta si es la pregunta: como puedo verificar que el servidor este "en Linea" antes de ejecutar algunas sentencias SQL criticas. Gracias |
Hola sitrico
Cita:
Lo importante a solucionar es que no te apaguen el servidor. Imagino, por lo que dices, que estas usando como servidor una máquina que es a su vez un puesto de trabajo. Con Linux/Unix Windows XX Server esto no debería susceder, a menos que un usuario tenga los permisos suficientes, no podrá apagar el servidor, lo que no impide que le ponga el dedo a reset. Saludos TJose |
Efectivamente el servidor será una estación de trabajo (ocasional) pero pensandolo más el único problema no es el apagado del servidor, tambien existen otras posibles causas para que un equipo deje de responder (tendrá Windows XP) y lo que pasó es que en las pruebas preliminares probé detener
el firebird a -ver que pasaba- . En cuanto al arranque del sistema lo pude solucionar elegantemente, pero, ya en ejecución me gustaría manejar apropiadamente una situación como esta. Supongo que requerirá usar try..except protegiendo las llamadas a "MDOQuery.ExecSQL" y en las transacciones. de cualquier forma tienes razón: Cita:
Cita:
|
Hola
La verdad que no sé cual será la mejor solución, pero, para lo que planteas tendrás que controlar antes de cada instruccion el estado del servidor. No me parece lo más apropiado (es sólo mi opinión). Saludos Jose PD: Con unos pocos pesos te compras una máquina que haga de servidor, con un SO apropiado. :D |
Basta con colocar entre un Try Except la instruccion Open o ExecSQL, si hay algun problema se generará la excepción. El unico inconveniente es que no siempre se puede identificar que sucedió ya que la excepcion se puede generar por un error en la sintaxis de sql o verdaderamente porque no hay conexión.
Yo lo hago de esa forma pongo todo lo que se debe ejecutar solo si hay servidor disponible dentro de un try except y si por la de malas no hay conexión el programa solo lo informa y no pasa nada. Hay posibilidad de reintentar |
|
Resp
Si lo que te preocupa es la integridad de la data entonces no te procupas mas solo has lo que queiras hacer de manera transacional que firebird hara el resto.
|
La franja horaria es GMT +2. Ahora son las 20:43:42. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi