Название: Разрыв соединения с БД Отправлено: alexandr_ps от Август 10, 2009, 11:01 Добрый день.
Ситуация следующая - в связке работает СУБД PostgreSQL 8.3 и клиентское приложение на Qt 4.4.2, OC на обоих - OpenSUSE 10.3. Клиент запрашивает данные с сервера и все хорошо, пока соединение не обрывается тупым выдергиванием сетевого кабеля :), которое приводит к зависанию query->exec('запрос'). Скорее всего проблема возникает из-за настроек TCP/IP(стоят стандартные, ничего не менялось с момента установки систем), но туда залезать не очень хочется. Нет ли стандартного средства, как установить таймлимит на выполнение запроса к БД? Сейчас пришлось делать это все в 2 потоках - в одном выполняется запрос, в другом устанавливается таймер, который следит и в случае таймаута заново запускает поток запросов к БД. Хочется от своего велосипеда избавиться и перейти на велосипед от производителя :) Мне кажется должен быть предусмотрен какой-то механизм. Вообще кто как решает проблему с разрывом соединения с БД в своих приложениях? Заранее, спасибо! Название: Re: Разрыв соединения с БД Отправлено: uriel от Август 10, 2009, 12:00 Было уже совсем недавно. :)
http://www.prog.org.ru/topic_9421_0.html Название: Re: Разрыв соединения с БД Отправлено: ритт от Август 10, 2009, 12:17 один раз - случайность; два - уже тенденция; а после пятого - однозначно, постить саггесты троллям...
Название: Re: Разрыв соединения с БД Отправлено: alexandr_ps от Август 10, 2009, 12:27 Спасибо за ссылку, теперь я знаю, что я не одинок :)
Как оказалось мой путь решения проблемы единственный, так что ничего не поделаешь буду его использовать и дальше. Название: Re: Разрыв соединения с БД Отправлено: CroCIV от Август 10, 2009, 13:23 Нет ли стандартного средства, как установить таймлимит на выполнение запроса к БД? http://doc.crossplatform.ru/qt/4.5.0/qsqldatabase.html#setConnectOptions на сколько я отсюда вижу у PostgreSQL есть connect_timeout, почему бы его не попробовать уменьшить секунд до 3 - 5? Название: Re: Разрыв соединения с БД Отправлено: alexandr_ps от Август 11, 2009, 09:57 Сам смотрел на эту функцию, пробовал даже использовать, но ничего не меняется. Все то же зависание на QSqlQuery->exec().
Название: Re: Разрыв соединения с БД Отправлено: ритт от Август 19, 2009, 22:47 прикреплю сюда: http://qt.nokia.com/developer/task-tracker/index_html?method=entry&id=130779
|