DBCP数据源配置,数据源长时间不使用出现Could not close JDBC Connection

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" >
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="initialSize" value="10" />
<property name="maxActive" value="50" />
<!--连接数据库超时的解决方法-->
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<property name="testWhileIdle" value="true" />
<property name="removeAbandoned" value="true" />
<property name="removeAbandonedTimeout" value="90" />
<property name="logAbandoned" value="false" />
<property name= "timeBetweenEvictionRunsMillis" value="30000" />
<property name= "numTestsPerEvictionRun" value="30" />
<property name="minEvictableIdleTimeMillis" value="1800000" />
<property name="validationQuery" value="SELECT 1" />

</bean>


testOnBorrow=false由于不检测池里连接的可用性,
于是假如连接池中的连接被数据库关闭了,应用通过连接池getConnection时,都可能获取到这些不可
用的连接,且这些连接如果不被其他线程回收的话,它们不会被连接池被废除,也不会重新被创建,
占用了连接池的名额
testOnborrow =true 很大的消耗性能,为了保证服务器的稳定,可以配合其他配置来避免这一点,配合testWhileIdle=true
(但是默认为false)
 和timeBetweenEvictionRunsMillis来避免这种问题,所以testOnborrow =false是可以提高效率的

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值