Проблема подвисания транзакций FB 2.1.3 CS
Добавлено: 16 ноя 2011, 19:30
Добрый день!
У меня в БД существует проблема с зависшими транзакциями и в следствии сыпятся lock conflict-ы. Соединения с приложением клиента нет, но процесс крутится на сервере. KeepAliveTime = 120000, т.е. установлен в 2 мин. Но по истечении этого времени процесс все равно остается и лочит остальные.
Пошел следующим путем:
В mon$attachments нашел PID злостной транзакции и убил этот процесс через таск менеджер, после чего база зависла в буквальном смысле этого слова:
1)Новые коннекты к базе попросту зависали
2) На старых коннектах запросы подвисали и не выполнялись
3) Перевод базу в шут-даут то же не выполнялся, а зависал.
4) После кила юзерей через ibconclick соединение обрывалось, а процессы fb_inet_server оставались.
После того как убил все процессы через таск менеджер удалось потушить БД в шут даун.
Вопрос, почему подвисший процесс не убился по истечению 2-х мин и почему когда я его убил руками началась такая карусель?
Данная проблема существует давно и постоянно решал её шутдауном БД. Но думал, что после параметризации KeepAliveTime она исчезнет, но не тут то было
Использую:
Windows 2003 server
Firebird 2.1.3 Classic Server
У меня в БД существует проблема с зависшими транзакциями и в следствии сыпятся lock conflict-ы. Соединения с приложением клиента нет, но процесс крутится на сервере. KeepAliveTime = 120000, т.е. установлен в 2 мин. Но по истечении этого времени процесс все равно остается и лочит остальные.
Пошел следующим путем:
В mon$attachments нашел PID злостной транзакции и убил этот процесс через таск менеджер, после чего база зависла в буквальном смысле этого слова:
1)Новые коннекты к базе попросту зависали
2) На старых коннектах запросы подвисали и не выполнялись
3) Перевод базу в шут-даут то же не выполнялся, а зависал.
4) После кила юзерей через ibconclick соединение обрывалось, а процессы fb_inet_server оставались.
После того как убил все процессы через таск менеджер удалось потушить БД в шут даун.
Вопрос, почему подвисший процесс не убился по истечению 2-х мин и почему когда я его убил руками началась такая карусель?
Данная проблема существует давно и постоянно решал её шутдауном БД. Но думал, что после параметризации KeepAliveTime она исчезнет, но не тут то было
Использую:
Windows 2003 server
Firebird 2.1.3 Classic Server