DBAtlas · Atlas de operaciones de bases de datos

ORA-04021: timeout occurred while waiting to lock object (timeout al esperar el bloqueo de un objeto)

Oracle

¿Qué significa?

Se produjo un timeout al esperar para obtener un library cache lock/pin sobre un objeto (package, procedimiento, tipo, etc.). Suele ocurrir al intentar compilar o modificar un objeto PL/SQL mientras otra sesión lo está ejecutando o bloqueando.

¿Por qué ocurre?

El objeto que se quiere modificar/compilar se está ejecutando activamente en otra sesión o está bloqueado por otro DDL, por lo que no se puede obtener el library cache lock exclusivo. Una llamada a un procedimiento de larga duración o una sesión colgada pueden estar manteniendo el bloqueo.

Cómo solucionarlo

Busque la sesión que bloquea el objeto: SELECT * FROM dba_kgllock WHERE kgllkhdl IN (SELECT p1raw FROM v$session WHERE event LIKE 'library cache%'); o identifique la sesión que usa el objeto con v$access y v$session. Reintente el DDL/la compilación en una ventana de mantenimiento con poca carga. Si es necesario, termine la sesión de forma segura. Detener brevemente la aplicación facilita obtener el bloqueo.

Abrir en DBAtlas →

Más entradas de este motor