[ http://nagoya.apache.org/jira/browse/DERBY-8?page=comments#action_56080 ] Daniel John Debrunner commented on DERBY-8: -------------------------------------------
I think the point is being missed that Derby does not support holdability when in a global transaction, thus holdability should always be CLOSE_CURSORS_AT_COMMIT when in a global transaction, regardless of the state set by the connection in local mode. So I believe the bug summary is correct, and there is a bug. > Connection object gets created with un-supported holdability on getting > Connection object from XAConnection "inside" the global transaction > ------------------------------------------------------------------------------------------------------------------------------------------- > > Key: DERBY-8 > URL: http://nagoya.apache.org/jira/browse/DERBY-8 > Project: Derby > Type: Bug > Components: JDBC > Versions: 10.0.2.0 > Reporter: Tulika Agrawal > Priority: Minor > > Reporting for Mamta Satoor, filed on Derby-dev list. > I think there is a bug in Derby when the user code tries to get the > Connection object from XAConnection "inside" the global transaction. > In this case, the Connection object gets created with un-supported > holdability. Look at the following piece of code and it's output to > see what exactly happens > EmbeddedXADataSource dscsx = new EmbeddedXADataSource(); > dscsx.setDatabaseName("wombat"); > XAConnection xac = dscsx.getXAConnection("fred", "wilma"); > XAResource xr = xac.getXAResource(); > xid = getXid(27, (byte) 21, (byte) 01); > xr.start(xid, XAResource.TMNOFLAGS); > conn1 = xac.getConnection(); > System.out.println("This is a bug. Connection's holdability should > have been CLOSE_CURSORS_AT_COMMIT since it is in the global > transaction"); > System.out.println("CONNECTION(in xa transaction) HOLDABILITY " + > (conn1.getHoldability() == ResultSet.HOLD_CURSORS_OVER_COMMIT)); > System.out.println("Autocommit on Connection inside global > transaction has been set correctly to " + conn1.getAutoCommit()); > xr.end(xid, XAResource.TMSUCCESS); > The output for the above piece of code is > This is a bug. Connection's holdability should have been > CLOSE_CURSORS_AT_COMMIT since it is in the global transaction > CONNECTION(in xa transaction) HOLDABILITY true > Autocommit on Connection inside global transaction has been set > correctly to false -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://nagoya.apache.org/jira/secure/Administrators.jspa - If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira
