ORA-02049: Timeout: distributed transaction waiting for lock (Timeout: verteilte Transaktion wartet auf Sperre)
OracleWas bedeutet das?
Eine verteilte Transaktion hat beim Warten auf eine Sperre in der entfernten Datenbank DISTRIBUTED_LOCK_TIMEOUT überschritten. Die Transaktion ist in einen Timeout gelaufen.
Ursache
Eine über einen Database Link laufende Transaktion wartet auf der entfernten Seite auf eine gesperrte Zeile; lange Transaktionen in der entfernten Session, Netzwerklatenz oder auf beiden Seiten gehaltene, kollidierende Sperren.
Lösung
Finde und löse die blockierende Sperre und Session in der entfernten Datenbank (v$lock, v$session). Halte verteilte Transaktionen kurz und fordere die nötigen Sperren so spät wie möglich an. Erhöhe bei Bedarf DISTRIBUTED_LOCK_TIMEOUT für die Last (SPFILE, Neustart erforderlich). Untersuche bei In-Doubt-Transaktionen die View DBA_2PC_PENDING und löse sie bei Bedarf manuell auf.
Weitere Einträge zu dieser Datenbank
- ORA-28000The account is locked (das Konto ist gesperrt)
- ORA-01578Oracle data block corrupted (file #, block #) (Oracle-Datenblock beschädigt)
- ORA-01722Invalid number (ungültige Zahl)
- enq: TX - row lock contentionWait: Session durch Zeilensperre einer anderen Transaktion blockiert
- log file syncWait: Session wartet beim Commit, bis LGWR Redo auf Disk schreibt
- db file sequential readWait: physischer Single-Block-Read, typisch bei Index- oder Tabellenzugriff
- db file scattered readWait: physischer Multi-Block-Read, typisch bei Full Table Scan oder Index Fast Full Scan