DBAtlas · Atlas de operações de banco de dados

ORA-04021: timeout occurred while waiting to lock object (timeout ao aguardar o lock de um objeto)

Oracle

O que significa?

Ocorreu um timeout ao aguardar a obtenção de um library cache lock/pin em um objeto (package, procedure, type etc.). Geralmente ocorre ao tentar compilar ou alterar um objeto PL/SQL enquanto ele está sendo executado ou bloqueado por outra sessão.

Por que acontece?

O objeto a ser alterado/compilado está em execução ativa em outra sessão ou está bloqueado por outro DDL, por isso o library cache lock exclusivo não pode ser obtido. Uma chamada de procedure de longa duração ou uma sessão travada pode estar mantendo o lock.

Como resolver

Encontre a sessão que bloqueia o objeto: SELECT * FROM dba_kgllock WHERE kgllkhdl IN (SELECT p1raw FROM v$session WHERE event LIKE 'library cache%'); ou identifique a sessão que usa o objeto com v$access e v$session. Repita o DDL/a compilação em uma janela de manutenção com pouca carga. Se necessário, encerre a sessão com segurança. Parar a aplicação brevemente facilita a obtenção do lock.

Abrir no DBAtlas →

Mais entradas deste banco