DBCP连接池的参数解释

DBCP主要用于数据库连接池中,DBCP本身并没有池的功能,它使用Common Pool对象池,实现了数据库连接池的功能,Common  Pool中有很多参数,一直想做个小小的总结,因为很容易忘记,另外很多文章的参数总结都不是很全

 

1.maxActive: 最大的活跃连接的数量,默认值为8

注:

活跃连接指的是正在用于程序和数据库之间进行交互的连接

闲置连接指的是,在连接池中,没有被应用程序使用的连接

 

2.maxIdle: 最大的闲置连接的数量,默认值为8

注:

当大于最大的闲置数量时,会被连接池主动销毁

 

3.minIdle: 连接池中最小的闲置连接的数量,默认值为0

注:

当连接池中小于最小的闲置数量时,会创建新的连接对象

 

4.maxWait: 当向连接池请求连接资源时,连接池中的连接数量已经全部被使用(或者说没有闲置连接),等待连接释放所等待的最大时间,当超过这个时间,则抛出异常,默认值为-1,表示无限等待,直到池中有可用连接为止

 

5.minEvictableIdleTimeMillis: 清理线程保持闲置状态的最小时间,默认值为1000L * 60L * 30L=30分钟

注:

连接池是用清理线程进行一些清理工作,如当池中的闲置连接数量大于最大的闲置连接数量时,清理线程会去关闭超过部分的连接对象

 

6.testOnBorrow: 当client向连接池请求连接时,先进行test,如果test通过,则给请求者使用,反之,则抛出异常validate object failed。默认值为false

 

7.testOnReturn: 当client使用完连接之后,将连接返还给连接池时,先进行校验,如果校验通过,则让此连接返回给连接池,反之抛出异常,默认值为false

 

8.numTestsPerEvictionRun: 每次运行闲置对象清理器时,检查最大的对象(数据库连接对象)数目

注:

英文原文如下:

The max number of objects to examine during each run of the idle object evictor thread (if any).

 

9.timeBetweenEvictionRunsMillis: 清理线程启动的间隔时间,默认为-1,表明清理线程没有启动

 

10.testWhileIdle: 当值为true时,则当清理线程工作时,会去validate数据库连接对象的是否处于正常状态,如果处于非正常状态,则抛出异常,销毁同时从连接池中移除,默认值为false

注:所有本文中的validate,指的是执行一个SQL语句,如果正确执行了,则连接池认为数据库连接对象是正常的

 

11.softMinEvictableIdleTimeMillis: 当闲置对象清除器线程清除数据库连接对象之前,连接池中连接对象处于闲置状态的最小时间,注意,需要保证的是,池中的对象不能小于最小的闲置对象数量。默认值为-1,表明连接对象不会因为闲置时间过长而被销毁(清除)

英文原文如下:

The minimum amount of time an object may sit idle in the pool before it is eligible for eviction by the idle object evictor (if any), with the extra condition that at least "minIdle" amount of object remain in the pool. When non-positive, no objects will be evicted from the pool due to idle time alone.

 

12whenExhaustedAction: 当client想连接池请求连接时,没有可用的对象时,连接池采用的策略,默认为WHEN_EXHAUSTED_BLOCK,表明不做任何处理,处于阻塞状态,直到maxWait时间到,可选值为WHEN_EXHAUSTED_GROW,表明当连接耗尽时,池会主动create一个新的连接

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值