Как настроить DBCP PoolableConnectionFactory? - PullRequest
3 голосов
/ 21 декабря 2011

Вот как я создаю источник данных с фабрикой соединений DBCP 1.4:

PoolableConnectionFactory factory = new PoolableConnectionFactory(
  new DriverManagerConnectionFactory("jdbc:h2:mem:db", "", ""),
  new GenericObjectPool(null),
  null,
  "SELECT 1",
  false,
  true
);
DataSource src = new PoolingDataSource(factory.getPool());

Работает нормально, но я не знаю, как его настроить, с параметрами, перечисленными здесь: http://commons.apache.org/dbcp/configuration.html.Например, мне нужно установить testWhileIdle на true.

Ответы [ 2 ]

5 голосов
/ 26 ноября 2012
    Properties props = new Properties();
    props.put("validationQuery", "SELECT 1 from dual;");
    props.put("testWhileIdle","true");

    final ObjectPool connectionPool = new GenericObjectPool(null);
    final ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(connectUri, props);
    new PoolableConnectionFactory(connectionFactory, connectionPool, null, null, false, true);
    final PoolingDataSource dataSource = new PoolingDataSource(connectionPool);
2 голосов
/ 19 февраля 2012

BasicDataSource имеет эти атрибуты, можете ли вы использовать это?

BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName(JDBCDriver);
ds.setUrl(JDBCUrl);
ds.setUsername(JDBCUser);
ds.setPassword(JDBCPassword);
ds.setInitialSize(initSize);
ds.setTestOnBorrow(false);
ds.setTestWhileIdle(true);

...

...