本人公司使用DB2的数据库,一直使用一下连接串:
;CurrentSchema=RPT;Connection Lifetime=60;Connection Reset=false;Max Pool Size=5;Min Pool Size=3;Pooling=True;Connect Timeout=150最近有用户保障说有Connection Pool has reached the maximum number of connections.的错误发生,不知道是怎样导致连接池超过最大限制的.有几个疑问想咨询大师:
1.这里所说的最大连接池数目是指的数据库上的连接池还是哪里的
2.Connect Timeout的设置值是否应该小于Connection Lifetime的值
3.如何能够模拟出这种超过最大连接数目的问题来(差不多可以确定每次连接后都会关闭连接的)
4.用户的设置不同,如一个设置Max Pool Size=1和一个设置Max Pool Size=100,会对用户有什么影响
5.还是想问下Connection Reset与Pooling参数的作用.请不吝赐教!

解决方案 »

  1.   

    1.数据库的连接池
    4.有影响,Size=1会导致用户频繁的链接数据库这个狠耗资源
      

  2.   

    1.这里所说的最大连接池数目是指的数据库上的连接池还是哪里的 
    --是数据库的连接池,准确的说应该是Data Provider提供的连接池
    2.Connect Timeout的设置值是否应该小于Connection Lifetime的值 
    --连接超时意思是在指定的时间内如果还未连接成功则超时,只是说建立连接的时间,建立逻辑连接,物理连接或者从连接池中获得连接。
    3.如何能够模拟出这种超过最大连接数目的问题来(差不多可以确定每次连接后都会关闭连接的) 
    --使用压力测试工具应该可以重现这个问题,问题可能在某些模块中,你可以先咨询你的用户他常用哪些功能,可以从这些功能入手检查。
    4.用户的设置不同,如一个设置Max Pool Size=1和一个设置Max Pool Size=100,会对用户有什么影响 
    --池的最大数量,如果说对用户的影响可能是并发数或者效率上会有影响,这个值的设置要和当前服务器的性能一起决定。
    5.还是想问下Connection Reset与Pooling参数的作用. 
    --Connection Reset是指当连接从连接池中移除的时候是否重置数据库连接。Pooling简单的说就是是否使用连接池机制。
      

  3.   

    推荐一篇文章,写的很好:http://tech.it168.com/db/s/2006-10-18/200610181013413.shtml
      

  4.   

    谢谢cuike519
    大致了解了一些,还是有些云里雾里,因为现在时间比较急,没什么时间去测试,问题也不是很严重,只是偶尔暴出那么一个,1天2,3次吧
    最后想问下:A用户与B用户用同一个连接串连接到对应数据库的是2个连接池的不同逻辑连接,还是1个连接池的1个逻辑连接?