2016-04-16 3 views
-2

Я читаю соединение пула от MSDN. я сталкиваюсь с этим предложением:Connection Disappeared in Connection Pool

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

Можете ли все объяснить исчезнувшее соединение? И почему связь исчезнет?

+1

Это говорит * Сервер, который исчез *, а не связь –

ответ

2

Это не та связь, которая исчезает. Объединенное соединение - это установленное сетевое соединение. Теперь, пока данные не будут отправлены по соединению, проблема с подключением к серверу (например, проблема сети) не может быть обнаружена.

Таким образом, может произойти следующее:

  • соединения открыты для SQL Server, и добавляются в пул
  • Ссылку сеть получает разбитой (таким образом, не сразу обнаруживается, например в качестве проблемы с маршрутизатором, вероятно, будет обнаружен отсоединенный кабель на клиенте)
  • Вскоре после того, как приложение нарисовало пул соединения из пула
  • Соединение возвращается, как если бы сервер был доступен, сделано для проверки этого (Что цитируемая информация о)
  • При первом использовании исключения будет выброшено