Главная страница
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.025 c
1-36119
cher_gvf
2002-12-03 10:20
2002.12.12
String to array of char


3-36053
Kalaggan
2002-11-25 19:23
2002.12.12
разработка UDF


3-36010
ao1973
2002-11-24 08:53
2002.12.12
Опять я с этим ADO


14-36354
andy_ar
2002-11-20 11:49
2002.12.12
Поздравьте меня!


3-35986
Icehand
2002-11-19 12:58
2002.12.12
Как вернуть датасет из хранимой процедуры Oracle?