学习dbcp连接池----各个参数的基本含义
BasicDataSource /**
* Creates a JDBC connection factory for this datasource. This method only
* exists so subclasses can replace the implementation class.
*/
protected ConnectionFactory createConnectionFactory() throws SQLException {
。。。。。。。。。。。。
。。。。。。。。。。。。
if (validationQuery == null) {//测试的sql语句
setTestOnBorrow(false);
setTestOnReturn(false);
setTestWhileIdle(false);
}
。。。。。。。。。。。。
。。。。。。。。。。。。
}
protected void createConnectionPool() {
// Create an object pool to contain our active connections
GenericObjectPool gop;
//abandonedConfig.setRemoveAbandoned(removeAbandoned); 是否清理为关闭的活动连接
//abandonedConfig.setRemoveAbandonedTimeout(removeAbandonedTimeout); 多长时间未使用为超时时间
//abandonedConfig.setLogAbandoned(logAbandoned); 连接池收回空闲的活动连接时是否打印消息
if ((abandonedConfig != null) && (abandonedConfig.getRemoveAbandoned())) {
gop = new AbandonedObjectPool(null,abandonedConfig);
}
else {
gop = new GenericObjectPool();
}
gop.setMaxActive(maxActive);//连接池支持的最大连接数
gop.setMaxIdle(maxIdle);//最多空闲多少
gop.setMinIdle(minIdle);//最少空闲多少
gop.setMaxWait(maxWait);//连接池中连接用完时,新的请求等待时间,毫秒
gop.setTestOnBorrow(testOnBorrow);//获取连接时是否测试一下
gop.setTestOnReturn(testOnReturn);//归还连接时是否测试一下
gop.setTestWhileIdle(testWhileIdle);//是否检测空闲池
gop.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);//空闲池清理线程休眠时间
gop.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);//空闲池中连接超时时间
gop.setNumTestsPerEvictionRun(numTestsPerEvictionRun);//空闲池清理线程时每次test几次
connectionPool = gop;
}
需要注意的是removeAbandoned的配置不同最后建立的连接池是不一样的。