сколько времени соединение с сервером sql должно быть бездействующим, прежде чем оно будет закрыто пулом соединений? - PullRequest
12 голосов
/ 16 июля 2009

У меня есть клиент-серверное приложение, которое использует .NET SqlClient Data Provider для подключения к серверу sql - довольно стандартная штука. По умолчанию, сколько времени соединения должны простаивать, прежде чем менеджер пула соединений закроет соединение с базой данных и удалит его из пула? Какой параметр, если какой-либо контролирует это?

В этом документе MSDN указано только

Диспетчер подключений удаляет подключение из пула после того, как он долгое время простаивал или если диспетчер обнаружил, что соединение с сервером было разорвано.

Ответы [ 2 ]

7 голосов
/ 02 января 2013

Несколько лет назад ответом была ситуация, но теперь она изменилась, так что вы можете обратиться к источнику и написать резюме:)


Старый ответ

Эта превосходная статья рассказывает нам то, что нам нужно знать, используя рефлексию, чтобы раскрыть внутреннюю работу пула соединений.

Насколько я понимаю, «закрытые» соединения периодически очищаются с полуслучайным интервалом. Процесс очистки выполняется где-то между каждыми 2 минутами и 3 минутами 50 с, но он должен быть запущен дважды, прежде чем 'закрытое' соединение будет должным образом закрыто. Поэтому после 7 минут 40 секунд «закрытия» базовое соединение SQL должно быть правильно закрыто, но оно может быть коротким, как 2 минуты. На момент написания первого пула соединений, созданного в процессе, интервал таймера всегда составлял 3 мин 10 с, поэтому обычно вы видите, что соединения sql закрываются где-то между 3 мин 10 с и 6 мин 20 с после вызова метода Close () для объекта ADO. .

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

0 голосов
/ 16 июля 2009

Пожалуйста, пройдите через это:

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring%28VS.80%29.aspx

часть

"В следующей таблице перечислены действительные имена для значений пула соединений в пределах ConnectionString. "

кажется, вас интересует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...