六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 14|回复: 0

spring 配置dbcp连接池不能释放,

[复制链接]

升级  9.67%

61

主题

61

主题

61

主题

举人

Rank: 3Rank: 3

积分
229
 楼主| 发表于 2013-2-3 10:29:42 | 显示全部楼层 |阅读模式
#回收被遗弃的(一般是忘了释放的)数据库连接到连接池中。  
dataBase.removeAbandoned =false
# 数据库连接过多长时间不用将被视为被遗弃而收回连接池中。    
dataBase.removeAbandonedTimeout = 30
# 将被遗弃的数据库连接的回收记入日志。   
dataBase.logAbandoned = false
#连接池的最大数据库连接数,设为0 表示无限制。  
dataBase.maxActive = 200
#数据库连接的最大空闲连接数。超过此空闲连接数,,数据库连接将被标记为不可用,然后被释放。设为0 表示无限制。 
dataBase.maxIdle=40
#最大建立连接等待时间。如果超过此时间将接到异常。设为-1 表示无限制
dataBase.maxWait=10000
#取得、返回对象和空闲时是否进行验证,检查对象是否有效,默认都为false即不验证
dataBase.testOnBorrow=true
dataBase.testWhileIdle=true
dataBase.testOnReturn=true
dataBase.validationQuery=select 1 from dual
 
 
 
说明:
1. #回收被遗弃的(一般是忘了释放的)数据库连接到连接池中。  
dataBase.removeAbandoned =false
如果这个值为true一般是用来调试的时候用的,正式发布后应该改为false,2. # 将被遗弃的数据库连接的回收记入日志。   
dataBase.logAbandoned = false
这个如果设置为true就会引起如下错误:

  • DBCP object created 2006-10-25 09:08:02 by the following code was never closed:   
  • java.lang.Exception   
  •     at org.apache.commons.dbcp.AbandonedTrace.setStackTrace(AbandonedTrace.java:157)   
  •     at org.apache.commons.dbcp.AbandonedObjectPool.borrowObject(AbandonedObjectPool.java:76)   
  •     at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95)   
  •     at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)   
  •     at org.apache.commons.dbcp.BasicDataSource$$FastClassByCGLIB$$de03396c.invoke(<generated>)   
  •     at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)  
 
 2.
#连接池的最大数据库连接数,设为0 表示无限制。  
dataBase.maxActive = 200
#数据库连接的最大空闲时间。超过此空闲时间,数据库连接将被标记为不可用,然后被释放。设为0 表示无限制。 
dataBase.maxIdle=40
 
会有可能出现:Cannot get a connection, pool error Timeout waiting for idle object这样的错误
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表