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 20-04-2005
Kafu Kafu is offline
Miembro
 
Registrado: may 2003
Ubicación: Bilbao
Posts: 117
Poder: 21
Kafu Va por buen camino
Transacción interrumpida por reset

Hola a todos. Tengo un pequeño dilema.
Tengo una aplicación cliente-servidor contra una BD firebird 1.5 y utilizo los componentes ibx.
Por ciertas razones, debo proteger un proceso para que no haya más de un usuario realizándolo, y ésto es lo que se me había ocurrido, después de leer aquí varios posts acerca del uso de las transacciones:

Para saber que hay alguien dentro del proceso, lanzo un update sobre una tabla abriendo la transaccion correspondiente pero sin cerrarla hasta que se sale del proceso. De esta manera el segundo usuario/terminal que intente entrar obtendrá una excepción de lock conflict al intentar realizar ese mismo update.
Hasta ahí bien. Pero el problema es que si el primer usuario resetea el equipo esa transacción se queda colgada, y hasta que no reinicio el motor firebird en el servidor no se libera.
Querría saber si alguien sabe de alguna alternativa o cómo liberar esa transacción desde un puesto que no sea el mismo que se reseteó, si ésto es posible. Gracias en cualquier caso por vuestra atención. Un saludo,

Kafú--
Responder Con Cita
  #2  
Antiguo 20-04-2005
Avatar de Rufus
Rufus Rufus is offline
Miembro
 
Registrado: may 2004
Ubicación: Canarias
Posts: 193
Poder: 20
Rufus Va por buen camino
Cita:
Empezado por Kafu
Pero el problema es que si el primer usuario resetea el equipo esa transacción se queda colgada, y hasta que no reinicio el motor firebird en el servidor no se libera.
¿Que clase de reset hacen los clientes, un reset a lo bestia (hard reset)? Por que supongo que si hacen un reset "normal" desde el sistema operativo, ya en tu aplicacion te habras asegurado de que las transacciones queden terminadas justo antes de cerrar.

Si esto sucede aparte de reiniciar el servidor de base de datos otra opcion seria hacer una limpieza manual con gfix.
__________________
Milo

Última edición por Rufus fecha: 20-04-2005 a las 13:59:41.
Responder Con Cita
  #3  
Antiguo 20-04-2005
Kafu Kafu is offline
Miembro
 
Registrado: may 2003
Ubicación: Bilbao
Posts: 117
Poder: 21
Kafu Va por buen camino
Gracias por la respuesta.
Me refiero a un reset a pelo, dándole al botón o en caso de un corte de luz. No sé si eso es un hard reset, la verdad. No conozco la forma de cerrar las transacciones en este caso. El gfix no me sirve como solución, precisamente lo que quiero evitar es que el usuario tenga que liberar algo, ya sea una marca en un registro, una transaccion, etc. Pero no veo cómo. Un saludo,
F.T.G.
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


La franja horaria es GMT +2. Ahora son las 03:09:42.


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