Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.04.08;
Скачать: [xml.tar.bz2];

Вниз

Упраление соединениями на 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.041 c
1-1171458551
Влад
2007-02-14 16:09
2007.04.08
Математическое округление чисел и другое


6-1161367061
Русло
2006-10-20 21:57
2007.04.08
Как из своего приложения запустить подключение к GPRS


11-1154152692
Stals
2006-07-29 09:58
2007.04.08
Звуковое сопровождение


15-1173816877
ArtemESC
2007-03-13 23:14
2007.04.08
Операционная система нового поколения...


2-1174054611
Tru
2007-03-16 17:16
2007.04.08
Кнопки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский