程序猿刚子的博客

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

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  96 随笔 :: 14 文章 :: 110 评论 :: 27万 阅读
 

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

 

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

总结如下:

 

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

 

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

 

根据问题的描述可知:

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

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

 

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

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

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

conn.Close();

conn.Dispose();

posted on   程序猿刚子  阅读(879)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示