Thanks, yes I figured it out in the end, and actually I've removed transactions altogether for the beans involved because everything is read-only and there's no worries about inconsistent state.

I think there's probably a bug in the Connection Manager, so that when WrapperDataSource.getConnection() is being called the exception is thrown but a connection is still reserved from the pool and never gets reclaimed (including if you flush the pool).

Looking at the code (and I'm still trying to get my head around it), it looks like TxConnectionEventListener.enlist() is throwing a SystemException because it can't enlist the XAResource with the Tranaction which is rolled back. By this point a managed connection has been got (in BaseConnectionManager2.allocateConnection()), and there doesn't appear to be anything that returns it when enlist throws an error.

-Andrew

Scott M Stark wrote:

Alright, so the issue is that a stateful session is being accessed after it has been thrown out due to its inactivity exceeding its max age value. Either you need to increase the period over which passivated sessions are kept or isolate the access of the stateful session from the encompassing transaction using a RequiresNew tx attribute to prevent the failure from affecting the encompassing tx.




------------------------------------------------------- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01 _______________________________________________ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to