Return-Path: Delivered-To: apmail-db-derby-dev-archive@www.apache.org Received: (qmail 99691 invoked from network); 10 Aug 2009 16:54:32 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 10 Aug 2009 16:54:32 -0000 Received: (qmail 52020 invoked by uid 500); 10 Aug 2009 16:54:39 -0000 Delivered-To: apmail-db-derby-dev-archive@db.apache.org Received: (qmail 51963 invoked by uid 500); 10 Aug 2009 16:54:39 -0000 Mailing-List: contact derby-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: Delivered-To: mailing list derby-dev@db.apache.org Received: (qmail 51953 invoked by uid 99); 10 Aug 2009 16:54:39 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Aug 2009 16:54:39 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Aug 2009 16:54:36 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id D24D9234C004 for ; Mon, 10 Aug 2009 09:54:14 -0700 (PDT) Message-ID: <1430969098.1249923254847.JavaMail.jira@brutus> Date: Mon, 10 Aug 2009 09:54:14 -0700 (PDT) From: "Tiago R. Espinha (JIRA)" To: derby-dev@db.apache.org Subject: [jira] Commented: (DERBY-1016) javax.transaction.xa.forget (Xid) raises XAER_NOTA exception instead of XA_PROTO on a prepared transaction In-Reply-To: <353482326.1140545362120.JavaMail.jira@ajax.apache.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/DERBY-1016?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12741421#action_12741421 ] Tiago R. Espinha commented on DERBY-1016: ----------------------------------------- If I understood this properly, XA.forget does return different exceptions depending on the status of the transaction. With this in mind, we probably need to change one occurrence of the XA.forget in the harness test to accommodate for the fact that the exception being thrown for this specific case is now different. Is this correct? > javax.transaction.xa.forget (Xid) raises XAER_NOTA exception instead of XA_PROTO on a prepared transaction > ---------------------------------------------------------------------------------------------------------- > > Key: DERBY-1016 > URL: https://issues.apache.org/jira/browse/DERBY-1016 > Project: Derby > Issue Type: Bug > Components: JDBC > Affects Versions: 10.1.3.1, 10.2.1.6 > Reporter: Kathey Marsden > Assignee: Tiago R. Espinha > Attachments: DERBY-1016.patch, DERBY-1016.patch, DERBY-1016_Patch_1.diff, ReproDerby1016.java, utilXid.java > > > 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. - You can reply to this email to add a comment to the issue online.