> I'm using a Connection Pool and providing it to the JOOQ Factory. So it > should open and close connections automatically?
I really have to address this issue in jOOQ 3.0 :-) > The problem is I have a connection leak. If I comment out the > factory.setAutoCommit(true) then I don't get the connection leak, but I'd > like auto commit on so any updates are automatically committed. Here's the problem: http://www.jooq.org/javadoc/latest/org/jooq/impl/Factory.html#setAutoCommit(boolean) It reads: -------- Use this method only if you control the JDBC Connection wrapped by this Configuration, and if that connection manages the current transaction. If your transaction is operated on a distributed javax.transaction.UserTransaction, for instance, this method will not work. > So. Am I using this in the wrong way?. I guess the setAutoCommit shouldn't > really be called until the .execute() or .fetch() when JOOQ gets the > connection? Yes, you're using it in the "wrong" way, as the "correct" way has been confusing many users on this list. jOOQ's DataSource support was designed to support container-managed, pooled DataSources potentially using distributed transactions. In other words, if you pass a DataSource to jOOQ, jOOQ will get/close connections for you, i.e. "you don't control the JDBC connection wrapped by this Configuration". The best solution for you right now is to configure your data source / connection pool to provide jOOQ with connections that have the auto-commit flag set to true. I.e. you should set the auto commit flag inside DataSource.getConnection(), not on the Factory Cheers Lukas
