powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / В каких случаях бывает такая ситуация?
25 сообщений из 30, страница 1 из 2
В каких случаях бывает такая ситуация?
    #40064678
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть приложение на с++, коннектится к SQL Server, отправляет запрос, через несколько часов наблюдаю картину:

Приложение юзер снял, в таскменеджере его нет, но на сервере продолжает торчать его запрос, причем пишет, что отправило его приложение с этого хоста, какой-то зомби работает.

Но там примечательно следующее:

WAIT_INFO
(61306673ms)PWAIT_RESOURCE_SEMAPHORE_FT_PARA

Как такое может быть и что бы это значило?
...
Рейтинг: 0 / 0
В каких случаях бывает такая ситуация?
    #40064679
Ролг Хупин
Есть приложение на с++, коннектится к SQL Server, отправляет запрос, через несколько часов наблюдаю картину:

Приложение юзер снял, в таскменеджере его нет, но на сервере продолжает торчать его запрос, причем пишет, что отправило его приложение с этого хоста, какой-то зомби работает.

Но там примечательно следующее:

WAIT_INFO
(61306673ms)PWAIT_RESOURCE_SEMAPHORE_FT_PARA

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

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

возможен откат транзакции, например.


там вряд ли откат, показывает работающую процедуру которая набирает данные во временные таблицы и потом из них должна сделать селект.
...
Рейтинг: 0 / 0
В каких случаях бывает такая ситуация?
    #40064700
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ведущий профессионал
Ролг Хупин
Есть приложение на с++, коннектится к SQL Server, отправляет запрос, через несколько часов наблюдаю картину:

Приложение юзер снял, в таскменеджере его нет, но на сервере продолжает торчать его запрос, причем пишет, что отправило его приложение с этого хоста, какой-то зомби работает.

Но там примечательно следующее:

WAIT_INFO
(61306673ms)PWAIT_RESOURCE_SEMAPHORE_FT_PARA

Как такое может быть и что бы это значило?
Если юзер снял приложение , это не значит, что коннект на сервере автоматически закрылся. Приложение должно уметь корректно закрывать соединения и освобождать ресурсы .



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


и я уже не помнил, спасибо! та же фигня была
...
Рейтинг: 0 / 0
В каких случаях бывает такая ситуация?
    #40064708
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник


в тот раз так и не понял причину. Типа само рассосалось или юзера нейтрализовали, х.е.з.
С сетью вряд ли проблемы, ведь коннект торчит уже на сервере и ждет
(61306673ms)PWAIT_RESOURCE_SEMAPHORE_FT_PARA

Но чего и почему - вопрос...
...
Рейтинг: 0 / 0
В каких случаях бывает такая ситуация?
    #40064709
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

авторПриложение юзер снял
Понятно, что в этом случае приложение не уведомит сервер о завершении своей работы. Тем не менее, если правильно помню, при снятии задачи приложению система отправляет сообщение о событии, которое можно перехватить и обработать.
...
Рейтинг: 0 / 0
В каких случаях бывает такая ситуация?
    #40064712
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

1. Сессия в состоянии ожидания ничего выполнять не может.

2. Для проблемной сессии ыполнить
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
declare @s int = ...;

select
 s.host_name, s.host_process_id, c.client_net_address
from
 sys.dm_exec_sessions s join
 sys.dm_exec_connections c on c.session_id = s.session_id
where
 s.session_id = @s;

И посмотреть на удаленной машине есть ли там такой процесс и чего он делает.
Пользователи под термином "снял приложение" могут подразумевать что угодно.
...
Рейтинг: 0 / 0
В каких случаях бывает такая ситуация?
    #40064714
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю, что сеанс закроется при попытке коммуникаций сервера с приложением, когда обнаружится, что IP соединение закрыто. До тех пор запрос будет выполняться.
...
Рейтинг: 0 / 0
В каких случаях бывает такая ситуация?
    #40064724
Ролг Хупин
Ведущий профессионал
пропущено...
Если юзер снял приложение , это не значит, что коннект на сервере автоматически закрылся. Приложение должно уметь корректно закрывать соединения и освобождать ресурсы .



т.е. если процессу делается килл, то он должен уметь корректно закрывать коннекты?
В винде не делается сразу килл. Сначала посылается сообщение WM_QUIT в очередь приложения. И только тогда, если оно не отвечает, делается килл. Я ещё в детстве делал так приложения, которые невозможно убить. Они просто перехватывали WM_QUIT, создавали копию процесса, а сами завершались.

В любом случае, нормальный разработчик постарается принять меры к освобождению ресуров при сбоях.

Единственное, что не может предотвратить разработчик, это если вырвать кабель локальной сети из сетевой карты. В этом случае на сервере останется зависшее соединение. Тут уже админ ДБ должен их отлавливать и закрывать периодически.
...
Рейтинг: 0 / 0
В каких случаях бывает такая ситуация?
    #40064760
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ведущий профессионал

Единственное, что не может предотвратить разработчик, это если вырвать кабель локальной сети из сетевой карты. В этом случае на сервере останется зависшее соединение.


Ну вот, сказки то зачем сказывать?
Сначала вырви - потом сказывай.

Любое TCP соединение разрывается, если разорвать соединение на физическом уровне сети.
Таймаут там... ну десять-двадцать секунд.

Более того, все "более-менее правильно написанные" приложения рвут все свои сетевые подключения вместе с уничтожением процесса.
...
Рейтинг: 0 / 0
В каких случаях бывает такая ситуация?
    #40064775
aleks222
Ведущий профессионал

Единственное, что не может предотвратить разработчик, это если вырвать кабель локальной сети из сетевой карты. В этом случае на сервере останется зависшее соединение.


Ну вот, сказки то зачем сказывать?
Сначала вырви - потом сказывай.

Любое TCP соединение разрывается, если разорвать соединение на физическом уровне сети.
Таймаут там... ну десять-двадцать секунд.

Более того, все "более-менее правильно написанные" приложения рвут все свои сетевые подключения вместе с уничтожением процесса.
Причём тут таймаут? Если по соединению не летает никаких пакетов, то его физический разрыв не может быть обнаружен. Более того, программное закрытие TCP соединения - это отправка пакета и получение на него ответа. То есть, физически разорванное соединение не может быть корректно закрыто.

И, да, вырывал кабель ещё 30 лет назад. Сначала удивлялся, потом разобрался. Чтобы обнаружить разрыв, надо постоянно гонять по соединению пакеты. По умолчанию стандартом TCP это не предусмотрено.
...
Рейтинг: 0 / 0
В каких случаях бывает такая ситуация?
    #40064784
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ведущий профессионал
Ролг Хупин
пропущено...



т.е. если процессу делается килл, то он должен уметь корректно закрывать коннекты?
В винде не делается сразу килл. Сначала посылается сообщение WM_QUIT в очередь приложения. И только тогда, если оно не отвечает, делается килл. Я ещё в детстве делал так приложения, которые невозможно убить. Они просто перехватывали WM_QUIT, создавали копию процесса, а сами завершались.

В любом случае, нормальный разработчик постарается принять меры к освобождению ресуров при сбоях.

Единственное, что не может предотвратить разработчик, это если вырвать кабель локальной сети из сетевой карты. В этом случае на сервере останется зависшее соединение. Тут уже админ ДБ должен их отлавливать и закрывать периодически.


Бред какой-то.....
...
Рейтинг: 0 / 0
В каких случаях бывает такая ситуация?
    #40064788
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm
Ролг Хупин,

1. Сессия в состоянии ожидания ничего выполнять не может.

2. Для проблемной сессии ыполнить
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
declare @s int = ...;

select
 s.host_name, s.host_process_id, c.client_net_address
from
 sys.dm_exec_sessions s join
 sys.dm_exec_connections c on c.session_id = s.session_id
where
 s.session_id = @s;

