ORA-02049: Timeout: distributed transaction waiting for lock (délai expiré : transaction distribuée en attente de verrou)
OracleQue signifie cette erreur ?
Une transaction distribuée a dépassé DISTRIBUTED_LOCK_TIMEOUT en attendant un verrou sur la base de données distante. La transaction a expiré.
Cause
Une transaction s'exécutant via un database link attend une ligne verrouillée côté distant ; longues transactions dans la session distante, latence réseau, ou verrous en conflit détenus aux deux extrémités.
Comment la corriger
Trouvez et résolvez le verrou et la session bloquants sur la base de données distante (v$lock, v$session). Gardez les transactions distribuées courtes et acquérez les verrous nécessaires le plus tard possible. Si nécessaire, augmentez DISTRIBUTED_LOCK_TIMEOUT selon la charge (SPFILE, redémarrage requis). Pour les transactions distribuées in-doubt, examinez la vue DBA_2PC_PENDING et résolvez-les manuellement si nécessaire.
Autres entrées pour ce moteur
- ORA-28000The account is locked (le compte est verrouillé)
- ORA-01578Oracle data block corrupted (file #, block #) (bloc de données Oracle corrompu)
- ORA-01722Invalid number (nombre invalide)
- enq: TX - row lock contentionAttente : session bloquée sur un verrou de ligne détenu par une autre transaction
- log file syncAttente : session attendant que LGWR écrive le redo sur disque au commit
- db file sequential readAttente : lecture physique d'un seul bloc, généralement un accès par index ou à une table
- db file scattered readAttente : lecture physique multibloc, généralement un full table scan ou un index fast full scan