db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kathey Marsden (JIRA)" <derby-...@db.apache.org>
Subject [jira] Created: (DERBY-1016) javax.transaction.xa.forget (Xid) raises XAER_NOTA exception instead of XA_PROTO on a prepared transaction
Date Tue, 21 Feb 2006 18:09:22 GMT
javax.transaction.xa.forget (Xid) raises XAER_NOTA exception instead of XA_PROTO on a prepared
transaction
----------------------------------------------------------------------------------------------------------

         Key: DERBY-1016
         URL: http://issues.apache.org/jira/browse/DERBY-1016
     Project: Derby
        Type: Bug
  Components: JDBC  
    Versions: 10.2.0.0, 10.1.2.3, 10.1.3.0    
    Reporter: Kathey Marsden


javax.transaction.xa.forget (Xid) raises XAER_NOTA exception instead of XA_PROTO on a prepared
transaction

I posted a question to derby-dev about this and heard no response so am assuming it is indeed
a bug.

 in  the  XA+ 
specification, it seems like xa_forget should  only be valid for a
heuristically completed transaction, so should  be  XAER_PROTO
and not XAER_NOTA.


In xaStateTran.sql we have this case:

-- get back into prepared state
xa_start xa_noflags 50;
insert into xastate values(2);
xa_end xa_success 50;
xa_prepare 50;

select * from global_xactTable where gxid is not null order by gxid;

-- the following should error XAER_NOTA
xa_forget 50;



The user  code I am looking at handles forget like this. They expect 
XAER_PROTO in this case.
              
try {
             xaRes.forget(xidList[i]);
              System.out.print("XA-Transaction [" + (i+1) + "]
Forgotten. \n" );
} catch (XAException XAeForget) {
                        if ( XAeForget.errorCode ==
XAException.XAER_PROTO ) {
                            System.out.print("XA-Transaction [" + (i+1)
+ "] not heuristically completed yet - Rolling Back instead. \n" );
                            xaRes.rollback(xidList[i]);
                            System.out.print("XA-Transaction [" + (i+1)
+ "] Rolled Back. \n" );
                        }
                        if ( XAeForget.getMessage() != null ) {
                            System.out.println("XAException " +
XAeForget.getMessage() );
             

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message