ORA-00054: Resource busy and acquire with NOWAIT specified or timeout expired (ressource occupée ; NOWAIT spécifié ou délai expiré)
OracleQue signifie cette erreur ?
La ressource (ligne ou table) à verrouiller est verrouillée par une autre session et n'a pas pu être acquise immédiatement, car NOWAIT était spécifié ou DDL_LOCK_TIMEOUT a expiré.
Cause
Généralement un DDL (ALTER TABLE, DROP, CREATE INDEX) tenté alors que la table est verrouillée par une autre transaction ; ou une ligne verrouillée rencontrée avec SELECT ... FOR UPDATE NOWAIT.
Comment la corriger
Trouvez la session qui détient le verrou : SELECT * FROM v$locked_object. Joignez v$session et v$lock pour identifier la session bloquante. Attendez la fin de la transaction ou, si nécessaire, terminez-la avec ALTER SYSTEM KILL SESSION. Pour le DDL, vous pouvez définir un temps d'attente : ALTER SESSION SET DDL_LOCK_TIMEOUT = 60; Exécutez le DDL pendant des fenêtres de maintenance calmes.
Autres entrées pour ce moteur
- ORA-00001Unique constraint violated (contrainte unique violée)
- ORA-00060Deadlock detected while waiting for resource (interblocage détecté en attente de ressource)
- ORA-01017Invalid username/password; logon denied (nom d'utilisateur/mot de passe invalide ; connexion refusée)
- ORA-01555Snapshot too old: rollback segment number too small (instantané trop ancien)
- ORA-01652Unable to extend temp segment by N in tablespace (impossible d'étendre le segment temporaire de N dans le tablespace)