[英]Tomcat Datasource configuration Connection timeout and Max Active to Idle connection ratio
[英]Tomcat DataSource - Max Active Connections
我使用以下代码将最大活动连接数设置为 1:
ConnectionPool initializePool(DataSource dataSource) {
if (!(org.apache.tomcat.jdbc.pool.DataSource.class.isInstance(dataSource))) {
return null;
}
org.apache.tomcat.jdbc.pool.DataSource tomcatDataSource = (org.apache.tomcat.jdbc.pool.DataSource) dataSource;
final String poolName = tomcatDataSource.getName();
try {
ConnectionPool pool = tomcatDataSource.createPool();
pool.getPoolProperties().setMaxActive(1);
pool.getPoolProperties().setInitialSize(1);
pool.getPoolProperties().setTestOnBorrow(true);
return pool;
} catch (SQLException e) {
logger.info(String.format(" !--! creation of pool failed for %s", poolName), e);
}
return null;
}
现在使用线程,我已经打开了与数据库的并发连接数。 我还使用下面列出的代码打印出当前活动的连接数
System.out.println("Current Active Connections = " + ((org.apache.tomcat.jdbc.pool.DataSource) datasource).getActive());
System.out.println("Max Active Connections = " + ((org.apache.tomcat.jdbc.pool.DataSource) datasource).getMaxActive());
我看到类似于下面的结果。 活动连接数显示为 1 以上。但是我想将最大活动连接数限制为 1。是否还有其他参数需要设置?
当前活动连接数 = 9
最大活动连接数 = 1
编辑:但是,当我尝试将 15 或 20 作为 max active 时,它始终分别限制为 15 或 20。
尝试使用 maxIdle 和 minIdle
ConnectionPool pool = tomcatDataSource.createPool();
pool.getPoolProperties().setMaxActive(1);
pool.getPoolProperties().setInitialSize(1);
pool.getPoolProperties().setMaxIdle(1);
pool.getPoolProperties().setMinIdle(1);
pool.getPoolProperties().setTestOnBorrow(true);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.