[jboss-svn-commits] JBL Code SVN: r30310 - in labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaCore/arjuna: tests/classes/com/hp/mwtests/ts/arjuna/recovery and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Nov 23 08:00:20 EST 2009
Author: jhalliday
Date: 2009-11-23 08:00:19 -0500 (Mon, 23 Nov 2009)
New Revision: 30310
Added:
labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/recovery/LogMoveTest.java
Modified:
labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredTransactionScanner.java
Log:
Backport ExpiredEntryScanner fixes to 4.2.3.SP branch. JBTM-418 (plus some logging tweaks.)
Modified: labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredTransactionScanner.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredTransactionScanner.java 2009-11-23 12:15:46 UTC (rev 30309)
+++ labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredTransactionScanner.java 2009-11-23 13:00:19 UTC (rev 30310)
@@ -41,22 +41,6 @@
import com.arjuna.common.util.logging.*;
/**
- * @message com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionScanner_1
- * [com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionScanner_1] -
- * ExpiredTransactionScanner created, with expiry time of {0} seconds
- * @message com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionScanner_2
- * [com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionScanner_2] -
- * ExpiredTransactionScanner - exception during attempted move {0} {1}
- * @message com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionScanner_3
- * [com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionScanner_3] -
- * ExpiredTransactionScanner - could not moved log {0}
- * @message com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionScanner_4
- * [com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionScanner_3] -
- * ExpiredTransactionScanner - log {0} is assumed complete and will be
- * moved.
- */
-
-/**
* This class is a plug-in module for the recovery manager. This class is
* responsible for the removing ransaction status manager items that are too
* old.
@@ -64,6 +48,21 @@
public class ExpiredTransactionScanner implements ExpiryScanner
{
+ /**
+ * @message com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionScanner_1
+ * [com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionScanner_1] -
+ * ExpiredTransactionScanner created, with expiry time of {0} seconds
+ * @message com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionScanner_2
+ * [com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionScanner_2] -
+ * ExpiredTransactionScanner - exception during attempted move {0} {1}
+ * @message com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionScanner_3
+ * [com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionScanner_3] -
+ * ExpiredTransactionScanner - could not moved log {0}
+ * @message com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionScanner_4
+ * [com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionScanner_4] -
+ * ExpiredTransactionScanner - log {0} is assumed complete and will be
+ * moved.
+ */
public ExpiredTransactionScanner(String typeName, String movedTypeName)
{
@@ -151,6 +150,8 @@
new Object[]
{ newUid });
}
+ else
+ _objectStore.remove_committed(newUid, _typeName);
}
}
catch (Exception ex)
Copied: labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/recovery/LogMoveTest.java (from rev 24476, labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/recovery/LogMoveTest.java)
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/recovery/LogMoveTest.java (rev 0)
+++ labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/recovery/LogMoveTest.java 2009-11-23 13:00:19 UTC (rev 30310)
@@ -0,0 +1,102 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 2004,
+ *
+ * Arjuna Technologies Ltd,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: RecoveryManagerTest.java 2342 2006-03-30 13:06:17Z $
+ */
+
+package com.hp.mwtests.ts.arjuna.recovery;
+
+import com.arjuna.ats.arjuna.AtomicAction;
+import com.arjuna.ats.arjuna.common.Environment;
+import com.arjuna.ats.arjuna.common.Uid;
+import com.arjuna.ats.arjuna.coordinator.TxControl;
+import com.arjuna.ats.arjuna.objectstore.ObjectStore;
+import com.arjuna.ats.arjuna.recovery.RecoveryEnvironment;
+import com.arjuna.ats.arjuna.recovery.RecoveryManager;
+import com.arjuna.ats.arjuna.state.OutputObjectState;
+
+public class LogMoveTest
+{
+ public static void main (String[] args)
+ {
+ ObjectStore os = TxControl.getStore();
+ OutputObjectState fluff = new OutputObjectState();
+ Uid kungfuTx = new Uid();
+ boolean outcome = false;
+ final String tn = new AtomicAction().type();
+
+ try
+ {
+ kungfuTx.pack(fluff);
+
+ System.err.println("Creating dummy log");
+
+ os.write_committed(kungfuTx, tn, fluff);
+
+ if (os.currentState(kungfuTx, tn) == ObjectStore.OS_COMMITTED)
+ {
+ System.err.println("Wrote dummy transaction "+kungfuTx);
+
+ System.setProperty(RecoveryEnvironment.EXPIRY_SCAN_INTERVAL, "1");
+ System.setProperty(Environment.PERIODIC_RECOVERY_PERIOD, "8000000");
+
+ RecoveryManager manager = RecoveryManager
+ .manager(RecoveryManager.DIRECT_MANAGEMENT);
+
+ manager.scan();
+
+ try
+ {
+ Thread.sleep(3600000);
+ }
+ catch (final Exception ex)
+ {
+ }
+
+ manager.scan();
+
+ if (os.currentState(kungfuTx, tn) == ObjectStore.OS_COMMITTED)
+ System.err.println("Transaction log not moved!");
+ else
+ {
+ System.err.println("Transaction log moved!");
+
+ outcome = true;
+ }
+ }
+ else
+ System.err.println("State is not committed!");
+ }
+ catch (final Exception ex)
+ {
+ ex.printStackTrace();
+ }
+
+ System.err.println("Test outcome: " + (outcome ? "passed" : "failed"));
+ }
+}
More information about the jboss-svn-commits
mailing list