Страница 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.