程序猿刚子的博客

大龄程序猿,分享互联网开发相关知识!前端、后端,架构等内容,欢迎关注公众号 chengxuyuangangzi

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
 

问题:超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小

 

在用数据库连接时,运行就出现如上错误!于是查看了些关于连接池的相关资料

总结如下:

 

Ado.net中默认的创建了连接池,且这个池的最大连接数为100 最小为0,默认超时时间为15秒。当第一次新建立一个连接时创建一个连接池并且将创建的链接加入池中,当以不同的链接字符串创建连接时会创建一个新的链接池!它将连接字符串相同的放入一个池中。

 

当程序的链接执行Open时,首先查看池中有没有未活动的链接,如果有就取出赋值,如果没有则看池是否达到了最大连接数,如果没有达到则创建一个新的链接加入池中,如果已经达到连接池的最大连接数则排队等候,如果15s内还没有空闲连接将发出以上错误。

 

根据问题的描述可知:

1.       连接池中的链接数达到了池的最大容量数

2.       超过15s还没有可用的链接

 

问题的解决办法及注意事项:

1.       能用同一连接的就不要重复建立连接

2.       在连接使用后的最早时刻释放连接

conn.Close();

conn.Dispose();

posted on 2009-07-28 16:08  程序猿刚子  阅读(890)  评论(0)    收藏  举报