cómo verificar objetos bloqueados en una Base de Datos Oracle
Existen dos vistas que registran los bloqueos de objetos en una base de datos oracle 10g:
1. DBA_DDL_LOCKS
2. DBA_DML_LOCKS
La primera registra los bloqueos por compilaciones, comandos alter ..., etc. La segunda registra los bloqueos por update, delete, insert, select.
La vista DBA_DML_LOCKS tiene un campo llamado BLOCKING_OTHERS, el cual registra si hay otros objetos "esperando" a que se desbloquee el objeto registrado como bloqueado.
Ambas vistas están accesibles para el usuario sys o system, y son útiles para detectar si algún objeto está bloqueado en modo "Exclusive" cuando ocurre un error como este:
ORA-04021: timeout occurred while waiting to lock object schema_user.object
Este error salió cuando se intentó compilar un package y dicho package estaba entretenido ejecutando un cliclo infinito. :) La solución fue reiniciar la aplicación (OAS) para poder volver a compilar el package. Quizá hubiera sido mejor identificar la sesión o sesiones bloqueadas y "matarlas", pero como no era un proceso crítico y no había mucho tiempo, se decidió reiniciar todo.
1 Comments:
vaya que los ise's son raros... sobretodo si son expses.... a ver cuando se arma el billar...
saludos un iec :D
7:59 p.m.
Publicar un comentario
<< Home