数据库连接设置

发布时间 2024-01-06 09:38:42作者: 你说累不累

出现异常”The last packet sent successfully to the server was 0 milliseconds ago.“的大部分原因是由于数据库回收了连接,而系统的缓冲池不知道,继续使用被回收的连接所致的。

作者:小牛长成记
链接:https://www.jianshu.com/p/5b2d42206145
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
#SQL查询,用来验证从连接池取出的连接
dbcp.validationQuery=SELECT 1
#指明连接是否被空闲连接回收器(如果有)进行检验,如果检测失败,则连接将被从池中去除
dbcp.testWhileIdle=true
#在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位,一般比minEvictableIdleTimeMillis小
dbcp.timeBetweenEvictionRunsMillis=300000
#在每次空闲连接回收器线程(如果有)运行时检查的连接数量,最好和maxActive一致
dbcp.numTestsPerEvictionRun=50
#连接池中连接,在时间段内一直空闲,被逐出连接池的时间(10006060),以毫秒为单位
dbcp.minEvictableIdleTimeMillis=3600000
local.datasource.driverClassName=com.kingbase8.Driver

初始化大小

local.datasource.initialSize=5

最小连接数

local.datasource.minIdle=5

最大连接数1

local.datasource.maxActive=20

连接等待超时时间

local.datasource.maxWait=60000

配置隔多久进行一次检测(检测可以关闭的空闲连接),检测需要关闭的空闲连接,单位是毫秒

local.datasource.timeBetweenEvictionRunsMillis=60000

配置连接在池中的最小生存时间

local.datasource.minEvictableIdleTimeMillis=300000
datasource.setDbType(this.dbType);
datasource.setUrl(this.dbUrl);
datasource.setUsername(username);
datasource.setPassword(password);
datasource.setDriverClassName(driverClassName);

    //configuration
    datasource.setInitialSize(initialSize);
    datasource.setValidationQuery("select 1");
    datasource.setTestWhileIdle(true);
    datasource.setNumTestsPerEvictionRun(maxActive);
    datasource.setMinIdle(minIdle);
    datasource.setMaxActive(maxActive);
    datasource.setMaxWait(maxWait);
    datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
    datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);