Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Управление исполнением запросов
|
|||
|---|---|---|---|
|
#18+
.Здравствуйте. Есть такая ситуация. Приложение получает доступ к БД при помощи ActiveX. Некоторый поток приложения присоединился к БД и начал выполнять запрос. Выполнение затянулось на минуты. Можно ли каким-либо образом искусственно прервать исполнение запроса (естественно, извне данного потока, поскольку он застрял на выполнении вызова Execute или первого Next)? Достаточно ли для этого прибить поток? Можно ли это сделать не прибивая поток? Можно ли каким-либо образом раздавать приоритеты на выполнение запросов сервером Cache? Есть ли в Cache средство для асинхронного выполнения запросов (запустить запрос, а потом получить результат в CALLBACK функции)? Если это невозможно для ActiveX, есть ли такой функционал у других методов доступа к БД Cache? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2009, 21:21 |
|
||
|
Управление исполнением запросов
|
|||
|---|---|---|---|
|
#18+
Hisbreht Victor.Здравствуйте. Есть такая ситуация. Приложение получает доступ к БД при помощи ActiveX. Некоторый поток приложения присоединился к БД и начал выполнять запрос. Выполнение затянулось на минуты. Можно ли каким-либо образом искусственно прервать исполнение запроса (естественно, извне данного потока, поскольку он застрял на выполнении вызова Execute или первого Next)? Достаточно ли для этого прибить поток? Можно ли это сделать не прибивая поток? Можно ли каким-либо образом раздавать приоритеты на выполнение запросов сервером Cache? Есть ли в Cache средство для асинхронного выполнения запросов (запустить запрос, а потом получить результат в CALLBACK функции)? Если это невозможно для ActiveX, есть ли такой функционал у других методов доступа к БД Cache? Поток можно убить через System Manager Portal. Этого будет достаточно чтоб выполнение остановилось, но вы убьете и само подключение к БД. (Подключайтесь без ActiveX, чтоб можно было управлять запросами по отдельности, через ODBC/JDBC) Раздавать приоритеты на конкретные запросы вряд ли получится, т.к. приоритеты устанавливаются на процесс. CallBack в Cache' есть. http://karataev.nm.ru/cache/setoutput.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2009, 08:32 |
|
||
|
Управление исполнением запросов
|
|||
|---|---|---|---|
|
#18+
=Dimon=Поток можно убить через System Manager Portal. Этого будет достаточно чтоб выполнение остановилось, но вы убьете и само подключение к БД.Черт с ним, с подключением. Оно у потока свое собственное. А можно ли это сделать не через портал. а программно? Кроме того, если рассмотреть проблему со стороны приложения. Имеем thread приложения, который сам присоединился к БД, создав собственный Factory. Если прибить этот thread, то как себя поведет связанный с ним запрос и как поведет себя Factory? =Dimon= (Подключайтесь без ActiveX, чтоб можно было управлять запросами по отдельности, через ODBC/JDBC)Прелесть ActiveX в том, что там не надо особенным образом регистрировать источник данных. Достаточно знать сетевое имя машины с БД и передать соответствующим образом сформированную строку объекту. Если бы найти простой способ зарегистрировать БД в ODBC из программы, чтобы это гарантированно ничего не сломало на предмет других БД (в том числе управляемых другими СУБД). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2009, 21:52 |
|
||
|
Управление исполнением запросов
|
|||
|---|---|---|---|
|
#18+
Hisbreht VictorКроме того, если рассмотреть проблему со стороны приложения. Имеем thread приложения, который сам присоединился к БД, создав собственный Factory. Если прибить этот thread, то как себя поведет связанный с ним запрос и как поведет себя Factory? Запрос выполняется в отдельном процессе Cache, поэтому завершение/прерывание потока пользовательского приложения никак не повлияет на него. Объект Factory будет существовать до тех пор, пока не завершено приложение (в большинстве случаев, хотя можно задать режим работы с OLE-объектами, при котором они будут привязаны к потокам - см. WinAPI-функцию CoInitializeEx). Hisbreht VictorЕсли бы найти простой способ зарегистрировать БД в ODBC из программы, чтобы это гарантированно ничего не сломало на предмет других БД (в том числе управляемых другими СУБД). В ODBC WinAPI есть функция SQLDriverConnect, которая позволяет (в частном случае) подключаться к базам без заведения ODBC-источника. Правда я не уверен, что ODBC-драйвер Cache поддерживает такой способ работы с базой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2009, 14:11 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=35904459&tid=1558536]: |
0ms |
get settings: |
8ms |
get forum list: |
26ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
89ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
| others: | 252ms |
| total: | 444ms |

| 0 / 0 |
