|
Смесь собственных ошибок и 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&fpage=3586&tid=1827180]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 263ms |
total: | 410ms |
0 / 0 |