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 2007/06/15 12:27:38 UTC
svn commit: r547602 -
/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/
Author: azeez
Date: Fri Jun 15 03:27:36 2007
New Revision: 547602
URL: http://svn.apache.org/viewvc?view=rev&rev=547602
Log:
Removing calls to Member.getName since this is a costly operation. Calculating the host id in a different way.
Modified:
webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/AckManager.java
webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelListener.java
webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelSender.java
webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java
webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesControlCommandProcessor.java
webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesMembershipListener.java
webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesUtil.java
Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/AckManager.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/AckManager.java?view=diff&rev=547602&r1=547601&r2=547602
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/AckManager.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/AckManager.java Fri Jun 15 03:27:36 2007
@@ -50,6 +50,7 @@
public static boolean isMessageAcknowledged(String messageUniqueId,
ChannelSender sender) throws ClusteringFault {
+
boolean isAcknowledged = false;
MessageACK ack = (MessageACK) messageAckTable.get(messageUniqueId);
List memberList = ack.getMemberList();
@@ -62,8 +63,9 @@
} else {
for (int i = 0; i < members.length; i++) {
Member member = members[i];
- if (member.isReady() && !memberList.contains(member.getName())) {
- log.debug("[NO ACK] from member " + member.getName());
+ String memberHost = TribesUtil.getHost(member);
+ if (member.isReady() && !memberList.contains(memberHost)) {
+ log.debug("[NO ACK] from member " + memberHost);
log.debug("ACKed member list=" + memberList);
// At this point, resend the original message back to the node which has not
Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelListener.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelListener.java?view=diff&rev=547602&r1=547601&r2=547602
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelListener.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelListener.java Fri Jun 15 03:27:36 2007
@@ -94,7 +94,7 @@
&& !(msg instanceof GetStateResponseCommand)) {
return;
}
- log.debug("RECEIVED MESSAGE " + msg + " from " + sender.getName());
+ log.debug("RECEIVED MESSAGE " + msg + " from " + TribesUtil.getHost(sender));
// Need to process ACKs as soon as they are received since otherwise,
// unnecessary retransmissions will take place
Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelSender.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelSender.java?view=diff&rev=547602&r1=547601&r2=547602
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelSender.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelSender.java Fri Jun 15 03:27:36 2007
@@ -92,10 +92,10 @@
try {
if (member.isReady()) {
channel.send(new Member[]{member}, cmd, 0);
- log.debug("Sent " + cmd + " to " + member.getName());
+ log.debug("Sent " + cmd + " to " + TribesUtil.getHost(member));
}
} catch (ChannelException e) {
- String message = "Could not send message to " + member.getName() +
+ String message = "Could not send message to " + TribesUtil.getHost(member) +
". Reason " + e.getMessage();
log.warn(message);
}
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?view=diff&rev=547602&r1=547601&r2=547602
==============================================================================
--- 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 Fri Jun 15 03:27:36 2007
@@ -131,7 +131,7 @@
channelListener.setContextManager(contextManager);
Member[] members = channel.getMembers();
- log.info("Local Tribes Member " + channel.getLocalMember(true).getName());
+ log.info("Local Tribes Member " + TribesUtil.getLocalHost(channel));
TribesUtil.printMembers(members);
// If there is at least one member in the Tribe, get the current state from a member
@@ -151,9 +151,9 @@
members = channel.getMembers();
int memberIndex = random.nextInt(members.length);
Member member = members[memberIndex];
- if (!sentMembersList.contains(member.getName())) {
+ if (!sentMembersList.contains(TribesUtil.getHost(member))) {
sender.sendToMember(new GetStateCommand(), member);
- sentMembersList.add(member.getName());
+ sentMembersList.add(TribesUtil.getHost(member));
log.debug("WAITING FOR STATE UPDATE...");
Thread.sleep(1000);
}
Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesControlCommandProcessor.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesControlCommandProcessor.java?view=diff&rev=547602&r1=547601&r2=547602
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesControlCommandProcessor.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesControlCommandProcessor.java Fri Jun 15 03:27:36 2007
@@ -61,7 +61,7 @@
channelSender.sendToMember(getStateRespCmd, sender);
} else if (command instanceof AckCommand) {
AckCommand cmd = (AckCommand) command;
- cmd.setMemberId(sender.getName());
+ cmd.setMemberId(TribesUtil.getHost(sender));
cmd.execute(configurationContext);
} else {
command.execute(configurationContext);
Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesMembershipListener.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesMembershipListener.java?view=diff&rev=547602&r1=547601&r2=547602
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesMembershipListener.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesMembershipListener.java Fri Jun 15 03:27:36 2007
@@ -28,12 +28,12 @@
private static Log log = LogFactory.getLog(TribesMembershipListener.class);
public void memberAdded(Member member) {
- log.info("New member " + member.getName() + " joined cluster.");
+ log.info("New member " + TribesUtil.getHost(member) + " joined cluster.");
// System.err.println("++++++ IS COORD="+TribesClusterManager.nbc.isCoordinator());
}
public void memberDisappeared(Member member) {
- log.info("Member " + member.getName() + " left cluster");
+ log.info("Member " + TribesUtil.getHost(member) + " left cluster");
// System.err.println("++++++ IS COORD="+TribesClusterManager.nbc.isCoordinator());
}
}
Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesUtil.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesUtil.java?view=diff&rev=547602&r1=547601&r2=547602
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesUtil.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesUtil.java Fri Jun 15 03:27:36 2007
@@ -16,6 +16,7 @@
package org.apache.axis2.clustering.tribes;
+import org.apache.catalina.tribes.Channel;
import org.apache.catalina.tribes.Member;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -25,21 +26,12 @@
private static Log log = LogFactory.getLog(TribesUtil.class);
public static void printMembers(Member[] members) {
-
-
if (members != null) {
int length = members.length;
if (length > 0) {
log.info("Members of current cluster");
for (int i = 0; i < length; i++) {
- byte[] hostBts = members[i].getHost();
- String host = null;
- if (hostBts != null) {
- for (int j = 0; j < hostBts.length; j++) {
- host = host == null ? ("" + hostBts[j]) : (host + "." + hostBts[j]);
- }
- }
- log.info("Member" + (i + 1) + " " + members[i].getName());
+ log.info("Member" + (i + 1) + " " + getHost(members[i]));
}
} else {
log.info("No members in current cluster");
@@ -47,4 +39,19 @@
}
}
+ public static String getHost(Member member) {
+ byte[] hostBytes = member.getHost();
+ StringBuffer host = new StringBuffer();
+ if (hostBytes != null) {
+ for (int i = 0; i < hostBytes.length; i++) {
+ int hostByte = hostBytes[i] >= 0 ? (int) hostBytes[i] : (int) hostBytes[i] + 256;
+ host.append(hostByte).append(".");
+ }
+ }
+ return host.append(":").append(member.getPort()).toString();
+ }
+
+ public static String getLocalHost(Channel channel) {
+ return getHost(channel.getLocalMember(true));
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org