连接消失在连接池中

时间:2016-04-16 08:27:08

标签: c# connection-pooling ado

我正在从MSDN读取连接池。 我面对这句话:

  

如果已经消失的服务器存在连接,请执行此操作   即使连接较小,也可以从池中获取连接   未检测到切断的连接并将其标记为无效。这个   是这种情况,因为检查连接的开销   仍然有效将消除通过造成一个pooler的好处   另一次往返服务器。当这发生时,第一个   尝试使用连接将检测到连接已经   被切断,抛出异常。

每个人都可以解释消失的连接吗?为什么连接会消失?

1 个答案:

答案 0 :(得分:1)

这不是消失的联系。池化连接是已建立的网络连接。现在,直到通过连接发送数据,可能无法检测到与服务器的连接(例如网络问题)的问题。

因此,可能会发生以下情况:

  • 连接对SQL Server开放,并添加到池中
  • 网络链接中断(以某种方式未立即检测到,例如路由器问题;客户端上可能会立即检测到未插入的电缆)
  • 应用程序从池中绘制池连接后不久
  • 返回连接,就像服务器可以访问一样,因为没有进行检查来验证这一点(这是引用信息的内容)
  • 首次使用时会抛出异常