数据连接池默认配置

两盒软妹~` 提交于 2019-12-27 17:05:34

1、问题

testOnBorrow=false导致获取连接cloes_wait 。

http://commons.apache.org/proper/commons-dbcp/configuration.html     官方dbcp配置 

org.apache.tomcat.jdbc.pool.DataSource   默认数据源

org.apache.tomcat.jdbc.pool.PoolConfiguration       数据源配置接口

org.apache.tomcat.jdbc.pool.DataSourceProxy 数据源配置代理

org.apache.tomcat.jdbc.pool.PoolProperties     默认配置属性

 2、配置项

validationQuery   SQL查询,用来验证从连接池取出的连接,在将连接返回给调用者之前.如果指定,则查询必须是一个SQL SELECT并且必须返回至少一行记录。

testOnBorrow  true  指明是否在从池中取出连接前进行检验,如果检验失败,

则从池中去除连接并尝试取出另一个。

注意: 设置为true后如果要生效,validationQuery参数必须设置为非空字符串

testWhileIdle  false  指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,

则连接将被从池中去除。

注意: 设置为true后如果要生效,validationQuery参数必须设置为非空字符串

timeBetweenEvictionRunsMillis  -1  在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位. 如果设置为非正数,则不运行空闲连接回收器线程。

3、举例

SpringCloud服务为例:

spring.datasource.remove-abandoned=true  #是否自动回收超时连接
spring.datasource.remove-abandoned-timeout=120  #超时时间(以秒数为单位)
spring.datasource.test-on-borrow=true  #检测池里连接的可用性

spring.datasource.test-while-idle=true  #指明连接是否被空闲连接回收器进行检验.如果检测失败,则连接将被从池中去除.

spring.datasource.validation-query=SELECT 1;  #验证
spring.datasource.time-between-eviction-runs-millis=60000  #连接在池中保持空闲而不被空闲连接回收器线程回收的最小时间值,单位毫秒 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!