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

enq: TX - row lock contention: Attente : session bloquée sur un verrou de ligne détenu par une autre transaction

Oracle

Que signifie cette erreur ?

Une session attend la libération d'un verrou de ligne détenu par une autre transaction. C'est l'événement d'attente de verrou classique au niveau applicatif.

Cause

Transactions concurrentes tentant de mettre à jour la même ligne, transactions laissées longtemps sans commit, verrouillage étendu dû à des clés étrangères non indexées, ou concentration sur une clé séquentielle (hot block).

Comment la corriger

Trouvez les sessions bloquantes et bloquées : SELECT * FROM v$session WHERE blocking_session IS NOT NULL; et faites la corrélation avec v$lock. Si les longues transactions sont la cause racine, revoyez la stratégie de commit. Indexez les colonnes de clé étrangère. Repensez la conception (séquence, hachage) pour les lignes chaudes. Terminez la session bloquante si nécessaire.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur