DBAtlas · Атлас эксплуатации баз данных

ORA-02049: Тайм-аут: распределённая транзакция ожидает блокировку

Oracle

Что это значит?

Распределённая транзакция превысила DISTRIBUTED_LOCK_TIMEOUT, ожидая блокировку в удалённой базе данных. Истёк тайм-аут транзакции.

Почему возникает?

Транзакция, выполняемая через database link, ждёт заблокированную строку на удалённой стороне; длительные транзакции в удалённой сессии, сетевая задержка или конфликтующие блокировки на обеих сторонах.

Как исправить

Найдите и устраните блокирующую блокировку и сессию в удалённой базе данных (v$lock, v$session). Делайте распределённые транзакции короткими и захватывайте необходимые блокировки как можно позже. При необходимости увеличьте DISTRIBUTED_LOCK_TIMEOUT под нагрузку (SPFILE, требуется перезапуск). Для распределённых транзакций в состоянии in-doubt изучите представление DBA_2PC_PENDING и при необходимости разрешите их вручную.

Открыть в DBAtlas →

Ещё по этой СУБД