[jboss-svn-commits] JBL Code SVN: r30847 - in labs/jbosstm/branches/JBOSSTS_4_2_3_SP5_CP05_JBPAPP-3174: ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/arjunacore and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Dec 29 01:52:52 EST 2009


Author: vicky.kak at jboss.com
Date: 2009-12-29 01:52:51 -0500 (Tue, 29 Dec 2009)
New Revision: 30847

Modified:
   labs/jbosstm/branches/JBOSSTS_4_2_3_SP5_CP05_JBPAPP-3174/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/RecoveryEnvironment.java
   labs/jbosstm/branches/JBOSSTS_4_2_3_SP5_CP05_JBPAPP-3174/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/arjunacore/XAResourceRecord.java
   labs/jbosstm/branches/JBOSSTS_4_2_3_SP5_CP05_JBPAPP-3174/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/subordinate/jca/TransactionImple.java
   labs/jbosstm/branches/JBOSSTS_4_2_3_SP5_CP05_JBPAPP-3174/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/Environment.java
   labs/jbosstm/branches/JBOSSTS_4_2_3_SP5_CP05_JBPAPP-3174/ArjunaJTA/jta/classes/com/arjuna/ats/jta/utils/XAHelper.java
Log:
Backport JBTM-300 and JBTM-301 for one off JBPAPP-3174.

Modified: labs/jbosstm/branches/JBOSSTS_4_2_3_SP5_CP05_JBPAPP-3174/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/RecoveryEnvironment.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_2_3_SP5_CP05_JBPAPP-3174/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/RecoveryEnvironment.java	2009-12-29 04:59:39 UTC (rev 30846)
+++ labs/jbosstm/branches/JBOSSTS_4_2_3_SP5_CP05_JBPAPP-3174/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/RecoveryEnvironment.java	2009-12-29 06:52:51 UTC (rev 30847)
@@ -41,6 +41,8 @@
     public static final String EXPIRY_SCAN_INTERVAL    = "com.arjuna.ats.arjuna.recovery.expiryScanInterval" ;
     public static final String TRANSACTION_STATUS_MANAGER_EXPIRY_TIME = 
 	"com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime";
+    public static final String TRANSACTION_EXPIRY_TIME = 
+    	"com.arjuna.ats.arjuna.recovery.transactionExpiryTime";
     public static final String ACTIVATOR_PROPERTY_PREFIX  = "com.arjuna.ats.arjuna.recovery.recoveryActivator" ;
     
    /** Not used */

Modified: labs/jbosstm/branches/JBOSSTS_4_2_3_SP5_CP05_JBPAPP-3174/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/arjunacore/XAResourceRecord.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_2_3_SP5_CP05_JBPAPP-3174/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/arjunacore/XAResourceRecord.java	2009-12-29 04:59:39 UTC (rev 30846)
+++ labs/jbosstm/branches/JBOSSTS_4_2_3_SP5_CP05_JBPAPP-3174/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/arjunacore/XAResourceRecord.java	2009-12-29 06:52:51 UTC (rev 30847)
@@ -74,6 +74,13 @@
  * @author Mark Little (mark_little at hp.com)
  * @version $Id: XAResourceRecord.java 2342 2006-03-30 13:06:17Z  $
  * @since JTS 1.2.4.
+ *
+ * @message com.arjuna.ats.internal.jta.resources.arjunacore.noresource
+ *          [com.arjuna.ats.internal.jta.resources.arjunacore.noresource]
+ *          No XAResource to recover {0}
+ * @message com.arjuna.ats.internal.jta.resources.arjunacore.assumecomplete
+ *          [com.arjuna.ats.internal.jta.resources.arjunacore.assumecomplete]
+ *          Being told to assume complete on Xid {0}
  */
 
 public class XAResourceRecord extends AbstractRecord
@@ -421,6 +428,9 @@
 							return TwoPhaseOutcome.HEURISTIC_COMMIT;
 						case XAException.XA_HEURMIX:
 							return TwoPhaseOutcome.HEURISTIC_MIXED;
+						case XAException.XAER_NOTA:
+						    if (_recovered)
+						    	break; // rolled back previously and recovery completed
 						case XAException.XA_HEURRB: // forget?
 						case XAException.XA_RBROLLBACK:
 						case XAException.XA_RBEND:

