FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
no se esta cumpliendo el ACID compliant en este caso?
Me he encontrado con un caso demasiado extraño con un cliente
Sucede que tengo un trigger que se dispara cuando se cambiar un campo que utilizo como "estatus", cuando este campo se le asigna el valor de "cerrado", actualiza dos tablas y crea un registro nuevo en otra (3 operaciones). Resulta que me he encontrado con un registro con el estatus "cerrado", pero las operaciones que debió realizar el trigger ningunas fueron ejecutadas. En casos que he visto "casi" silimares, si el trigger falla por alguna excepcion, todos los cambios se reversan, es decir, hasta el campo del "estatus" vuelve a su estado original, para mantener la atomicidad de la transaccion. Hice alguna operaciones parecidas para simular la situacion del cliente y todas las pruebas fueron exitosas, incluso al cliente se le resolvio el caso anulando ese registro y volver a realizar la operacion exactamente igual y todo paso bien. Solo me he topado con este caso una sola vez, nunca se ha vuelto a repetir, pero siempre me he quedado con la incógnita de la causa, pensando en corrupción de la base de datos o un fallo momentáneo del motor de la base de datos o no se que cosa. |
#2
|
||||
|
||||
Dudo mucho que sea un fallo de la BD, aunque quién sabe, de todas formas ¿qué versión estás usando?, ¿has visto en firebirdsql.org la lista de bugs?, por si acaso fuese algún fallo puntual en alguna revisión.
|
#3
|
||||
|
||||
La verdad es que sin ver el código es difícil decir nada, pero yo me inclino en que es mucho más probable que sea un fallo en el código de tus triggers que no un problema del motor de la base de datos.
Las actualizaciones hechas en un trigger solo se tirarán para atras si salta una excepción.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#4
|
||||
|
||||
Como dice guillotmarc, lo más seguro es que tu trigger está mal programado y en algún caso si se ejecuta correctamente por lo que no hay excepcion y no hay rollback. Si pones el código te podríamos ayudar mucho más.
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
La operacion no esta permitida en este contexto | Rako | SQL | 3 | 17-12-2008 17:04:02 |
que esta mal en este FOR SELECT | Milperrimo | Firebird e Interbase | 9 | 08-10-2007 16:29:28 |
Como mejorar la velocidad en este caso.... | Alfredo | Varios | 4 | 02-09-2005 22:45:11 |
Donde esta este componente ? | Markos1970 | OOP | 5 | 14-07-2005 21:56:30 |
Hacer aplicaciones Windows Compliant? | __cadetill | Debates | 1 | 02-10-2003 01:41:07 |
|