powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Поведение Wait транзакции Firebird
3 сообщений из 3, страница 1 из 1
Поведение Wait транзакции Firebird
    #39754732
vladgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

Подскажите в чем может быть дело
Firebird 2.5.8
Delphi XE / FIBPLUS


Создаю транзакцию с параметрами
Код: sql
1.
2.
3.
write
wait
read_commited



Код: plsql
1.
2.
Timeout=7
TimeoutAction - Rollback


Прохожу код отладчиком. Перед стартом транзакции подключаюсь IBExpert`ом к базе и начинаю специально редактировать запись в таблице.
В процедуре делаю Insert () Select и это дело зависает.

Ожидаю, что зависнет на 7 секунд затем будет вызвано исключение.
Однако этого не происходит и все подвисает до тех пор, пока не закрою транзакцию в IBExpert потом все продолжается штатно.
1. Почему вообще зависает на Insert () Select. Думал должна добавить запись в "прошлом" виде до не закомитченных изменений.
2. Если все же зависла, почему не вызывается исключение через время Timeout

если ставлю параметры транзакции для "вИдения" только тех данных, которые были на момент старта транзакции
Код: sql
1.
2.
3.
write
wait 
concurrency


То Insert () select проходит без проблем
и ожидаемо мной "зависает" на попытке UPDATE обновить запись в таблице, которую "держит" IbExpert.
Но здесь также, вопрос почему не срабатывает timeout.
Как только закрываю транзакцию получаю исключение Update conflicts. Предполагаю, что из-за того что транзакция concurrency и данные которые хотел обновить "устарели" и из обновлять нельзя. Правильно ли это понимаю?
Что можно сделать с timeout?
...
Рейтинг: 0 / 0
Поведение Wait транзакции Firebird
    #39754737
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladgul,

охохо...

1. insert into select да, зависал до ФБ 3, потому что селект видел сделанные инсерты, происходил зацикл. В ФБ 3 уже все ок.
2. Когда на сервере зависло, значит клиентская часть ничего не может отправить серверу, хоть там трижды будет
таймаут.
3. клиентский таймаут - исключительно клиентский. Если сервер повис на Wait-конфликте, то клиент тоже висит, и таймауты у него не работают. А даже если и сработают, то будут висеть до "отлипания" серверного wait.
...
Рейтинг: 0 / 0
Поведение Wait транзакции Firebird
    #39754740
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladgulСоздаю транзакцию с параметрами

record_version забыл.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Поведение Wait транзакции Firebird
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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