ORA-04021: timeout occurred while waiting to lock object (timeout en attendant le verrouillage de l'objet)
OracleQue 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.
Autres entrées pour ce moteur
- ORA-29913error in executing ODCIEXTTABLEOPEN callout (erreur lors de l'exécution du callout ODCIEXTTABLEOPEN)
- ORA-19804cannot reclaim N bytes disk space from M bytes limit (impossible de récupérer N octets d'espace disque sur la limite de M octets)
- ORA-00494enqueue held for too long by 'inst N, osid M' (enqueue détenu trop longtemps par 'inst N, osid M')
- ORA-04061existing state of package/procedure has been invalidated (l'état existant du package/de la procédure a été invalidé)
- ORA-01466unable to read data - table definition has changed (lecture des données impossible : la définition de la table a changé)
- ORA-08176consistent read failure; rollback data not available (échec de lecture cohérente ; données de rollback indisponibles)
- ORA-00020maximum number of processes (N) exceeded (nombre maximal de processus (N) dépassé)