Hola.
Yo más bien me inclino a que se cuelgua por un bloqueo. En inglés se llama deadlock (abrazo mortal).
Tu primer Query modifica ciertos registros, que el segundo proceso necesita leer para hacer sus propias modificaciones. Pero el registro está bloqueado al no haber finalizado la transacción, por lo que tienes una consulta que mantiene bloqueado un registro, y otra consulta que espera que se libere ese mismo registro para poder seguir el proceso.
Para poder comprobar que es este caso, configura la sesión para que cuando se encuentre un registro bloqueado, en lugar de esperar indefinidamente a que se libere el recurso, salte un error.
Para eso, antes de realizar las modificaciones lanza la siguiente sentencia (con un Query mismo)
SET @@LOCK_TIMEOUT 0
(Por defecto está a -1, también puedes poner un valor positivo, 100 milisegundos, ...)
Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
|