DB2: Bloqueos en tablas o registros

Todos los programas se cuelgan, fallos de Hardware, Software, fallos en programación, conectividades…. mil cosas. Hay ocasiones en que esos cuelgues, no solo afectan al programa sino también a la base de datos a la que atacan.

Un problema que hacia tiempo que no ocurría y que he visto varias veces en el último mes es el del bloqueo de un registro de la base de datos y que como la aplicación que lo provoca se queda en según plano en el ordenador, no llega a liberar el registro y hacer un rollback.

NINGUNA DE LAS ACCIONES QUE VOY A EXPLICAR TIENE SOPORTE POR PARTE DE GEINFOR. MUCHO OJO Y BAJO VUESTRA RESPONSABILIDAD

En el caso de DB2 hay dos consultas que es muy util tener a mano:

Esta nos muestra los bloqueos activos en el sistemas

SELECT * FROM
TABLE (MON_GET_APPL_LOCKWAIT(NULL, -2))

Esta otra nos muestras todas las conexiones contra la base de datos así como el nombre del ejecutable, la estación cliente, la IP, etc….

SELECT *
FROM TABLE(MON_GET_CONNECTION(NULL,-2))

Relacionando las dos por el APPLICATION_HANDLE nos dice exactamente al culpable que tenemos que buscar para que cierre el proceso

SELECT *
FROM TABLE(MON_GET_CONNECTION(NULL,-2))
WHERE APPLICATION_handle IN (SELECT HLD_APPLICATION_HANDLE FROM
TABLE (MON_GET_APPL_LOCKWAIT(NULL, -2)))

Espero que os sea útil, suscribiros para que os lleguen avisos de la próxima entrada y no dudéis en comentar o mandar un mensaje con cualquier consulta, aportación o inquietud que tengáis…

… y si algo sale mal… La Culpa de Sistemas 😉

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.