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/25 11:55:22 UTC

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

Author: azeez
Date: Sun May 25 02:55:22 2008
New Revision: 659948

URL: http://svn.apache.org/viewvc?rev=659948&view=rev
Log:
There is a problem when the WKA member is removed from the static membership interceptor. Hence removing that code


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=659948&r1=659947&r2=659948&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 02:55:22 2008
@@ -179,55 +179,37 @@
         if (membershipScheme.equals(ClusteringConstants.MembershipScheme.WKA_BASED)) {
             try {
                 Member[] wkaMembers = membershipManager.getMembers(); // The well-known members
-                for (Member wkaMember : wkaMembers) {
-                    Response[] responses = rpcChannel.send(new Member[]{wkaMember},
-                                                           new JoinGroupCommand(),
-                                                           RpcChannel.FIRST_REPLY,
-                                                           Channel.SEND_OPTIONS_ASYNCHRONOUS,
-                                                           10000);
-                    if (responses.length > 0) {
-                        Member source = responses[0].getSource();
-                        MemberListCommand command = (MemberListCommand) responses[0].getMessage();
-                        command.setMembershipManager(membershipManager);
-                        command.setStaticMembershipInterceptor(staticMembershipInterceptor);
-                        command.execute(configurationContext);
-
-                        // Replace the WKA member, with the details received from that member
-                        // This is because we may have used a public IP address to point to the
-                        // wka member. But subequently, we need to use the private IP address
-                        StaticMember member = new StaticMember();
-                        member.setHost(source.getHost());
-                        member.setPort(source.getPort());
-                        member.setMemberAliveTime(source.getMemberAliveTime());
-                        member.setPayload("ping".getBytes());
-                        membershipManager.removeWellKnownMember(wkaMember);
-                        staticMembershipInterceptor.removeStaticMember(wkaMember);
-                        if (!membershipManager.getLocalMember().equals(member)) {
-                            membershipManager.addWellKnownMember(member);
-                            membershipManager.memberAdded(member);
-                            staticMembershipInterceptor.memberAdded(member);
-                        }
-
-                        log.info("Sending MEMBER_JOINED to group...");
-                        MemberJoinedCommand memberJoinedCommand = new MemberJoinedCommand();
-                        memberJoinedCommand.setMember(membershipManager.getLocalMember());
-                        try {
-                            Member[] currentMembers = membershipManager.getMembers();
-                            Member[] sendTo = new Member[currentMembers.length - 1];
-                            int j = 0;
-                            for (Member currentMember : currentMembers) {
-                                if (!currentMember.equals(source)) {  // Don't send back to the sender
-                                    sendTo[j] = currentMember;
-                                    j++;
-                                }
+                Response[] responses = rpcChannel.send(wkaMembers,
+                                                       new JoinGroupCommand(),
+                                                       RpcChannel.FIRST_REPLY,
+                                                       Channel.SEND_OPTIONS_ASYNCHRONOUS,
+                                                       10000);
+                for (Response response : responses) {
+                    Member source = response.getSource();
+                    MemberListCommand command = (MemberListCommand) response.getMessage();
+                    command.setMembershipManager(membershipManager);
+                    command.setStaticMembershipInterceptor(staticMembershipInterceptor);
+                    command.execute(configurationContext);
+
+                    log.info("Sending MEMBER_JOINED to group...");
+                    MemberJoinedCommand memberJoinedCommand = new MemberJoinedCommand();
+                    memberJoinedCommand.setMember(membershipManager.getLocalMember());
+                    try {
+                        Member[] currentMembers = membershipManager.getMembers();
+                        Member[] sendTo = new Member[currentMembers.length - 1];
+                        int j = 0;
+                        for (Member currentMember : currentMembers) {
+                            if (!currentMember.equals(source)) {  // Don't send back to the sender
+                                sendTo[j] = currentMember;
+                                j++;
                             }
-                            rpcChannel.send(sendTo, 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);
                         }
+                        rpcChannel.send(sendTo, 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) {