Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-05-2007
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Poder: 22
sitrico Va por buen camino
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?

Por partes:

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í:

Código Delphi [-]
// escribo de memoria pero es más o menos la idea
Procedure datamodule.OnCreate...

Repeat
Try
   Database.conected := true;
Except
   r := MsgBox('Error de conexión...',MB_retryCancel)
   End;
Until (Dtabase.active) or (r = idCancel)
If r = idCancel Then
   application.terminate;

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
__________________
Sitrico
Responder Con Cita
  #2  
Antiguo 19-05-2007
TJose TJose is offline
Miembro
 
Registrado: may 2003
Posts: 162
Poder: 22
TJose Va por buen camino
Hola sitrico

Cita:
como puedo verificar que el servidor este "en Linea" antes de ejecutar algunas sentencias SQL criticas.
No te contesto la pregunta, pero no deberías preocuparte de la ejecución de sentencias SQL criticas, ni de cualquier otra, ya que nada pasará, ni bueno ni malo.
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
Responder Con Cita
  #3  
Antiguo 19-05-2007
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Poder: 22
sitrico Va por buen camino
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:
nada pasará, ni bueno ni malo
Pero me gusta "evitar" esas situaciones con un mensajito como:

Cita:
Error: el servidor está fuera de línea
y que se mantenga en ejecución la aplicación
__________________
Sitrico
Responder Con Cita
  #4  
Antiguo 19-05-2007
TJose TJose is offline
Miembro
 
Registrado: may 2003
Posts: 162
Poder: 22
TJose Va por buen camino
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.
Responder Con Cita
  #5  
Antiguo 19-05-2007
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
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
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #6  
Antiguo 20-05-2007
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Poder: 22
sitrico Va por buen camino
Gracias, el try..except será.

Aunque tambien encotré interesante esta opción: OnPostError
__________________
Sitrico
Responder Con Cita
  #7  
Antiguo 22-05-2007
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
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.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Instalar firebird en un servidor unix andressanchez Varios 2 18-08-2005 21:42:28
Principiante en Cliente/Servidor con Firebird Hagen Firebird e Interbase 1 25-08-2004 20:45:22
Firebird Cliente-Servidor dango Firebird e Interbase 2 05-06-2004 04:40:53
Dudas - Aplicacion Cliente/Servidor con Firebird 1.5 Hagen Firebird e Interbase 1 27-02-2004 06:15:38


La franja horaria es GMT +2. Ahora son las 02:04:08.


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
Copyright 1996-2007 Club Delphi