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

Вниз

Не удаляется ADO соединение со стороны сервера MSSQL   Найти похожие ветки 

 
Michael Makushev   (2006-08-23 17:14) [0]

постановка задачи такая:
есть поток в экземпляре которого есть ADO коннекшн и ADO запрос. Запускаем поток и в цикле (в execute) периодически "совершаем" запрос - например "SELECT @@SPID SID". Что будет выдаваться? правильно! один и тот же SID. Теперь если закрыть соединение, с ужасом обнаружим, что сервер его держит. А теперь номер на бис - если соединение уничтожить не уничтожая при этом поток - то оно все равно держиться сервером!!!
Кто нить сталкивался с подобными вещами? Как это можно обойти не уничтожая поток?


 
sniknik ©   (2006-08-23 18:12) [1]

> Теперь если закрыть соединение, с ужасом обнаружим, что сервер его держит.
по каким признакам этот "ужас" обнаруживается?...

сделал проверку, открываю коннект делаю запрос (SELECT @@SPID SID)
получаю 51 (ну и в цикле естественно один и тот же)
делаю закрытие коннекта, тут же открытие (не уничтожая ничего, ни потока ни т.д.)
повторяю запрос SID = 52
опять закрываю, открываю, выполняю SID = 51
и т.д. 52, 51, 52, 51
(если конечно еще один не открыть, тогда в очередь еще 53 вмешивается)

вывод? не держит он его, просто при выдаче SPID - а коннекту, сразу формируется новое значение для следующей выдачи, и там уж закрылось предыдущее нет оно и выдается.


 
Michael Makushev   (2006-08-24 11:29) [2]

"ужас" обнаруживается по двум признакам по выборке записей из master-a по sysprocess. или по "Exec sp_who", на момент закрытия и разрушения там остаются процессы связанные с подключением


 
sniknik ©   (2006-08-24 11:34) [3]

а смотриш естественно сразу после закрытия коннекта? в расчете на моментальную реакцию... но винда не реалтайм система. ;)


 
Ega23 ©   (2006-08-24 11:35) [4]


> но винда не реалтайм система. ;)
>


понятие real-time вообще бессмысленно для дискретных систем...  :о)


 
sniknik ©   (2006-08-24 11:40) [5]

Ega23 ©   (24.08.06 11:35) [4]
я в смысле - если основа не гарантирует моментальной реакции то чего ждать от базирующихся на ней систем? любых.


 
Nikolay M. ©   (2006-08-25 10:40) [6]


> А теперь номер на бис - если соединение уничтожить не уничтожая
> при этом поток - то оно все равно держиться сервером!!!


Более того, если выдернуть сетевой шнур, в sysprocesses данный SPID может еще какое-то время висеть. А самое веселье начинается, когда другой юзер подключится под тем же SPID-ом. Посмотри ссылк и обрати внимание на решение Павла.

http://www.sql.ru/forum/actualthread.aspx?tid=70061&pg=-1


> Как это можно обойти не уничтожая поток?


Что "ЭТО" и зачем?


 
AlexWlad ©   (2006-08-25 18:36) [7]


> sniknik ©   (24.08.06 11:34) [3]


Не винда, а SQL-сервер.


> Michael Makushev   (23.08.06 17:14)


А что, сильно мешает такое поведение? Обоснуй.


 
sniknik ©   (2006-08-25 20:27) [8]

AlexWlad ©   (25.08.06 18:36) [7]
>> sniknik ©   (24.08.06 11:34) [3]
> Не винда, а SQL-сервер.
читать умеем? читаем все! а не просим брата первоклашку прочитать только самые короткие фразы...

и потом, а что в [3] не так? по твоему значит винда реалтайм а mssql нет? (ну раз фраза "...винда не реалтайм..." вызвала возражение "Не винда, а SQL-сервер") ???


 
Anatoly Podgoretsky ©   (2006-08-25 22:13) [9]

Ega23 ©   (24.08.06 11:35) [4]
Полностью согласен с утверждением.



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

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

Наверх




Память: 0.49 MB
Время: 0.066 c
4-1149856535
TRyaSS
2006-06-09 16:35
2006.10.22
Как открыть существующий файл, чтобы дописать с


4-1149356336
oleg_SYS
2006-06-03 21:38
2006.10.22
Нажатие кнопки в чужом приложении


2-1159907714
RASkov
2006-10-04 00:35
2006.10.22
Незнаю как назвать. (Заполнение свойства при создании объекта)


8-1142958394
sco
2006-03-21 19:26
2006.10.22
Рисование меню.


3-1156510745
PEAKTOP
2006-08-25 16:59
2006.10.22
EXECUTE BLOCK