И посмотреть на удаленной машине есть ли там такой процесс и чего он делает.
Пользователи под термином "снял приложение" могут подразумевать что угодно.


Вот результат
host111 15092 xx.x.x.xxx


приложение было снято я проверил - попросил запустить таск менеджер и прислать мне картинку, нет такого приложения, но его запрос на сервере от этого хоста и от имени приложения, его запустившего висел и ждал чего-то.
При этом он залип на выполнении процедуры, на добавлении данных во ввременную таблицу внутри и размер темпдб рос постепенно.
Понимаю, что чудеса, но все видел сам, до чего мог дотянуться
...
Рейтинг: 0 / 0
В каких случаях бывает такая ситуация?
    #40064800
Ролг Хупин
Ведущий профессионал
пропущено...
В винде не делается сразу килл. Сначала посылается сообщение WM_QUIT в очередь приложения. И только тогда, если оно не отвечает, делается килл. Я ещё в детстве делал так приложения, которые невозможно убить. Они просто перехватывали WM_QUIT, создавали копию процесса, а сами завершались.

В любом случае, нормальный разработчик постарается принять меры к освобождению ресуров при сбоях.

Единственное, что не может предотвратить разработчик, это если вырвать кабель локальной сети из сетевой карты. В этом случае на сервере останется зависшее соединение. Тут уже админ ДБ должен их отлавливать и закрывать периодически.


Бред какой-то.....
На Вашем сервере это уже 4 года, как реальность. Убийство юзером приложения не прекращает выполнения запросов на сервере. Я за такое юзеров по рукам бил. Запускают запрос. Им кажется, что долго. Перезапускают приложение. Ещё раз запускают запрос. Потом от остальных сотен юзеров пошли жалобы, что вся система упала. Смотришь, а там 25 одинаковых запросов от этого юзера крутятся и все ресурсы сервера захватили.

Есть специальные технические меры, чтобы такого не было. Но, это уже другая история.
...
Рейтинг: 0 / 0
В каких случаях бывает такая ситуация?
    #40064805
Ролг Хупин
invm
Ролг Хупин,

1. Сессия в состоянии ожидания ничего выполнять не может.

2. Для проблемной сессии ыполнить
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
declare @s int = ...;

select
 s.host_name, s.host_process_id, c.client_net_address
from
 sys.dm_exec_sessions s join
 sys.dm_exec_connections c on c.session_id = s.session_id
where
 s.session_id = @s;

И посмотреть на удаленной машине есть ли там такой процесс и чего он делает.
Пользователи под термином "снял приложение" могут подразумевать что угодно.


Вот результат
host111 15092 xx.x.x.xxx


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

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


Бред какой-то.....
На Вашем сервере это уже 4 года, как реальность. Убийство юзером приложения не прекращает выполнения запросов на сервере. Я за такое юзеров по рукам бил. Запускают запрос. Им кажется, что долго. Перезапускают приложение. Ещё раз запускают запрос. Потом от остальных сотен юзеров пошли жалобы, что вся система упала. Смотришь, а там 25 одинаковых запросов от этого юзера крутятся и все ресурсы сервера захватили.

Есть специальные технические меры, чтобы такого не было. Но, это уже другая история.


откдуа вы знаете, что "на моем сервере" уже 4 года как реальность?
Вы вроде бы и пишете ответы, а, ведь, буду краток: одно словоблудие
...
Рейтинг: 0 / 0
В каких случаях бывает такая ситуация?
    #40064812
Ролг Хупин
Ведущий профессионал
пропущено...
На Вашем сервере это уже 4 года, как реальность. Убийство юзером приложения не прекращает выполнения запросов на сервере. Я за такое юзеров по рукам бил. Запускают запрос. Им кажется, что долго. Перезапускают приложение. Ещё раз запускают запрос. Потом от остальных сотен юзеров пошли жалобы, что вся система упала. Смотришь, а там 25 одинаковых запросов от этого юзера крутятся и все ресурсы сервера захватили.