Modified: labs/jbosstm/branches/JBOSSTS_4_2_3_SP5_CP05_JBPAPP-3174/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/subordinate/jca/TransactionImple.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_2_3_SP5_CP05_JBPAPP-3174/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/subordinate/jca/TransactionImple.java	2009-12-29 04:59:39 UTC (rev 30846)
+++ labs/jbosstm/branches/JBOSSTS_4_2_3_SP5_CP05_JBPAPP-3174/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/subordinate/jca/TransactionImple.java	2009-12-29 06:52:51 UTC (rev 30847)
@@ -125,4 +125,22 @@
 		return ((SubordinateAtomicAction) _theTransaction).getXid();
 	}
 	
+	/**
+	 * Force this transaction to try to recover itself again.
+	 */
+
+	public void recover()
+	{
+		_theTransaction.activate();
+	}
+
+	/**
+	 * Has the transaction been activated successfully? If not, we wait and try
+	 * again later.
+	 */
+
+	public boolean activated()
+	{
+		return ((SubordinateAtomicAction) _theTransaction).activated();
+	}
 }

Modified: labs/jbosstm/branches/JBOSSTS_4_2_3_SP5_CP05_JBPAPP-3174/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/Environment.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_2_3_SP5_CP05_JBPAPP-3174/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/Environment.java	2009-12-29 04:59:39 UTC (rev 30846)
+++ labs/jbosstm/branches/JBOSSTS_4_2_3_SP5_CP05_JBPAPP-3174/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/Environment.java	2009-12-29 06:52:51 UTC (rev 30847)
@@ -52,6 +52,7 @@
     public static final String XA_BACKOFF_PERIOD = "com.arjuna.ats.jta.xaBackoffPeriod";
     public static final String XA_RECOVERY_NODE = "com.arjuna.ats.jta.xaRecoveryNode";
     public static final String XA_ROLLBACK_OPTIMIZATION = "com.arjuna.ats.jta.xaRollbackOptimization";
+    public static final String XA_ASSUME_RECOVERY_COMPLETE = "com.arjuna.ats.jta.xaAssumeRecoveryComplete";
 
     public static final String UT_JNDI_CONTEXT = "com.arjuna.ats.jta.utils.UTJNDIContext";
     public static final String TM_JNDI_CONTEXT = "com.arjuna.ats.jta.utils.TMJNDIContext";

Modified: labs/jbosstm/branches/JBOSSTS_4_2_3_SP5_CP05_JBPAPP-3174/ArjunaJTA/jta/classes/com/arjuna/ats/jta/utils/XAHelper.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_2_3_SP5_CP05_JBPAPP-3174/ArjunaJTA/jta/classes/com/arjuna/ats/jta/utils/XAHelper.java	2009-12-29 04:59:39 UTC (rev 30846)
+++ labs/jbosstm/branches/JBOSSTS_4_2_3_SP5_CP05_JBPAPP-3174/ArjunaJTA/jta/classes/com/arjuna/ats/jta/utils/XAHelper.java	2009-12-29 06:52:51 UTC (rev 30847)
@@ -168,6 +168,47 @@
 	}
 
 	/**
+	 * Compares two Xid instances at the gtid level only.
+	 * 
+	 * @param Xid
+	 *            x1 first Xid
+	 * @param Xid
+	 *            x2 second Xid
+	 * 
+	 * @return <code>true</code> if the two instances are the same,
+	 *         <code>false</code> otherwise.
+	 */
+
+	public static boolean sameTransaction (Xid x1, Xid x2)
+	{
+		if (x1 == x2)
+			return true;
+		else
+		{
+			if (x1.getFormatId() == x2.getFormatId())
+			{
+				byte[] gtrid1 = x1.getGlobalTransactionId();
+				byte[] gtrid2 = x2.getGlobalTransactionId();
+
+				if (gtrid1.length == gtrid2.length)
+				{
+					for (int i = 0; i < gtrid1.length; i++)
+					{
+						if (gtrid1[i] != gtrid2[i])
+							return false;
+					}
+
+					return true;
+				}
+				else
+					return false;
+			}
+			else
+			    return false;
+		}
+	}
+
+	/**
 	 * get a string representing anyones Xid similar too, but not the same as
 	 * OTS_Transaction/xa/XID.toString()
 	 */



More information about the jboss-svn-commits mailing list