Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.08;
Скачать: CL | DM;

Вниз

Упраление соединениями на MS SQL Server   Найти похожие ветки 

 
GrBob   (2007-01-18 11:39) [0]

Мастера, кто-нибудь когда-нибудь интересовался принципами, на которых основывается коннект на MSSQL-сервере. Как определяется его состояние, как происходит определение разрыва соединения, чтобы коннект удалить (например, если клиентский процесс просто вышибли)? Интересны любые ссылки по этому поводу.


 
ЮЮ ©   (2007-01-18 11:45) [1]


> чтобы коннект удалить (например, если клиентский процесс
> просто вышибли)?


Если переписываешь MS SQL серевер, то у тебя должны быть исходники :) Чем и что ты намерен удалять?


> как происходит определение разрыва соединения,

Со стороны клиента - при попытке выполнения запроса в рамках этого соединения. Лучше самого легкого.
Со стороны сервера - исходники у тебя :)


 
GrBob   (2007-01-18 11:56) [2]

Исходников у меня нет :) Меня просто заинтересовал только этот момент.
Удалить = убить, закрыть, освободить...
Интересно именно со стороны сервера.


 
ЮЮ ©   (2007-01-18 12:05) [3]

Interprise Manager c этим справляется, значит возможно.

в BOL:
Monitoring with SQL Server Enterprise Manager
как он это делает и что можно сделать


 
Ega23 ©   (2007-01-18 12:13) [4]


> Monitoring with SQL Server Enterprise Manager


Да, вот только делает он это по запросу. Т.е. один фиг нужен сервис, который пинг осуществляет.

Эх, вот если бы у ADOConnection было событие о разрыве соединения....


 
ЮЮ ©   (2007-01-18 12:23) [5]


> Т.е. один фиг нужен сервис, который пинг осуществляет.
>


Так один фиг нужен "убийца процессов", который будет делать то, что даже MS SQL серверу не очень-то, похоже, нужно.


 
GrBob   (2007-01-18 13:12) [6]

Каждый коннект обрабатывается в отдельном потоке, а не в процессе, поэтому непонятно, почему в EM написано "Kill Process".

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

Как действует "убийца" мне не так интересно. Enterprise Manager отправляет серверу запрос "KILL N", где N - SPID процесса, дальше дело техники найти его серверу и грохнуть, особенно если у него хранятся ссылки на все потоки.


 
Ega23 ©   (2007-01-18 13:15) [7]


> Как действует "убийца" мне не так интересно. Enterprise
> Manager отправляет серверу запрос "KILL N", где N - SPID
> процесса, дальше дело техники найти его серверу и грохнуть,
>  особенно если у него хранятся ссылки на все потоки.
>


Но что дальше-то? Вот я убил процесс на сервере (не важно как - через EM, скриптом или ещё как-то).
Что дальше должно произойти?


 
ЮЮ ©   (2007-01-18 13:21) [8]

Так ты сам хочешь чистить "мертвые" соединения или тебя просто интересует, почему на сервере их нет, в то время как твои клиенты мрут как мухи, не разравая соединение? :)


 
GrBob   (2007-01-18 13:36) [9]


> Что дальше должно произойти?

А что обычно происходит, когда соединение убито на сервере? Либо клиент долбится никуда плодя гору исключений, либо нормально отрабатывает эту ситуацию и переподключается или забивает на это дело. Реализация клиента меня интересует не так сильно.


> Так ты сам хочешь чистить "мертвые" соединения или тебя
> просто интересует, почему на сервере их нет, в то время
> как твои клиенты мрут как мухи, не разравая соединение?
> :)

Меня интересует, как сервер поддерживает соединение и следит за клиентами :)


 
Ega23 ©   (2007-01-18 14:32) [10]


> А что обычно происходит, когда соединение убито на сервере?
>  Либо клиент долбится никуда плодя гору исключений, либо
> нормально отрабатывает эту ситуацию и переподключается или
> забивает на это дело. Реализация клиента меня интересует
> не так сильно.


После полуторанедельного мозгового штурма как быть в такой ситуации, решили реконнект не делать. Сразу аварийный останов.



Страницы: 1 вся ветка

Текущий архив: 2007.04.08;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.03 c
15-1173699650
Knight
2007-03-12 14:40
2007.04.08
Книга Фаронова по базам данных стоит того?


8-1152652402
Raptoridzev
2006-07-12 01:13
2007.04.08
проиграть в микрофон


15-1173669834
Slider007
2007-03-12 06:23
2007.04.08
С днем рождения ! 10 марта


2-1174289320
Нуб
2007-03-19 10:28
2007.04.08
StringGrid


15-1173560855
Kerk
2007-03-11 00:07
2007.04.08
Кто по какой причине стал программистом?