Есть специальные технические меры, чтобы такого не было. Но, это уже другая история.


откдуа вы знаете, что "на моем сервере" уже 4 года как реальность?
Вы вроде бы и пишете ответы, а, ведь, буду краток: одно словоблудие
В четвёртом сообщении этого топика есть ссылка на Ваш топик 4 года назад с аналогичной проблемой.
...
Рейтинг: 0 / 0
В каких случаях бывает такая ситуация?
    #40064819
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ведущий профессионал
Ролг Хупин
пропущено...


откдуа вы знаете, что "на моем сервере" уже 4 года как реальность?
Вы вроде бы и пишете ответы, а, ведь, буду краток: одно словоблудие
В четвёртом сообщении этого топика есть ссылка на Ваш топик 4 года назад с аналогичной проблемой.


а вы уверены, что там был ТОТ ЖЕ МОЙ Сервер, а? или может просто ситуация похожая?
Не чудите
Кроме того, по той ссылке дискуссия закончилась ничем, ответа нет.
...
Рейтинг: 0 / 0
В каких случаях бывает такая ситуация?
    #40064822
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ведущий профессионал
Ролг Хупин
пропущено...


Вот результат
host111 15092 xx.x.x.xxx


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

И проблема в кривом приложении, которое не позволяет корректно прервать зависший запрос и его приходится снимать, убивая процесс.


Это что за фигня?
И проблема в кривом приложении, которое не позволяет корректно прервать зависший запрос и его приходится снимать, убивая процесс.

научите же меня!
...
Рейтинг: 0 / 0
В каких случаях бывает такая ситуация?
    #40064856
Ролг Хупин
Ведущий профессионал
пропущено...
Проблема в запросе. Снятие юзером приложения - следствие, что запрос завис, а не причина.

И проблема в кривом приложении, которое не позволяет корректно прервать зависший запрос и его приходится снимать, убивая процесс.


Это что за фигня?
И проблема в кривом приложении, которое не позволяет корректно прервать зависший запрос и его приходится снимать, убивая процесс.

научите же меня!
Отправлять запрос на сервер и ждать ответа надо в отдельном потоке. Не останавливая обработку сообщений от пользовательского интерфейса. И предусмотреть кнопку прервать запрос, если пользователь больше не хочет ждать результата запроса. Тогда пользователи не будут снимать приложение, а будут корректно закрывать.
...
Рейтинг: 0 / 0
В каких случаях бывает такая ситуация?
    #40064864
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ведущий профессионал
Ролг Хупин
пропущено...


Это что за фигня?
И проблема в кривом приложении, которое не позволяет корректно прервать зависший запрос и его приходится снимать, убивая процесс.

научите же меня!
Отправлять запрос на сервер и ждать ответа надо в отдельном потоке. Не останавливая обработку сообщений от пользовательского интерфейса. И предусмотреть кнопку прервать запрос, если пользователь больше не хочет ждать результата запроса. Тогда пользователи не будут снимать приложение, а будут корректно закрывать.


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


Ну вот, сказки то зачем сказывать?
Сначала вырви - потом сказывай.

Любое TCP соединение разрывается, если разорвать соединение на физическом уровне сети.
Таймаут там... ну десять-двадцать секунд.

Более того, все "более-менее правильно написанные" приложения рвут все свои сетевые подключения вместе с уничтожением процесса.
Причём тут таймаут? Если по соединению не летает никаких пакетов, то его физический разрыв не может быть обнаружен. Более того, программное закрытие TCP соединения - это отправка пакета и получение на него ответа. То есть, физически разорванное соединение не может быть корректно закрыто.

И, да, вырывал кабель ещё 30 лет назад. Сначала удивлялся, потом разобрался. Чтобы обнаружить разрыв, надо постоянно гонять по соединению пакеты. По умолчанию стандартом TCP это не предусмотрено.

Не надо фантазировать.
Надо учиться.
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / В каких случаях бывает такая ситуация?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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