Tomcat DataSource - максимальное количество активных подключений

Я установил максимальное количество активных подключений на 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 в качестве максимального активного, он всегда ограничен 15 или 20 соответственно.

1 ответ

Попробуйте с 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);
Другие вопросы по тегам