Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / distributed transaction waiting for lock / 8 сообщений из 8, страница 1 из 1
25.04.2018, 00:48
    #39635720
verter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
distributed transaction waiting for lock
Добрового всем.

Стал получать такую ошибку:

ORA-02049: timeout: distributed transaction waiting for lock

Ошибка плохая, потому что то происходит, то нет, т.е. чётко воспроизвести нельзя.
После какого действия она может происходить знаю.
Везде пишут, что это связано с dblink'ми на внешние базы.
Да, у меня есть таковые на MS SQL-сервера, но когда стал получать эту ошибку, то перестал их задействовать, т.е. не выполняю запросы с их участием, а ошибка всё-равно периодически происходит.

Возможно ли появление такой ошибки без какой либо связи с dblink'ми на внешние сервера БД?
...
Рейтинг: 0 / 0
25.04.2018, 07:09
    #39635757
flexgen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
distributed transaction waiting for lock
verter,

Какая версия базы? Возможно это твой случай - Recommended patching and actions for Oracle database versions 12.1.0.1, 11.2.0.3 and earlier - before June 2019 (Doc ID 2335265.1)

На случай если нет доступа:

Oracle Database versions 11.1.0.7, 11.2.0.3 & 12.1.0.1 are strongly recommended to be patched to the patchset/PSU levels mentioned below before June 2019 to resolve potential future issues in terms of interoperability of dblinks. No action is needed if you are running database releases/versions 12.2, 12.1.0.2 or 11.2.0.4. If you are still using 10.2 or earlier releases and using dblinks with later database releases, this note applies.
...
Рейтинг: 0 / 0
25.04.2018, 09:18
    #39635812
slow brain
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
distributed transaction waiting for lock
На каком уровне возникает ошибка (приложение, процесс загрузки, etc)?
Приложение на чем написано? используются ли распределенные ранзакции (XA)?
...
Рейтинг: 0 / 0
26.04.2018, 17:53
    #39636932
verter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
distributed transaction waiting for lock
Я использую версию
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
...
Рейтинг: 0 / 0
26.04.2018, 18:01
    #39636935
verter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
distributed transaction waiting for lock
Беда в том, что после этой ошибки сервер загибается, т.е. работать становится всё медленнее и медленнее, в конце концов фиксация изменений в базе начинают происходить бесконечно долго. Т.е. всё это похоже на настоящий deadlock.
Как можно сделать так что если уж случился такой дэдлок, то просто отменить совершенное действие и главное сделать так чтобы сервер не зависал?
...
Рейтинг: 0 / 0
26.04.2018, 18:03
    #39636937
verter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
distributed transaction waiting for lock
slow brainНа каком уровне возникает ошибка (приложение, процесс загрузки, etc)?
Приложение на чем написано? используются ли распределенные ранзакции (XA)?

В триггере происходит удаление строк в таблице, в этот момент срабатывает джоб, в котором выполняется гетерогенный селект, в тексте которого содержится дблинк на внешнюю БД MSSQL. Этот селект так же делает выборку из обновляемой в триггере таблицы.
...
Рейтинг: 0 / 0
26.04.2018, 19:07
    #39636987
verter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
distributed transaction waiting for lock
Пусть бы эта ошибка иногда происходила бы - ничего страшного, операцию DML можно и повторить, но в результате этой ошибки происходит дэдлок и БД перестаёт работать вообще. Как бы написать обработчик этой ошибки, в котором просто её игнорировать, чтобы исключить её влияние на работу всего остального?
...
Рейтинг: 0 / 0
26.04.2018, 19:24
    #39636996
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
distributed transaction waiting for lock
verterно в результате этой ошибки происходит дэдлок и БД перестаёт работать вообще.
анекдотТоварищи ученые, у меня в подвале происходит подземный стук!
Объясните пожалуйста, отчего он происходит...

Начните с начала - ознакомьтесь с механизмами:
https://docs.oracle.com/cd/B28359_01/server.111/b28310/ds_txns.htm#i1307516

Потом изучите картину блокировок "загибающегося" сервера - не вообще, а на конкретных выборках.
DBA_WAITERS/DBA_HOLDERS, V$LOCK и DBA_2PC_* в помощь.

Возможно, делу поможет увеличение общего допустимого количества распределенных транзакций и собственно значения таймаута - но только когда разберетесь в проблеме детально, а не на уровне подземных стуков.

И для справки - oracle не имеет обыкновения висеть на deadlock.
Как только в графе блокировок образуется цикл - он рвется посредством выбивания "замыкающей" этот цикл операции с ORA-00060: Deadlock detected.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / distributed transaction waiting for lock / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]