[jboss-svn-commits] JBL Code SVN: r37493 - in labs/jbosstm/trunk: ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Sep 29 05:41:16 EDT 2011
Author: jhalliday
Date: 2011-09-29 05:41:16 -0400 (Thu, 29 Sep 2011)
New Revision: 37493
Modified:
labs/jbosstm/trunk/
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/RecoveryDriver.java
Log:
Fix timing in RecoveryDriver. JBTM-907
Property changes on: labs/jbosstm/trunk
___________________________________________________________________
Modified: svn:mergeinfo
- /labs/jbosstm/branches/JBOSSTS_4_15_0_Final:37308,37480,37484
+ /labs/jbosstm/branches/JBOSSTS_4_15_0_Final:37308,37480,37484,37492
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/RecoveryDriver.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/RecoveryDriver.java 2011-09-29 09:30:02 UTC (rev 37492)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/RecoveryDriver.java 2011-09-29 09:41:16 UTC (rev 37493)
@@ -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