IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.
Модератор: kdv
-
Alex_Vor
- Сообщения: 12
- Зарегистрирован: 15 фев 2005, 14:16
Сообщение
Alex_Vor » 10 ноя 2005, 12:19
Доброго времени суток! Столкнулся с весьма неприятной штукой
Ситуация: служба firebird_server(v. 1.0.2.908) на серваке периодически перезапускается (после частых 10054), но проблема не в этом. На клиентах работает прога с SQL-запросами через IBQuery (delphi6) к базе на серваке. Если между запросами к базе был перезапуск службы FB_server, то при очередной попытке select выскакивает "Dataset Open" и прогу надо перезапускать... Алгоритм работы проги: запуск-connect-sql.close-sql.open-...-выход-disconnect.
Вариант запуск-connect-sql1.close-sql1.open-disconnect-connect-sql2.close-sql2.open-disconnect...-выход обходит ошибки, но серваку трудны частые коннекты/дисконнекты. Пробовал просто проверять состояние коннекта перед выполнением запросов - тоже ругается, если был перезапуск. Как определить, что служба перезапускалась и, соответственно, переконнектить клиента? Надеюсь, из муторного описания моей проблемы Вы что-нить поняли... Заранее Спасибо.
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 10 ноя 2005, 12:52
серваку трудны частые коннекты/дисконнекты.
это наветы. ничего ему не трудно.
Как определить, что служба перезапускалась и, соответственно, переконнектить клиента?
никак не определить. у тебя открыт коннект. Подкрался враг и перерезал сетевой провод. Ты до очередного обращения к коннекту так и не узнаешь, что провод перерезан. Можешь попробовать это
www.ibase.ru/devinfo/keepalive.htm
вообще перед заданием вопроса следует попробовать поискать на сайте. В разделе Документация (а он вообще один, где лежат все мыслимые статьи) также есть пара статей по организации реконнекта.
-
Alex_Vor
- Сообщения: 12
- Зарегистрирован: 15 фев 2005, 14:16
Сообщение
Alex_Vor » 10 ноя 2005, 13:23
Спасибо, буду искать. Но если серверу не трудно, то может и использовать постоянно второй вариант работы с постоянными реконнектами...
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 10 ноя 2005, 15:09
главное чтобы у тебя долго активных транзакций в этом коннекте не было.