[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