DBAtlas · Atlas für Datenbankbetrieb

ORA-04021: timeout occurred while waiting to lock object

Oracle

Was bedeutet das?

Beim Warten auf einen Library Cache Lock/Pin für ein Objekt (Package, Prozedur, Typ usw.) ist ein Timeout aufgetreten. Tritt meist beim Versuch auf, ein PL/SQL-Objekt zu kompilieren oder zu ändern, während es von einer anderen Session ausgeführt oder gesperrt wird.

Ursache

Das zu ändernde/kompilierende Objekt wird in einer anderen Session aktiv ausgeführt oder ist durch eine andere DDL gesperrt, daher kann der exklusive Library Cache Lock nicht erlangt werden. Ein lang laufender Prozeduraufruf oder eine hängende Session hält möglicherweise die Sperre.

Lösung

Finde die Session, die das Objekt sperrt: SELECT * FROM dba_kgllock WHERE kgllkhdl IN (SELECT p1raw FROM v$session WHERE event LIKE 'library cache%'); oder ermittle mit v$access und v$session die Session, die das Objekt nutzt. Wiederhole DDL/Kompilierung in einem Wartungsfenster mit geringer Last. Beende die Session bei Bedarf auf sichere Weise. Ein kurzes Anhalten der Anwendung erleichtert das Erlangen der Sperre.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank