powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / отличить LOCK CONFLICT от DEADLOCK-а
12 сообщений из 12, страница 1 из 1
отличить LOCK CONFLICT от DEADLOCK-а
    #39800658
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, ВСЕ!

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

Собственно, как отличить одно от другого?
(имея на руках статус-вектор)

Засада в том, что при банальном конфликте
сервер помимо isc_lock_conflict непременно
пихает в статус-вектор ещё и isc_deadlock.

Как быть?

--
Регардсы и прочее
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
отличить LOCK CONFLICT от DEADLOCK-а
    #39800678
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийсервер помимо isc_lock_conflict непременно
пихает в статус-вектор ещё и isc_deadlock.Покажи пример такого статуса, мне кажется что там не может быть обоих кодов одновременно
...
Рейтинг: 0 / 0
отличить LOCK CONFLICT от DEADLOCK-а
    #39800690
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
12.04.2019 17:16, hvlad пишет:
> Покажи пример такого статуса, мне кажется что там не может быть обоих кодов одновременно

всегда оно там.
из двух разных коннектов апдейтим одну запись.
не коммитим.
имеем:

1 335544336
1 335544451
1 335544878
4 21807171

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
отличить LOCK CONFLICT от DEADLOCK-а
    #39800701
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

тут у тебя:
isc_deadlock,
isc_update_conflict,
isc_concurrent_transaction

от чего ты хочешь это отличить ?

По идее, достаточно опираться на наличие isc_update_conflict
...
Рейтинг: 0 / 0
отличить LOCK CONFLICT от DEADLOCK-а
    #39800705
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
12.04.2019 17:53, hvlad пишет:
> от чего ты хочешь это отличить ?

от настоящего DEADLOCK-а я хочу это отличить.

> По идее, достаточно опираться на наличие isc_update_conflict

поясни, плс.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
отличить LOCK CONFLICT от DEADLOCK-а
    #39800709
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий> от чего ты хочешь это отличить ?

от настоящего DEADLOCK-а я хочу это отличить.А что ты называешь настоящим дедлоком ?


Мимопроходящий> По идее, достаточно опираться на наличие isc_update_conflict

поясни, плс.В вышеприведенном статус-векторе isc_deadlock можно игнорировать.
isc_update_conflict говорит о наличии конфликта обновления\удаления
...
Рейтинг: 0 / 0
отличить LOCK CONFLICT от DEADLOCK-а
    #39800719
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
12.04.2019 18:05, hvlad пишет:
> А что ты называешь настоящим дедлоком ?

естественно 2 WAIT-транзакции, которые взамно наступили на одну пару граблей идя к ним окольными путями.

> В вышеприведенном статус-векторе isc_deadlock можно игнорировать.

это понятно.
ещё со времён IB5.X сервер пихал isc_deadlock куда ни попадя.

> isc_update_conflict говорит о наличии конфликта обновления\удаления

существует ещё и isc_lock_conflict (не в этом случае).
и опять таки, в присутствии isc_deadlock.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
отличить LOCK CONFLICT от DEADLOCK-а
    #39800729
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

isc_update_conflict возвращается когда кто-то обновил\удалил запись, которую мы хотим обновить удалить,
и успел закоммититься.

Если же конкурент активен, то, в зависимости от значения нашего лок-таймаута, возвращается
- isc_deadlock, если таймаут -1 ("бесконечное ожидание")
- isc_lock_conflict, если таймаут 0
- isc_lock_timeout, если таймаут > 0
...
Рейтинг: 0 / 0
отличить LOCK CONFLICT от DEADLOCK-а
    #39800731
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийisc_lock_conflict (не в этом случае).
и опять таки, в присутствии isc_deadlock.Никогда не видел и не думаю, что увижу
...
Рейтинг: 0 / 0
отличить LOCK CONFLICT от DEADLOCK-а
    #39800734
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladisc_update_conflict возвращается когда кто-то обновил\удалил запись, которую мы хотим обновить удалить,
и успел закоммититься.Похоже поспешил, не все ветки кода просмотрел.
Есть случаи, когда isc_update_conflict возвращается независимо от состояния конкурента.
...
Рейтинг: 0 / 0
отличить LOCK CONFLICT от DEADLOCK-а
    #39801375
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня в логах от 1.5 присутствуют комбинации:

isc_deadlock
isc_update_conflict

и

isc_lock_conflict
isc_deadlock
isc_update_conflict

именно в такой последовательности.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
отличить LOCK CONFLICT от DEADLOCK-а
    #39801429
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

что такое 1.5 ?
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / отличить LOCK CONFLICT от DEADLOCK-а
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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