This content has been marked as final. Show 2 replies
I forgot to mention: when getting the connection, I actually do the following:
Connection conn = dataSource.getConnection(); JDBCConnection myConn = JDBCConnection((XAClientConnection)conn).getUnderlyingConnection() // perform ops conn.close(); // XAClientConnection is returned to pool when close() is called
So really, I do not deal with XAClientConnection but with my connection implementation; maybe that's the problem; maybe XAClientConnection tracks the Statement objects (keeps them until commit is called); since I use my instance of Connection (JDBCConnection) to invoke update(...), then XAClientConnection cannot keep track of my statements; on commit therefore, it has no statements cached and so does not call commit on the connection it encapsulates - in this case, an instance of JDBCConnection.
Is this assumption right??? Is anyone more intimate with jboss' internal connection pooling/transaction mechanisms?
Me again: FALSE ALERT! I was sure I had set my transaction type to Container (in the deployment descriptor), but it was to Bean... Sorry. I am ashamed.