[jboss-svn-commits] JBL Code SVN: r37492 - labs/jbosstm/branches/JBOSSTS_4_15_0_Final/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Sep 29 05:30:02 EDT 2011


Author: jhalliday
Date: 2011-09-29 05:30:02 -0400 (Thu, 29 Sep 2011)
New Revision: 37492

Modified:
   labs/jbosstm/branches/JBOSSTS_4_15_0_Final/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/RecoveryDriver.java
Log:
Fix timing in RecoveryDriver. JBTM-907


Modified: labs/jbosstm/branches/JBOSSTS_4_15_0_Final/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/RecoveryDriver.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_15_0_Final/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/RecoveryDriver.java	2011-09-28 13:02:09 UTC (rev 37491)
+++ labs/jbosstm/branches/JBOSSTS_4_15_0_Final/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/RecoveryDriver.java	2011-09-29 09:30:02 UTC (rev 37492)
@@ -1,20 +1,20 @@
 /*
  * JBoss, Home of Professional Open Source
- * Copyright 2006, Red Hat Middleware LLC, and individual contributors 
- * as indicated by the @author tags. 
+ * 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. 
+ * 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 
+ * 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, 
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
  * MA  02110-1301, USA.
- * 
+ *
  * (C) 2005-2006,
  * @author JBoss Inc.
  */
@@ -24,7 +24,7 @@
  * Arjuna Technologies Limited,
  * Newcastle upon Tyne,
  * Tyne and Wear,
- * UK.  
+ * UK.
  *
  * $Id: RecoveryDriver.java 2342 2006-03-30 13:06:17Z  $
  */
@@ -42,22 +42,23 @@
     public static final String ASYNC_SCAN = "ASYNC_SCAN";
     public static final String PING = "PING";
     public static final String PONG = "PONG";
-    
-    public static final int DEFAULT_SYNC_TIMEOUT = recoveryPropertyManager.getRecoveryEnvironmentBean().getPeriodicRecoveryPeriod() * 1000; // in milliseconds
+
+    // allow time for one complete scan (which is dominated by the backoff wait) plus a fudge factor for actual work + comms delay
+    public static final int DEFAULT_SYNC_TIMEOUT = 1000 + (recoveryPropertyManager.getRecoveryEnvironmentBean().getRecoveryBackoffPeriod() * 1000); // in milliseconds
     public static final int DEFAULT_SYNC_RETRY = 5;
-    
+
     public static final int DEFAULT_SO_TIMEOUT = 20000;
-    
+
     public RecoveryDriver (int port)
     {
 	this(port, null, DEFAULT_SO_TIMEOUT);
     }
-    
+
     public RecoveryDriver (int port, String hostName)
     {
 	this(port, hostName, DEFAULT_SO_TIMEOUT);
     }
-    
+
     public RecoveryDriver (int port, String hostName, int timeout)
     {
 	_port = port;
@@ -69,25 +70,25 @@
     {
 	return synchronousScan(DEFAULT_SYNC_TIMEOUT, DEFAULT_SYNC_RETRY);
     }
-    
+
     public final boolean synchronousScan (int timeout, int retry) throws java.net.UnknownHostException, java.net.SocketException, java.io.IOException
     {
         return scan(SCAN, timeout, retry);
     }
-    
+
     public final boolean asynchronousScan () throws java.net.UnknownHostException, java.net.SocketException, java.io.IOException
     {
         /*
          * For async the timeout is the socket timeout and number of attempts on call is 1.
          */
-        
+
 	return scan(ASYNC_SCAN, _timeout, 1);
     }
 
     /*
      * Ignore timeout/retry for async.
      */
-    
+
     private final boolean scan (String scanType, int timeout, int retry) throws java.net.UnknownHostException, java.net.SocketException, java.io.IOException
     {
 	if (_hostName == null)
@@ -95,13 +96,13 @@
 
         boolean success = false;
         Socket connectorSocket = null;
-        
-	for (int i = 0; i < retry; i++)
+
+	for (int i = 0; i < retry && !success; i++)
 	{
 	    connectorSocket = new Socket(_hostName, _port);
-	    
+
             connectorSocket.setSoTimeout(timeout);
-            
+
 	    try
 	    {
 	        // streams to and from the RecoveryManager



More information about the jboss-svn-commits mailing list