db2连接池故障排除记

[size=medium]用java写了个web项目,用了struts和spring。项目中还用了个连接池,数据库是用的db2.一开始时数据源在spring配置文件中是这样配置的:[/size]
[color=red]<bean id="myDataSource1"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="url">
<value>jdbc:db2://localhost:50000/test</value>
</property>
<property name="driverClassName">
<value>com.ibm.db2.jcc.DB2Driver</value>
</property>
<property name="username">
<value>test</value>
</property>
<property name="password">
<value>test</value>
</property>
</bean>[/color]

[size=medium]一开始用到也没有问题,随着用户并发数增加当超过8个时,无法通过配置的数据源获得db2数据库连接放入池中,导致连接池中连接耗尽,无法获得连接,界面无法登录。于是在网上查了下资料,有很多资料显示db2有数据库连接数限制,其中有这样几个参数:numdb、maxapps、maxagents,这几个参数的详细含义大家可以查查,网上已经有很多介绍我就不多讲了。

用在db2命令行下界面下敲入:db2 get dbm cfg就可以看以上几个参数的值了。其中numdb的值刚好为8,我心里一阵窃喜,我那边刚好是并发用户超过8个就挂了,难道就是这参数在搞怪。而且它的中文显示这个参数的描述是:并发活动数据库的最大数目。于是去咨询公司的dba,dba毫不留情的否认了我的看法,指出numbdb是指并发活动的数据库的数目。后来自己在本机验证了一下,修改了这个参数,依然没法解决这个故障,证明dba所言非虚。


看来方向错了,于是我用jdbc获得连接放入池中测试了一下,当并发数量超过8个一点问题没有,看来和数据库限制连接数一点关系。用上面数据源测试时超过8个故障就重现。难道apache数据源有问题,于是换了spring的数据源重新测试了一下,故障消失了,该数据源的获得的最大连接数和参数maxapps有关。问题解决了,不过为啥dbcp的数据源到8就不行了还不知原因,用这个要慎重,要不一不小心就中招了。
[/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值