zoukankan      html  css  js  c++  java
  • 数据连接池默认配置

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

  • 相关阅读:
    [原]Unity3D深入浅出
    [原]Unity3D深入浅出
    [原]Unity3D深入浅出
    [原]Unity3D深入浅出
    [原]Unity3D深入浅出
    [原]Unity3D深入浅出
    [原]Unity3D深入浅出
    SSH 远程端口转发
    SSH 本地端口转发
    SSH执行远程命令和传送数据
  • 原文地址:https://www.cnblogs.com/wangymd/p/11011376.html
Copyright © 2011-2022 走看看