Как создать источник данных с Apache DBCP 1.4? - PullRequest
0 голосов
/ 11 ноября 2011

Я пытаюсь это:

final PoolableConnectionFactory factory = new PoolableConnectionFactory(
  new DriverManagerConnectionFactory("jdbc:hsqldb:mem:testdb", "sa", ""),
  new GenericObjectPool(null),
  null,
  "SELECT 1 from INFORMATION_SCHEMA.SYSTEM_USERS",
  true,
  false,
  Connection.TRANSACTION_NONE
);
DataSource ds = new PoolingDataSource(factory.getPool());
ds.getConnection();

Безрезультатно, выдается исключение:

java.util.NoSuchElementException: Could not create a validated object, cause: Invalid argument in JDBC call
    at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1191)
    at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)

Что не так?

1 Ответ

1 голос
/ 11 ноября 2011

Попробуйте установить свой PoolableConnectionFactory следующим образом

PoolableConnectionFactory factory = new PoolableConnectionFactory(
  new DriverManagerConnectionFactory("jdbc:hsqldb:mem:testdb", "sa", ""), 
  new GenericObjectPool(null), 
  null, null, false, true);

И проверьте, работает ли он таким образом. Затем проверьте, допустим ли дополнительный параметр, относящийся к транзакции, в версии DBCP.

...