powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Инструментарий по вылавливанию deadlock
4 сообщений из 4, страница 1 из 1
Инструментарий по вылавливанию deadlock
    #39236577
Fofanov_Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть ли нормальный инструмент по вылавливанию deadlock-ов?
"lock conflict on no wait transaction deadlock update..
At trigger..."

Чтобы указал, что вот данная транзакция с вот таким апдейтом держит строку и дает отлуп вот этому апдейту...

FireBird 2.5
...
Рейтинг: 0 / 0
Инструментарий по вылавливанию deadlock
    #39236592
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fofanov_Alexey,

разве что аудит (или трейс). Потому что дэдлок обычно долго не живет, как и транзакция, в которой он возник. Если deadlock случился "прям щас", то может быть, можно успеть увидеть что-то в mon$.

Но вообще-то, обычно сообщение deadlock - это конфликт обновления одной записи ИЗ ДВУХ транзакций. Так что, по уму надо знать, что делалось в обоих транзакциях, да еще и с какой записью.
...
Рейтинг: 0 / 0
Инструментарий по вылавливанию deadlock
    #39236714
Фотография Alexey Kovyazin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это не настоящий дедлок, это конфликт обновления одной и той же записи из двух разных транзакций.

Берете HQbird PerfMon, запускаете трейс, ждете момента, когда произошел облом, фиксируете (лучше всего в приложении).
Затем в БД лога PerfMon скрупулезно смотрите все открытые на тот момент транзакции, и в них смотрите выполняющиеся UPDATE или DELETE, далее сопоставляете с обломившимся и вуаля.

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

С уважением,
Алексей Ковязин
www.ibase.ru
...
Рейтинг: 0 / 0
Инструментарий по вылавливанию deadlock
    #39236727
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Kovyazinмодифицировать логику приложения - перед апдейтом, который меняет
реальные данные, делать холостой апдейт, и обрабатывать его результат - если не вернул
ошибки, можно делать основной апдейт, если вернул, значит, надо сообщать пользователю о
невозможности производства апдейта
А холостой-то апдейт тут зачем?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Инструментарий по вылавливанию deadlock
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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