DBCP连接池配置常用参数说明

参数默认值说明
username\传递给JDBC驱动的用于建立连接的用户名
password\传递给JDBC驱动的用于建立连接的密码
url\传递给JDBC驱动的用于建立连接的URL
driverClassName\使用的JDBC驱动的完整有效的Java 类名
initialSize  0初始化连接:连接池启动时创建的初始化连接数量,1.2版本后支持
maxActive8最大活动连接:连接池在同一时间能够分配的最大活动连接的数量, 如果设置为非正数则表示不限制
maxIdle  8最大空闲连接:连接池中容许保持空闲状态的最大连接数量,超过的空闲连接将被释放,
如果设置为负数表示不限制
minIdle  0最小空闲连接:连接池中容许保持空闲状态的最小连接数量,低于这个数量将创建新的连接,
如果设置为0则不创建
maxWait  无限  最大等待时间:当没有可用连接时,连接池等待连接被归还的最大时间(以毫秒计数)超过时间则抛出异常,如果设置为-1表示无限等待
testOnReturn  false 是否在归还到池中前进行检验
testWhileIdle  false 连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,
则连接将被从池中去除.设置为true后如果要生效,validationQuery参数必须设置为非空字符串
minEvictableIdleTimeMillis  1000 * 60 * 30连接在池中保持空闲而不被空闲连接回收器线程
(如果有)回收的最小时间值,单位毫秒
numTestsPerEvictionRun 3在每次空闲连接回收器线程(如果有)运行时检查的连接数量
timeBetweenEvictionRunsMillis -1在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位.
 如果设置为非正数,则不运行空闲连接回收器线程
validationQuery   nullSQL查询,用来验证从连接池取出的连接,在将连接返回给调用者之前.如果指定,
则查询必须是一个SQL SELECT并且必须返回至少一行记录
testOnBorrow true

是否在从池中取出连接前进行检验,如果检验失败,
则从池中去除连接并尝试取出另一个.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   DBCP连接池的自我检测

默认配置的连接池,是不对池中的链接做测试的,有时已经断开,但连接池不知道,这样从池里取出来的这样的连接访问数据库就会报错。

解决方案:1.定时对连接做测试,测试失败就关闭连接。

              2.控制链接的空闲时间达到N分钟,就关闭连接(然后可再新建连接)

              3.也可以混合使用两个方案:

                 。validationQuery(测试连接的sql语句) : validationQuery= "SELECT 1"

      。testWhileIdle (连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除) : testWhileIdle  = "true"

                 。testOnBorrow = "false"   借出连接时不要测试,否则很影响性能,性能会下降7-10倍

      。timeBetweenEvictionRunsMillis (每30秒运行一次空闲连接回收器(独立线程)。并每次检查3个连接,

                    如果连接空闲时间超过30分钟就销毁。销毁连接后,连接数量就少了,如果小于minIdle数量,就新建连接,维护数量不少于minIdle)

                    timeBetweenEvictionRunsMillis = "30000"  

                 。minEvictableIdleTimeMillis(池中的连接空闲x毫秒后被回收,默认30分钟):minEvictableIdleTimeMillis = "1800000"

                 。numTestsPerEvictionRun(在每次空闲连接回收器线程(如果有)运行时检查的连接数量,默认值就是3.) : numTestsPerEvictionRun ="3" 

 

官方文档

转载于:https://www.cnblogs.com/happySmily/p/5941813.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值