[jboss-svn-commits] JBL Code SVN: r8916 - labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Jan 19 05:34:16 EST 2007
Author: mark.little at jboss.com
Date: 2007-01-19 05:34:16 -0500 (Fri, 19 Jan 2007)
New Revision: 8916
Modified:
labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific/XAResourceRecord.java
Log:
removed support for non-XA db interpretation of RMERR.
Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific/XAResourceRecord.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific/XAResourceRecord.java 2007-01-19 10:33:57 UTC (rev 8915)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific/XAResourceRecord.java 2007-01-19 10:34:16 UTC (rev 8916)
@@ -63,6 +63,7 @@
import com.arjuna.ArjunaOTS.*;
import javax.transaction.xa.*;
+
import java.io.*;
import org.omg.CosTransactions.NotPrepared;
@@ -281,9 +282,12 @@
* XA_RB*, XAER_RMERR, XAER_RMFAIL, XAER_NOTA, XAER_INVAL, or
* XAER_PROTO.
*/
-
+
if (_rollbackOptimization) // won't have rollback called on it
removeConnection();
+
+ if ((e1.errorCode == XAException.XAER_RMERR) || (e1.errorCode == XAException.XAER_RMFAIL))
+ throw new HeuristicHazard();
return Vote.VoteRollback;
}
@@ -403,9 +407,15 @@
updateState(TwoPhaseOutcome.HEURISTIC_MIXED);
throw new org.omg.CosTransactions.HeuristicMixed();
- case XAException.XA_HEURRB:
+ case XAException.XA_HEURRB: // forget?
case XAException.XA_RBROLLBACK:
case XAException.XA_RBEND:
+ case XAException.XA_RBCOMMFAIL:
+ case XAException.XA_RBDEADLOCK:
+ case XAException.XA_RBINTEGRITY:
+ case XAException.XA_RBOTHER:
+ case XAException.XA_RBPROTO:
+ case XAException.XA_RBTIMEOUT:
destroyState();
break;
default:
@@ -517,18 +527,27 @@
* XAER_RMERR, XAER_RMFAIL, XAER_NOTA, XAER_INVAL, or
* XAER_PROTO.
*/
-
+
switch (e1.errorCode)
{
- case XAException.XAER_RMERR:
+
case XAException.XA_HEURHAZ:
updateState(TwoPhaseOutcome.HEURISTIC_HAZARD);
throw new org.omg.CosTransactions.HeuristicHazard();
- case XAException.XA_HEURCOM:
+ case XAException.XA_HEURCOM: // what about forget? OTS doesn't support this code here.
destroyState();
break;
case XAException.XA_HEURRB:
+ case XAException.XA_RBROLLBACK:
+ case XAException.XA_RBCOMMFAIL:
+ case XAException.XA_RBDEADLOCK:
+ case XAException.XA_RBINTEGRITY:
+ case XAException.XA_RBOTHER:
+ case XAException.XA_RBPROTO:
+ case XAException.XA_RBTIMEOUT:
+ case XAException.XA_RBTRANSIENT:
+ case XAException.XAER_RMERR:
updateState(TwoPhaseOutcome.HEURISTIC_ROLLBACK);
throw new org.omg.CosTransactions.HeuristicRollback();
More information about the jboss-svn-commits
mailing list