0
jooq環境でデータベース接続プーリングとしてdbcpとc3p0を使用しようとしました。どちらもSELECTステートメントでは問題ありませんが、CREATEステートメントとUPDATEステートメントは接続を解放しません。jooq接続プーリングが接続を解放しない
我々は次のようにDBCPを初期化:その後、我々は、クエリごとに接続を取得
public static DataSource setupDataSource(String dbUrl, String dbUserName, String dbPassword) {
ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(dbUrl, dbUserName, dbPassword);
PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory(connectionFactory, null);
ObjectPool<PoolableConnection> connectionPool = new GenericObjectPool<>(poolableConnectionFactory);
poolableConnectionFactory.setPool(connectionPool);
PoolingDataSource<PoolableConnection> dataSource = new PoolingDataSource<>(connectionPool);
return dataSource;
}
:
protected final DSLContext jooq;
public E add(E entity) throws Exception {
E transformedEntity = null;
try {
R persisted;
persisted = jooq.insertInto(transformator.getTable())
.set(transformator.createRecord(entity))
.returning()
.fetchOne();
transformedEntity = transformator.getEntityFromTableRecord(persisted);
} catch (DataAccessException e) {
...
}
return transformedEntity;
}
とエンドたちで:
Connection dbConnection = null;
try {
dbConnection = dataSource.getConnection();
} ....
DSLContext dslContext = DSL.using(connection, dialect);
アウト文を作成するには、のように見えます接続を閉じるには
dbConnection.close();
問題は、接続が開いたままであり、接続プールがいっぱいになっても接続が作成されないことです。ステートメントと結果セットを閉じる必要がありますか?もしそうなら、どうすればjooqでこれを行うことができますか?
実際には接続できません。 [try-with-resources](https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html)を使用していますか? –