DBAtlas · Atlas d'exploitation des bases de données

ORA-04021: timeout occurred while waiting to lock object (timeout en attendant le verrouillage de l'objet)

Oracle

Que signifie cette erreur ?

Un timeout s'est produit en attendant d'obtenir un library cache lock/pin sur un objet (package, procédure, type, etc.). Se produit généralement lors d'une tentative de compilation ou de modification d'un objet PL/SQL alors qu'il est exécuté ou verrouillé par une autre session.

Cause

L'objet à modifier/compiler est en cours d'exécution dans une autre session ou verrouillé par un autre DDL, le library cache lock exclusif ne peut donc pas être obtenu. Un appel de procédure de longue durée ou une session bloquée peut détenir le verrou.

Comment la corriger

Trouvez la session qui verrouille l'objet : SELECT * FROM dba_kgllock WHERE kgllkhdl IN (SELECT p1raw FROM v$session WHERE event LIKE 'library cache%'); ou identifiez la session qui utilise l'objet avec v$access et v$session. Relancez le DDL/la compilation pendant une fenêtre de maintenance à faible charge. Si nécessaire, terminez la session en toute sécurité. Arrêter brièvement l'application facilite l'obtention du verrou.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur