You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by az...@apache.org on 2008/05/25 21:35:43 UTC

svn commit: r660023 - /webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java

Author: azeez
Date: Sun May 25 12:35:43 2008
New Revision: 660023

URL: http://svn.apache.org/viewvc?rev=660023&view=rev
Log:
Retry to connect to a WKA member several times


Modified:
    webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java

Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java?rev=660023&r1=660022&r2=660023&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java Sun May 25 12:35:43 2008
@@ -460,21 +460,26 @@
      * @return true, if the member can be contacted; false, otherwise.
      */
     private boolean canConnect(org.apache.axis2.clustering.Member member) {
-        boolean canConnect = false;
-        try {
-            InetAddress addr = InetAddress.getByName(member.getHostName());
-            SocketAddress sockaddr = new InetSocketAddress(addr,
-                                                           member.getPort());
-            new Socket().connect(sockaddr, 5000);
-            canConnect = true;
-        } catch (IOException e) {
-            String msg = e.getMessage();
-            if (msg.indexOf("Connection refused") == -1 && msg.indexOf("connect timed out") == -1) {
-                log.error("Cannot connect to member " +
-                          member.getHostName() + ":" + member.getPort(), e);
+        for (int retries = 10; retries > 0; retries--) {
+            try {
+                InetAddress addr = InetAddress.getByName(member.getHostName());
+                SocketAddress sockaddr = new InetSocketAddress(addr,
+                                                               member.getPort());
+                new Socket().connect(sockaddr, 10000);
+                return true;
+            } catch (IOException e) {
+                String msg = e.getMessage();
+                if (msg.indexOf("Connection refused") == -1 && msg.indexOf("connect timed out") == -1) {
+                    log.error("Cannot connect to member " +
+                              member.getHostName() + ":" + member.getPort(), e);
+                }
+                try {
+                    Thread.sleep(1000);
+                } catch (InterruptedException ignored) {
+                }
             }
         }
-        return canConnect;
+        return false;
     }
 
     protected int getLocalPort(ServerSocket socket, String hostname,