![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Timeout BDE [MSSQL]
neXt © (2003-03-12 16:57:00)бд: MSSQL; клиент на BDE
Выполняется запрос, TQuery, в нём вызывается дерево процедур. В них открываются и закрываются транзакции.
В случае если запрос обрывается по таймауту (BDE, а не серверный) запрос обрывается на полуслове и генерится соответствующий Exception. Коннектион не обрывается и в нём остаются незакрытые транзакции. Пользователь повторяет попытку (10 раз) и сервер падает из-за блокировок в повисших транзакциях.
Кто-нибудь сталкивался с такой проблемой?
ЗЫ: Рецепт - увеличь таймаут я знаю.
neXt (2003-03-12 17:16:00) [1]ЗЫ: разумеется Query Analyser не причём - вопрос по работе с BDE
neXt (2003-03-12 17:15:00) [2]Повторяю:
Я знаю в чём ошибка. Это ошибка генерируемая BDE ( BDE code за номером 13059) - вылет по таймауту.
Я знаю какой запрос шлётся на сервер. Там процедуры работают! в том числе используют транзакции.
Проблема в том что при вылете BDE не закрывает транзакции.
Delirium (2003-03-12 17:04:00) [3]Стандартные рекомендации:
1) Запусти 10 раз из Query Analyser, если ошибок нет - поблема в проге (или в BDE)
2) Смотри что предаётся MSSQL в Profiler-е, всё-ли правильно
3) Смотри заблокированные объекты в Enterprise Manager-е и сопоставь их с о своими транзакциями