Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Смесь собственных ошибок и MS SQL глюков
|
|||
|---|---|---|---|
|
#18+
Уже писал про свои проблемы Есть процедуры: create proc proc1 ........... exec proc2 ........... go create proc proc2 .......... .......... begin tran ................ update mytable set ..... ................ commit tran go Приложения работают через ODBC, используя QUERY_TIMEOUT Используют обе процедуры. Как-то заметил, что если MyTable заблокирована для обновления одним приложением (А) на длительное время, а другое приложение (Б) в это время выполняет Proc2, то по прошествии ODBC TimeOut приложение получает сообщение об ошибке от ODBC 'TimeOut exceeded',процедура прерывается, и все прдолжает работать далее,пока не снимется блокировка с MyTable, это в принципе нормально, но если в это время приложение (Б) будет выполнять Proc1, то после ошибки TimeOut оно оставляет после себя открытую транзакцию и ни очем не подозревая продолжает работать далее, подвешивая все остальные приложени, использующие данные процедуры. Как быть, если переписать все приложения на предмет принудительной вставки "rollback tran" не представляется возможным? Пробовал поставить в процедуры "set LOCK_TIMEOUT", но в этом случае по прошествии времени LockTimeOut генерируется SQLError 1222 'Lock request time out period exceeded' c Severity 13 и ODBC клиентами данное сообщение за ошибку не считается. Пробовал применить RaisError, но ODBC приложения таких сообщений тоже не видят. Посоветуйте что-нибудь.Может я не совсем понимаю принцип RaiseError? Или с блокировками можно порулить по-хитрее? Заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2001, 16:05 |
|
||
|
Смесь собственных ошибок и MS SQL глюков
|
|||
|---|---|---|---|
|
#18+
Поиграй параметром set query wait. Поставь большое значение, но не -1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2001, 15:51 |
|
||
|
|

start [/forum/topic.php?fid=46&gotonew=1&tid=1827180]: |
0ms |
get settings: |
8ms |
get forum list: |
22ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
11ms |
get first new msg: |
6ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 404ms |

| 0 / 0 |
