I am trying to use the tomcat jdbc pool library (outside of tomcat)
along with the Apache Aries Transaction library in an OSGi environment
to handle distributed transactions.

One of the classes (XADataSourceEnlistingWrapper) provided by the
Aries Transaction wrappers library is a DataSource wrapper that auto
enlists connections.

It appears that the Aries class is trying to call
XAConnection.getConnection with the expectation that the returned
Connection object will recycle connections when the close() method is
called (i.e. return the connection to the pool)

However, in the tomcat jdbc pooling library
PooledConnection.getConnection() (and by extension
XAConnection.getConnection()) seems to be returning the physical
connection.  So the physical connection is getting closed without
being returned to the pool and I'm getting exceptions saying the pool
is empty after a few requests.

It looks like one of these libraries is implementing the interface
wrong (or its entirely possible I'm missing something).  After reading
the J2SE docs for PooledConnection it seems like
PooledConnection.getConnection() should not return the physical
connection but a handle that when closed indicates the connection
should be returned to the pool.  If that is the case the tomcat jdbc
pooling library handling the call incorrectly and its a bug.

I wanted to ask to post here before submitting a bug to the tracker in
case I'm missing something.

Thanks,
Jonathan

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to