Вопрос по maxTotal и maxIdle в Apache Commons Pool 2? - PullRequest
0 голосов
/ 15 апреля 2020

Я использую реализацию Apache Commons Pool 2 для создания механизма пула объектов для моего приложения.

Ниже приведена конфигурация для создания пула

    PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory(connectionFactory, null);
                poolableConnectionFactory.setPoolStatements(poolPreparedStatements);
                poolableConnectionFactory.setValidationQuery(testConnectionSql);
                poolableConnectionFactory.setDefaultReadOnly(Boolean.TRUE);
                poolableConnectionFactory.setDefaultAutoCommit(Boolean.TRUE);
                poolableConnectionFactory.setDefaultTransactionIsolation(-1); 
                poolableConnectionFactory.setDefaultCatalog(null);

    GenericObjectPool connectionPool = new GenericObjectPool(poolableConnectionFactory);               
    connectionPool.setMaxTotal(4);                       
        connectionPool.setMaxIdle(2);    
        connectionPool.setTestOnBorrow(false);
        connectionPool.setTestOnReturn(false);
        connectionPool.setTestWhileIdle(false);
        poolableConnectionFactory.setPool(connectionPool);       
        dataSource_ = new PoolingDataSource(connectionPool);

Но, v $ сессия показывает 13 в БД и ниже значения в журнале. Я установил maxtotal как 4, но он пересекает предел. может кто-нибудь помочь здесь понять?

getMaxIdle () - 3, getMaxTotal () - 8, getNumIdle () - 3, getNumActive () - 0

...