powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Db level trigger & Shutdown
9 сообщений из 9, страница 1 из 1
Db level trigger & Shutdown
    #39334161
Фотография artemana
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Firebird 2.1.
Есть проблемы получения монопольного доступа к БД в случае, если у подключенного клиента произошла ошибка в триггере на подтверждении транзакции.
Структура базы для воспроизведения.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
create database "TEST_Shut.gdb" page_size 1024
  user "sysdba" password "masterkey";

commit work;

create exception TransactionCannotBeCommited "Can not commit a  transaction";

set term ^ ;


create trigger TranCommit
active on transaction commit position 0
as
begin
  if (RDB$GET_CONTEXT ('USER_TRANSACTION','TranCommitDisabled') is not null)
    then exception TransactionCannotBeCommited;
  end
  ^

set term ; ^
commit work;


Сценарий работы клиента:
1. Соединение
2. Старт транзакции
3. Выполнение запроса select RDB$SET_CONTEXT ('USER_TRANSACTION','TranCommitDisabled',1) from RDB$Database
4. Подтверждение транзакции

Ес-но на 4 шаге клиенту выдается ошибка. Если клиент не предпринимает никаких особых действий (а он, в общем случае, не обязан их делать), то происходит следующее.
1. Супер сервер: gfix -shut full -force 0 зависает
2. Классик сервер gfix -shut full -force 0 выполняется, пусть и с проблемой , а последующий gfix -online дает ошибку "lock conflict on no wait transaction".
...
Рейтинг: 0 / 0
Db level trigger & Shutdown
    #39334171
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Db level trigger & Shutdown
    #39334178
Фотография artemana
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev, по-моему нет. Там речь идет о зависание в режиме single. У меня же проблемы с full. Причем проблемы проявляются исключительно при описанной структуре и сценарии.
...
Рейтинг: 0 / 0
Db level trigger & Shutdown
    #39334250
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artemana,

shutdown в 2.5 подвёргся значительным исправлениям, которые вряд ли кто-то будет портировать в 2.1
Проверь на 2.5, если там всё ок - значит пора переезжать на 2.5 :)
Если 2.5 тоже вешается - пиши трекеру, в 2.5 это может быть исправлено.
...
Рейтинг: 0 / 0
Db level trigger & Shutdown
    #39334290
Фотография artemana
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladзначит пора переезжать на 2.5 :)
Ты как чувствовал! Поможешь? :)

hvladЕсли 2.5 тоже вешается - пиши трекеру, в 2.5 это может быть исправлено.
Постараюсь по свободе. Сейчас в DeadLine. Пока реализовал нужную мне логику без тригера на on commit.
...
Рейтинг: 0 / 0
Db level trigger & Shutdown
    #39334300
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artemanapage_size 1024
што? это для InterBase? ФБ с 2.0 минимальный размер страницы 4к. Прошу прощения за занудство, но в тесткейзе не надо обманывать или себя или других.

ну и еще занудное (я болею) - строковые константы обрамляются одинарными кавычками. Двойные - для идентификаторов.
...
Рейтинг: 0 / 0
Db level trigger & Shutdown
    #39334314
Фотография artemana
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvartemanapage_size 1024
што? это для InterBase? ФБ с 2.0 минимальный размер страницы 4к. Прошу прощения за занудство, но в тесткейзе не надо обманывать или себя или других.

ну и еще занудное (я болею) - строковые константы обрамляются одинарными кавычками. Двойные - для идентификаторов.
Скрипт на 2.1. идет без ошибок.
Размеры страницы и кавычки обсуждаются в других топиках. ;)
...
Рейтинг: 0 / 0
Db level trigger & Shutdown
    #39334382
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artemanahvladзначит пора переезжать на 2.5 :)
Ты как чувствовал! Поможешь? :)Конечно. Если понадобится ;)
...
Рейтинг: 0 / 0
Db level trigger & Shutdown
    #39338496
Фотография artemana
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladshutdown в 2.5 подвёргся значительным исправлениям, которые вряд ли кто-то будет портировать в 2.1
Проверь на 2.5, если там всё ок - значит пора переезжать на 2.5 :)
Если 2.5 тоже вешается - пиши трекеру, в 2.5 это может быть исправлено.
Проверили, в 2.5. всё ок.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Db level trigger & Shutdown
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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