ORA-04021: timeout occurred while waiting to lock object
OracleWas 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.
Weitere Einträge zu dieser Datenbank
- ORA-29913error in executing ODCIEXTTABLEOPEN callout
- ORA-19804cannot reclaim N bytes disk space from M bytes limit
- ORA-00494enqueue held for too long by 'inst N, osid M'
- ORA-04061existing state of package/procedure has been invalidated
- ORA-01466unable to read data - table definition has changed
- ORA-08176consistent read failure; rollback data not available
- ORA-00020maximum number of processes (N) exceeded