首页 > 数据库技术 > 详细

sqlserver 处理连接池问题

时间:2018-07-18 10:39:24      阅读:238      评论:0      收藏:0      [点我收藏+]

当网站链接数据库的用户较多时,如果上一个连接没有提交事务,有可能下一个连接会遇到因为上一个连接的事务没有提交从而导致后面的链接无法访问数据库。微软的SQLSERVER客户端编程接口:ADO和ADO.NET 都支持连接池这种机制。报错信息可能为“所有连接池均在使用,并且达到最大池大小”。

解决办法:

1、如果是ODBC的话,则可以在ODBC 中手动更改。选择“Pool Connetions to this drive”(使用池连接该驱动程序),把下面的时间改的大一点。

2、如果是SqlConnection的共享连接,则为ConnectionString属性Connection Lifetime数值名称指定一个值,该值默认情况下是0,表示连接永远不会从池中被自动移走。如果指定一个不同的值,那么一旦连接被返回到池中,该值将和连接的创建时间及当前时间进行比较。如果生存期超过了Connection Lifetime的值,那么连接将从池中被移走。在连接字符串的后面加上以下代码:Enlist=true;Pooling=true;Max Pool Size=300;Min Pool Size=0;Connection Lifetime=300;user id=sa;packet size=1000 packet size参数取512到32767中的任一整数值。

3、DataReader是独占连接的,当链接人数超过DataReader的最大限制时就会出现问题。

 

sqlserver 处理连接池问题

原文:https://www.cnblogs.com/chasing4288/p/9327713.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!