From debd536f77d7070548973d82f17b8992edbaffab Mon Sep 17 00:00:00 2001 From: Martin Ritchie Date: Mon, 26 Nov 2007 17:49:05 +0000 Subject: QPID-690 : Missing Test and code update. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/M2.1@598360 13f79535-47bb-0310-9956-ffa450edef68 --- .../jms/failover/FailoverRoundRobinServers.java | 11 +++++++- .../qpid/jms/failover/FailoverSingleServer.java | 33 +++++++++++----------- 2 files changed, 27 insertions(+), 17 deletions(-) (limited to 'java/client/src/main') diff --git a/java/client/src/main/java/org/apache/qpid/jms/failover/FailoverRoundRobinServers.java b/java/client/src/main/java/org/apache/qpid/jms/failover/FailoverRoundRobinServers.java index 405e1d3081..905f7ca3a1 100644 --- a/java/client/src/main/java/org/apache/qpid/jms/failover/FailoverRoundRobinServers.java +++ b/java/client/src/main/java/org/apache/qpid/jms/failover/FailoverRoundRobinServers.java @@ -115,6 +115,8 @@ public class FailoverRoundRobinServers implements FailoverMethod public BrokerDetails getNextBrokerDetails() { + boolean doDelay = false; + if (_currentBrokerIndex == (_connectionDetails.getBrokerCount() - 1)) { if (_currentServerRetry < _serverRetries) @@ -130,6 +132,7 @@ public class FailoverRoundRobinServers implements FailoverMethod else { _logger.info("Retrying " + _connectionDetails.getBrokerDetails(_currentBrokerIndex)); + doDelay=true; } _currentServerRetry++; @@ -162,6 +165,7 @@ public class FailoverRoundRobinServers implements FailoverMethod else { _logger.info("Retrying " + _connectionDetails.getBrokerDetails(_currentBrokerIndex)); + doDelay=true; } _currentServerRetry++; @@ -179,9 +183,10 @@ public class FailoverRoundRobinServers implements FailoverMethod BrokerDetails broker = _connectionDetails.getBrokerDetails(_currentBrokerIndex); String delayStr = broker.getOption(BrokerDetails.OPTIONS_CONNECT_DELAY); - if (delayStr != null) + if (delayStr != null && doDelay) { Long delay = Long.parseLong(delayStr); + _logger.info("Delay between connect retries:" + delay); try { Thread.sleep(delay); @@ -191,6 +196,10 @@ public class FailoverRoundRobinServers implements FailoverMethod return null; } } + else + { + _logger.info("No delay between connect retries, use tcp://host:port?connectdelay='value' to enable."); + } return broker; } diff --git a/java/client/src/main/java/org/apache/qpid/jms/failover/FailoverSingleServer.java b/java/client/src/main/java/org/apache/qpid/jms/failover/FailoverSingleServer.java index 92f232db17..622842edb9 100644 --- a/java/client/src/main/java/org/apache/qpid/jms/failover/FailoverSingleServer.java +++ b/java/client/src/main/java/org/apache/qpid/jms/failover/FailoverSingleServer.java @@ -22,25 +22,23 @@ package org.apache.qpid.jms.failover; import org.apache.qpid.jms.BrokerDetails; import org.apache.qpid.jms.ConnectionURL; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class FailoverSingleServer implements FailoverMethod { + private static final Logger _logger = LoggerFactory.getLogger(FailoverSingleServer.class); + /** The default number of times to rety a conection to this server */ public static final int DEFAULT_SERVER_RETRIES = 1; - /** - * The details of the Single Server - */ + /** The details of the Single Server */ private BrokerDetails _brokerDetail; - /** - * The number of times to retry connecting to the sever - */ + /** The number of times to retry connecting to the sever */ private int _retries; - /** - * The current number of attempts made to the server - */ + /** The current number of attempts made to the server */ private int _currentRetries; @@ -78,7 +76,7 @@ public class FailoverSingleServer implements FailoverMethod public BrokerDetails getCurrentBrokerDetails() { - return _brokerDetail; + return _brokerDetail; } public BrokerDetails getNextBrokerDetails() @@ -91,21 +89,24 @@ public class FailoverSingleServer implements FailoverMethod { if (_currentRetries < _retries) { - _currentRetries ++; + _currentRetries++; } } String delayStr = _brokerDetail.getOption(BrokerDetails.OPTIONS_CONNECT_DELAY); - if (delayStr != null) + if (delayStr != null && _currentRetries != 1) { Long delay = Long.parseLong(delayStr); + _logger.info("Delay between connect retries:" + delay); try { + Thread.sleep(delay); } catch (InterruptedException ie) { + _logger.info("No delay between connect retries, use tcp://host:port?connectdelay='value' to enable."); return null; } } @@ -153,10 +154,10 @@ public class FailoverSingleServer implements FailoverMethod public String toString() { - return "SingleServer:\n"+ - "Max Retries:"+_retries+ - "\nCurrent Retry:"+_currentRetries+ - "\n"+_brokerDetail+"\n"; + return "SingleServer:\n" + + "Max Retries:" + _retries + + "\nCurrent Retry:" + _currentRetries + + "\n" + _brokerDetail + "\n"; } } -- cgit v1.2.1