zoukankan      html  css  js  c++  java
  • sqlserver 处理连接池问题

    当网站链接数据库的用户较多时,如果上一个连接没有提交事务,有可能下一个连接会遇到因为上一个连接的事务没有提交从而导致后面的链接无法访问数据库。微软的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的最大限制时就会出现问题。

  • 相关阅读:
    Mybatis 接口绑定
    Spring AOP
    Spring 基础使用
    Java 类的生命周期
    Mybatis 测试延迟加载
    Mybatis
    eclipse 常用jar包总结
    Web 过滤器参数设置问题
    Web 单元测试
    zabbix监控-自定义监控与报警(二)
  • 原文地址:https://www.cnblogs.com/chasing4288/p/9327713.html
Copyright © 2011-2022 走看看