Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.47 MB
Время: 0.048 c
15-1159506275
vidiv
2006-09-29 09:04
2006.10.22
Визуальная среда для разработки структуры базы данных...


15-1159773469
laok
2006-10-02 11:17
2006.10.22
JVCL для Delphi 10


15-1159254759
Nous Mellon_
2006-09-26 11:12
2006.10.22
Поиск фото


3-1156542184
spogi
2006-08-26 01:43
2006.10.22
до 1 млн. в записях...


2-1160097054
lobach
2006-10-06 05:10
2006.10.22
Ресурсы...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский