FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
||||
|
||||
deadlock update
Hola amigos del foro :
Alguien me podría decir como evitar que me aperezca este mensaje "deadlock update conflicts with concurrent update ", lo que pasa es que tengo mi base de datos en Red y me esta apareciendo este mensaje...bueno, muchas gracias por su ayuda.. |
#2
|
|||
|
|||
Chequea los triggers.
Los deadlock (anillos de la muerte) se producen normalmente (posiblemente haya más motivos, no soy un guru) cuando el trigger de una tabla A repercute sobre una tabla B, cuyos trigger directa o indirectamente vuelven a modificar la tabla A, es decir, haciendo referencia a ésta o modificando otras tablas que hagan modificaciones sobre la tabla A. Cuando la base de datos tiene una tabla en modo Update (haciendo los triggers before y after update correspondiente) y le llega una petición de modificación de esa tabla en la misma transacción obtienes un bonito mensaje de "deadlock". También se puede producir por triggers DELETE e INSERT.
Cuando son por recursión son muy difíciles de detectar, así que suerte. Saludos. |
#3
|
||||
|
||||
Gracias..
Gracias por tu ayuda.. lo que pasa es que esto sucede cuando se quiere actualizar un registro que no existe o se quiere ingresar un registro que ya existe( osea, me refiero a un registro unico ), entonces la idea es saber si existe alguna propiedad del Componente IBDataBase, que omita este mensaje o que no haga nada en el caso de q' ocurra esto.
|
#4
|
||||
|
||||
Amigos..en que componente puedo indicar que no quiero que me aparezca dicho mensaje, o que no realice ninguna acción?..en el componente IBTransaction o en el Componente IBDataBase..lo que para es que no quiero capturar la excepcion por que tengo muchos formularios..gracias de ante mano.
|
#5
|
||||
|
||||
aun con el problemita.... Cualquier aporte se los agradecera muchos..
|
#6
|
||||
|
||||
Bueno, esto debe ser un problema de concurrencia, quizá alguien esta tratando de modificar un registro de una tabla, cuando dicho registro esta bloqueado por otra trasacción... yo creo que deberias plantearte una cuestión como la siguiente:
¿Realmente necesito que las dos personas modifiquen el mismo registro o es un error de diseño? Si necesitas que ambos modifiquen el mismo registro, pues ten en cuenta que el error te esta ayudando a idenficar el momento en que esto no es posible y podrias capturarlo para mostrar un mensaje mas diciente al usuario final. Si no es asi y definitivamente esto no deberia estar sucediendo, busca la manera de que estos dos registros no "choquen", creando algun campo que los diferencie, como por ejemplo "usuario_actual" o algo por el estilo , ¿Me hice entender?, espero que si y que ademas te sirva de algo .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#7
|
||||
|
||||
muchas gracias jhonny, voy tener en cuanta tu consejo...
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
deadlock en unas maquinas pero no en otras ??? | DobleSiete | Conexión con bases de datos | 6 | 01-06-2005 14:12:58 |
DeadLock | jgutti | Firebird e Interbase | 3 | 05-01-2005 07:03:15 |
deadlock ¿esto q es? | chele | Varios | 2 | 13-10-2004 12:14:57 |
deadlock | scooterjgm | Conexión con bases de datos | 3 | 24-09-2004 18:49:32 |
A DeadLock was Detected | jafl1965 | SQL | 4 | 16-10-2003 15:33:44 |
|