Страница 1 из 1

Зависла транзакция и dedlock

Добавлено: 22 фев 2005, 09:48
Вячеслав
Ситуация такая.
Транзакция ReadCommited.
Изменяется запись в таблице, но commit еще небыло. При попытке изменить запись другими пользователями возникает dedlock, естественно. Далее: отваливается соединение. Получаем зависшую транзакцию. С измененной записью ничего нельзя сделать.
Как же обходить такую ситуацию.

Добавлено: 22 фев 2005, 09:53
kdv
ничего не получаем. это означает что соединение на сервере на самом деле НЕ отвалилось. подожди connection_timeout секунд, и коннект отрубится на сервере.

ты, вообще, про какую версию сервера-то? Не про IB 6, часом?

Добавлено: 22 фев 2005, 10:07
Вячеслав
FireBird 1.5.1 Classic.

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

Добавлено: 22 фев 2005, 10:22
sag
> Соединение не восстановится.

Имеется в виду не то что оно восстановится, а то что сервер "прикроет" это соединение через некоторое время.

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

бывает, в экстренном случае на классике может помочь утилита TCPView, если известно с какого адреса сети была произведена блокировка записи - принудительно делаешь этому процессу Close Connection.

Добавлено: 22 фев 2005, 10:41
Вячеслав
connection_timeout где устанавливать? В настройках сервера или в
pFIBDatabase.DBParams или еще где?

Добавлено: 22 фев 2005, 10:48
kdv
а ты дай поиск этого слова на ibase.ru.