Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Обработка таймаута клиента  [new]
nApoBo3
Member

Откуда:
Сообщений: 72
Добрый день.

Возможна ли средствами MS SQL обработка таймаута клиента или преждевременного прекращения выполнения команды по инициативе клиента?
25 мар 13, 18:43    [14093905]     Ответить | Цитировать Сообщить модератору
 Re: Обработка таймаута клиента  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37198
А сервер откуда узнает, что на клиенте что-то случилось?
25 мар 13, 18:47    [14093917]     Ответить | Цитировать Сообщить модератору
 Re: Обработка таймаута клиента  [new]
nApoBo3
Member

Откуда:
Сообщений: 72
У сервера падает выполнение процедуры.

Т.е.

proc 1
{
...
call proc 2
...
begin trans
...
call proc 3
...
commit trans
...
call proc 4
...
}

При возникновении таймаута в любом месте происходит обрыв выполнения процедуры, если таймаут возникает в транзакции ее результаты откатываются, но если они возникает за ее пределами остаются хвосты темповых данных.
Вопрос в том, знает ли сервер что у него процедура упала до завершения?
Сейчас таймаут обрабатывает клиент и чистит данные, но если клиент упадет совсем, таймаут будет обработать некому.
Для того, чтобы такой ситуации не было, можно настроить выполнение очистки по расписанию, но имхо это тоже не красиво.
25 мар 13, 18:53    [14093936]     Ответить | Цитировать Сообщить модератору
 Re: Обработка таймаута клиента  [new]
Glory
Member

Откуда:
Сообщений: 104751
nApoBo3
Вопрос в том, знает ли сервер что у него процедура упала до завершения?

У сервера ничего не упало.
Это клиент прервал выполнение запроса.
25 мар 13, 22:11    [14094407]     Ответить | Цитировать Сообщить модератору
 Re: Обработка таймаута клиента  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31816
nApoBo3
Вопрос в том, знает ли сервер что у него процедура упала до завершения?
Сервер знает, что коннект разорвался (он же откатывает незавершённые транзакции, возвращает коннект в пул и т.д.), но пользовательской обработки этого события не предусмотрено.
25 мар 13, 23:15    [14094586]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить