powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Смесь собственных ошибок и MS SQL глюков
3 сообщений из 3, страница 1 из 1
Смесь собственных ошибок и MS SQL глюков
    #32003190
Sergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уже писал про свои проблемы
Есть процедуры:
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? Или с блокировками можно порулить по-хитрее?
Заранее спасибо
...
Рейтинг: 0 / 0
Смесь собственных ошибок и MS SQL глюков
    #32003226
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поиграй параметром set query wait. Поставь большое значение, но не -1.
...
Рейтинг: 0 / 0
Смесь собственных ошибок и MS SQL глюков
    #32003227
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я хотел сказать, не 0! А вот -1 - это время 25* плановую цену выполнения запроса. С моей точки зрения, наиболее оптимальное.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Смесь собственных ошибок и MS SQL глюков
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]