数据库连接设置
出现异常”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);