DBAtlas · Veritabanı operasyon atlası

ORA-02049: Timeout: distributed transaction waiting for lock

Oracle

Ne demek?

Dağıtık (distributed) bir transaction, uzak veritabanındaki bir lock için beklerken DISTRIBUTED_LOCK_TIMEOUT süresi doldu. Transaction zaman aşımına uğradı.

Neden olur?

Database link üzerinden yürüyen bir transaction'ın, uzak taraftaki kilitli satırı beklemesi; uzak oturumdaki uzun transaction'lar, ağ gecikmeleri veya iki uçta da tutulan çakışan lock'lar.

Nasıl çözülür?

Uzak veritabanında engelleyen lock'u ve oturumu bulup çözün (v$lock, v$session). Dağıtık transaction'ları kısa tutun ve gerekli lock'ları en sona bırakın. Gerekirse DISTRIBUTED_LOCK_TIMEOUT değerini iş yüküne göre artırın (SPFILE, yeniden başlatma gerekir). Askıda kalan (in-doubt) dağıtık transaction'lar için DBA_2PC_PENDING view'ını inceleyin ve gerekirse elle çözün.

DBAtlas'ta aç →

Aynı motorda diğer kayıtlar