Now I don't recall why PooledConnectionImpl calls setAutoCommit(true)
(???), but generally this is DataSource implementation dependent.
In other words it is probably ok not to set it to true, but
regardless of that the framework shouldn't rely on a specific state
of a Connection after it is returned back to the pool. Consider for
instance that PoolManager can close unused connections at any time.
Andrus
On Nov 20, 2006, at 6:01 PM, Tore Halset wrote:
Hello.
I get a jdbc Connection using node.getDataSource().getConnection()
and setAutoCommit(false) on this to be able to use PostgreSQL
blobs. Is it ok to not set autoCommit back to true before closing
the connection and returning it to the pool?
My current solution is a custom Blob implementing the Fault (thanks
for that tip Andrus!) interface to be able to re-query the Blob
when it is lost. This custom Blob also handles writing lots of
blobs without filling up the heap space.
I am wondering if not setting autoCommit back to true leave the
transaction in a dangerous state or if the connection pooling will
make sure everything works ok. Is this dependant of the connection
pooling framework used? I have tested with DriverDataSourceFactory
and max connection = 1 and it does not seem to leak connections.
http://issues.apache.org/cayenne/browse/CAY-316
- Tore.