Текущий архив: 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