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,