Форум: "Базы";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];
ВнизНе удаляется 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.04 c