数据连接池默认配置

时间:2019-06-12
本文章向大家介绍数据连接池默认配置,主要包括数据连接池默认配置使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

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  #连接在池中保持空闲而不被空闲连接回收器线程回收的最小时间值,单位毫秒 

原文地址:https://www.cnblogs.com/wangymd/p/11011376.html