powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
4 сообщений из 29, страница 2 из 2
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654868
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrТаблоид,

а если был холостой апдейт / селект с локом? Твой RC покажет что разницы нет, но апдейт в снапшоте все равно свалится с ошибкой. Выдумываешь сам себе проблемы, чтобы было интереснее их решать.
Хочу из снапшота запустить автономку и выполнить там:
Код: sql
1.
insert into EventLog (EventId, Cnt) values (32, 1);


А в триггере after insert for EventLog прописано:
Код: sql
1.
update Events set Cnt = Cnt + New.Cnt where Id = New.EventId;



Снапшот живёт примерно 5 секунд, и в самом конце в автономной транзакции делает вышеописанную "insert into EventLog".
Хочу иметь 100 параллельных снапшотов и не получать наружу ошибок от локов при "update Events". Какой код мне нужно прописать в код триггера, чтобы при конфликте обновления я мог повторно пытаться запускать update, пока он собственно не отработает? :)

Если бы автономная транзакция была RC, тогда задача была бы решаемой. А при конфликте в снапшоте уже всё, приплыли.
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654871
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавить в таблицу Events поле trn_id int и
Код: sql
1.
update Events set Cnt = Cnt + New.Cnt where Id = New.EventId and Events.trn_id = current_transaction;

Но затем, ес-сно, делать уже "сборку-схлопывание" этой таблицы. Отдельным аттачем, наверное, или с пробовать "по-тихому" залочить семафорную строку в служебной таблице и, если получилось - схлопнуть, иначе - также тихо выйти. ИМХО.
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654890
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидДобавить в таблицу Events поле trn_id int и
Код: sql
1.
update Events set Cnt = Cnt + New.Cnt where Id = New.EventId and Events.trn_id = current_transaction;

Но затем, ес-сно, делать уже "сборку-схлопывание" этой таблицы. Отдельным аттачем, наверное, или с пробовать "по-тихому" залочить семафорную строку в служебной таблице и, если получилось - схлопнуть, иначе - также тихо выйти. ИМХО.
Понятно что если нужно выкрутиться, то выкрутишься :) Но имхо когда приходится на простую задачу городить костыль - это верный признак что где-то недоработка :)
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654902
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeкогда приходится на простую задачу городить костыль - это верный признак что
где-то недоработка :)
Ага. Такое ведение хранимых остатков это всегда недоработка. Возможно даже в выборе СУБД.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
4 сообщений из 29, страница 2 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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