FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
se bloque una transaccion en interbase...
saludos
disculpen, tengo que cambiar un valor de una columna tipo char(1), el sistema esta en red, al hacer directamente desde ibadmin me da un error lock conflict on no wait transacction dead lock, me muevo a otro registro y hago un commit y refresco la tabla si lo busco de nuevo aun tiene el mismo valor por decirlo P y se cambiara a A. es posible que desde el cleinte lo este bloqueando o que pudiera ser. les agradesco. |
#2
|
||||
|
||||
checa esto....
Algo similar me pasa contigo, pero en mi caso es más raro porque uso FireBird 1.52, con 2 pc's lo que me pasa es que en una pc tiene bloquedo un registro de una tabla porque tiene una transaccion pendiente, pero en ocasiones si quiere modificar cualquier otro registro no me deja me marca dicho error, esto pudiera ser un Bug que no se ha detectado con la versión, yo lo que hago es cerrar el cliente y le doy un ShotDown al Servidor de FireBird.....
Aunque es una practica inapropiada si ponemos como ejemplo que tu aplicación este con 10 ó 40 PC's, y se tengan que salir cada uno de ellos, yo ya revise las transacciones y solo uso CommitRetaining, voy optar por usar el Commit.... Y como comentas al parecer no te acepta los cambios porque algun cliente tiene ocupado(Bloqueado) dicho registro, te recomiendo que revises los niveles de aislamiento para las transacciones que debe de tener los componentes que usas. Espero haberte ayudado un poco. Última edición por AGAG4 fecha: 19-03-2005 a las 02:51:38. Razón: c |
#3
|
|||
|
|||
saludos,
Ok, eso pense que era mejor apagar el server por algo raro que quedara bloqueda alguna transaccion, el nivel que tiene el programa cliente es el de Read commited, y uso los ibx, pero es algo raro por que... antes de que lo apage ya revise ese valor que debia cambiar y ya esta cambiado quizas esta bloquedo mientras los usuarios estaban entrando a la base. Hay una cosa que debo comentar, buscando un archivo *.lck en C:\Archivos de programas\interbase\server1.lck este archivo que quiere decir ? no se debe borrar o siempre esta presente ! les agradesco gracias. |
#4
|
||||
|
||||
Yo uso el IBX
yo uso el IBX y en algun momento me paso eso que comenta, para solucionar lo que hice fue:
1. en la transacción uso Read_Committed se ve algo asi como esot read_committed rec_version nowait 2. Crear un triger en la tabla. 3. Colocar un evento que detecte ese trigger y en este hacer un CommitRetaining. Nota: Hasta donde entendi debe ser CommitRetaining y no Commit |
|
|
|