Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.12;
Скачать: CL | DM;

Вниз

Oracle. Компоненты DOA. Где TimeOut?   Найти похожие ветки 

 
Hiqwer   (2002-11-20 19:43) [0]

Есть ли возможность в указанных компонентах прервать выполнение длительного запроса по истечению некоторого TimeOut? Все мои попытки приводят к сбою и снятию приложения.


 
Sergey13 ©   (2002-11-21 09:35) [1]

http://www.farpost.com/personal/dmitryb/RUS/default.htm
Там есть Oracle Cancelable Utils Add-on для DOA (Direct Oracle Access) которая Содержит набор функций позволяющих открывать запросы с возможностью их прерывания во время выполнения.
Как работает не знаю, не юзал.


 
hiqwer   (2002-11-21 20:04) [2]

Спасибо Sergey13 за ссылку. Попробую разобраться.

Есть мнение, что TimeOut-ы можно установить непосредственно в OraClient или Net8.
Нет ли информации в таком разрезе?


 
Sergey13 ©   (2002-11-22 09:21) [3]

Насколько я знаю такого в Оракле нет, чтобы установить таймаут на запросы. Откуда оракл знает - может ты специально такой здоровый запрос заколбасил. Тестировать надо на тестовом сервере. Можно поставить тайм аут на активность сессии через профили типа нет активности 15 минут - нафиг эту сессию. Но это, ИМХО, не то что ты хочешь.


 
Hiqwer   (2002-11-22 17:59) [4]

Убивать сессии - это немного не то, хотя тоже вариант.

Я вообще продпологал, что таймауты должен отслеживать не Oracle сервер, а то через чего подключались.

Конкретно: у ODBC и ADO connection присутствуют параметры - таймаут на время соединения, и на время выполнения запроса, что собственно можно посмотреть в обычном TADOConnection.

DOA построены на OCI, и почему-то аналогичных параметров не имеют. Хотя реально (на практике) тайаут на время попытки подключения имеется. А выполнение запроса можно прервать в любой момет (TOracleSession.BreakExecute), если запрос делается в отдельном потоке (thread). Это, кстати, используется в Oracle Cancelable Utils Add-on (твоя ссылка, работает вроде нормально). Мне приходиться далать запросы в отдельных потоках и прерывать по таймеру (не очень удобно).

От этого и появилось жучее желание обозначить таймауты как-то попроще. Они просто обязаны быть где-то либо в клиенской части Oracle, либо в Net8.





Страницы: 1 вся ветка

Текущий архив: 2002.12.12;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
3-35974
Bakch
2002-11-22 15:19
2002.12.12
Работа с ADOTable в цикле


1-36226
maSESter
2002-11-30 23:11
2002.12.12
Перекодировка DOS/WINDOWS


3-36040
Calm
2002-11-25 14:46
2002.12.12
MS SQL: Как вернуть несколько строк с помощью Raiserror()


14-36370
Basilio
2002-11-21 12:15
2002.12.12
Блин, где логин?


14-36342
kiko
2002-11-20 18:26
2002.12.12
Внешний вид программы