powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как отловить таймаут клиента в процедуре на сервере
10 сообщений из 35, страница 2 из 2
Как отловить таймаут клиента в процедуре на сервере
    #39765034
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KRS544,

Вы лихо выносите оценки собеседнику даже не понимая, о чем идет речь. Контроль таймаутов возможен только со стороны инициатора отключения.
...
Рейтинг: 0 / 0
Как отловить таймаут клиента в процедуре на сервере
    #39765056
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invmKRS544,

Если вызов, то проще всего выполнением логирующей процедуры через self linked server с remote proc transaction promotion = false
Нафига эти сложности?

Судя по всему, тредстартеру на так уж важно, чтобы процедура отработала "сей секунд". "+-Полчаса" ничего не решают.

В этом варианте, правильнее записывать параметры вызова и фсе.
После чего асинхронно выполнять процедуру Агентом.
...
Рейтинг: 0 / 0
Как отловить таймаут клиента в процедуре на сервере
    #39765063
KRS544
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов, уже выяснили что это не так, хотя бы используя Extended Event.
Никакие оценки никому не выносил, а разговоры типа - зачем вам это нужно делать, делайте это на клиенте, или, цитирую "Ничего не надо отлавливать на самом деле." считаю демагогией. Вы ведь не в курсе, что клиента делает сторонний вендор, каждая доработка стоит денег, не забываем также про подготовку ФТ, ТЗ, закладку бюджета и всей прочей бюрократии.
И соотнося все это с решением, которое предложил aleks222, как думаете, что проще сделать?
...
Рейтинг: 0 / 0
Как отловить таймаут клиента в процедуре на сервере
    #39765065
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KRS544,

проще, в начале и в конце писать состояние, всё что с состоянием != конечному было с ошибкой
...
Рейтинг: 0 / 0
Как отловить таймаут клиента в процедуре на сервере
    #39765067
KRS544
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK, так в итоге и решили сделать
...
Рейтинг: 0 / 0
Как отловить таймаут клиента в процедуре на сервере
    #39765068
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222Нафига эти сложности?Это очевидно - что бы залогировать вызов, даже в случае отката транзакции.
...
Рейтинг: 0 / 0
Как отловить таймаут клиента в процедуре на сервере
    #39765070
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KRS544,

Можно тудаже писать spid и параллельно логировать таймауты, потом получать причину
...
Рейтинг: 0 / 0
Как отловить таймаут клиента в процедуре на сервере
    #39765145
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKKRS544,

проще, в начале и в конце писать состояние, всё что с состоянием != конечному было с ошибкойЕсли нет контроля над клиенским приложением, то никто не остановит их обернуть вызов процедуры в транзакцию.
...
Рейтинг: 0 / 0
Как отловить таймаут клиента в процедуре на сервере
    #39765146
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKinvmпропущено...
Нет.
Будет ли откат зависит от значения xact_abort.
да, правильно, Грубо говоря отправляется "Stop" как в ssms. Возникает событие Attention и при обработке уже всё зависит от
параметров xact_abort.
Можно ловить через EE Attention https://www.red-gate.com/simple-talk/blogs/identifying-client-timeouts/ Это хороший способ, но есть одно но, некоторые операции даже при успешном выполнении почему то вызывают Attention. Например BULK INSERT на определенных версиях .NET. Впринципе их легко отфильтровать учитывая что реальные таймауты обычно будут по длительности около 30 секунд.
Еще вариант - обычный trace с фильтром "error <> 0"
...
Рейтинг: 0 / 0
Как отловить таймаут клиента в процедуре на сервере
    #39765378
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таймаут возникает в высокоуровневом протоколе на стороне инициатора соединения, на транспортном уровне информация такого рода не передаётся. Можно только гадать на стороне слушателя, но никогда не скажешь наверняка - 30 секунд это что, например? Уборщица провода выдернула, таймаут или электропитание выключено?
...
Рейтинг: 0 / 0
10 сообщений из 35, страница 2 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как отловить таймаут клиента в процедуре на сервере
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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