[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