You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by az...@apache.org on 2008/05/26 10:53:21 UTC
svn commit: r660131 -
/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java
Author: azeez
Date: Mon May 26 01:53:21 2008
New Revision: 660131
URL: http://svn.apache.org/viewvc?rev=660131&view=rev
Log:
Do not fail if an error occurs while trying to join the group. We have
to retry.
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=660131&r1=660130&r2=660131&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 Mon May 26 01:53:21 2008
@@ -178,11 +178,11 @@
// If a WKA scheme is used, JOIN the group and get the member list
if (membershipScheme.equals(ClusteringConstants.MembershipScheme.WKA_BASED)
&& membershipManager.getMembers().length > 0) {
- try {
- log.info("Sending JOIN message to WKA members...");
- Member[] wkaMembers = membershipManager.getMembers(); // The well-known members
- Response[] responses;
- do {
+ log.info("Sending JOIN message to WKA members...");
+ Member[] wkaMembers = membershipManager.getMembers(); // The well-known members
+ Response[] responses = null;
+ do {
+ try {
responses = rpcChannel.send(wkaMembers,
new JoinGroupCommand(),
RpcChannel.ALL_REPLY,
@@ -194,33 +194,35 @@
} catch (InterruptedException ignored) {
}
}
- } while (responses.length == 0); // Wait until we've received at least one response
+ } catch (Exception e) {
+ String msg = "Error occurred while trying to send JOIN request to WKA members";
+ log.error(msg, e);
+ }
- for (Response response : responses) {
- MemberListCommand command = (MemberListCommand) response.getMessage();
- command.setMembershipManager(membershipManager);
- command.setStaticMembershipInterceptor(staticMembershipInterceptor);
- command.setSender(response.getSource());
- command.execute(configurationContext);
- }
-
- if (membershipManager.getMembers().length > 0) {
- log.info("Sending MEMBER_JOINED to group...");
- MemberJoinedCommand memberJoinedCommand = new MemberJoinedCommand();
- memberJoinedCommand.setMember(membershipManager.getLocalMember());
- try {
- rpcChannel.send(membershipManager.getMembers(), memberJoinedCommand,
- RpcChannel.ALL_REPLY, Channel.SEND_OPTIONS_ASYNCHRONOUS, 10000);
- } catch (ChannelException e) {
- String msg = "Could not send MEMBER_JOINED message to group";
- log.error(msg, e);
- throw new ClusteringFault(msg, e);
- }
+ // TODO: If we do not get a response within some time, try to recover from this fault
+ }
+ while (responses == null || responses.length == 0); // Wait until we've received at least one response
+
+ for (Response response : responses) {
+ MemberListCommand command = (MemberListCommand) response.getMessage();
+ command.setMembershipManager(membershipManager);
+ command.setStaticMembershipInterceptor(staticMembershipInterceptor);
+ command.setSender(response.getSource());
+ command.execute(configurationContext);
+ }
+
+ if (membershipManager.getMembers().length > 0) {
+ log.info("Sending MEMBER_JOINED to group...");
+ MemberJoinedCommand memberJoinedCommand = new MemberJoinedCommand();
+ memberJoinedCommand.setMember(membershipManager.getLocalMember());
+ try {
+ rpcChannel.send(membershipManager.getMembers(), memberJoinedCommand,
+ RpcChannel.ALL_REPLY, Channel.SEND_OPTIONS_ASYNCHRONOUS, 10000);
+ } catch (ChannelException e) {
+ String msg = "Could not send MEMBER_JOINED message to group";
+ log.error(msg, e);
+ throw new ClusteringFault(msg, e);
}
- } catch (ChannelException e) {
- String msg = "Could not JOIN group";
- log.error(msg, e);
- throw new ClusteringFault(msg, e);
}
}
@@ -703,6 +705,7 @@
} catch (InterruptedException ignored) {
}
}
+ // TODO: If we do not get a response within some time, try to recover from this fault
} while (responses.length == 0);
if (responses.length > 0) {
((ControlCommand) responses[0].getMessage()).execute(configurationContext); // Do the initialization