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/01/08 16:55:55 UTC
svn commit: r610033 - in
/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering:
context/ context/commands/ control/ tribes/
Author: azeez
Date: Tue Jan 8 07:55:53 2008
New Revision: 610033
URL: http://svn.apache.org/viewvc?rev=610033&view=rev
Log:
Checking debug level
Retransmitting message to faulty members if it was not a connection failure
Modified:
webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/ContextClusteringCommandFactory.java
webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/DefaultContextManagerListener.java
webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/PropertyUpdater.java
webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/UpdateServiceContextCommand.java
webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/UpdateServiceGroupContextCommand.java
webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/control/GetConfigurationCommand.java
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
Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/ContextClusteringCommandFactory.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/ContextClusteringCommandFactory.java?rev=610033&r1=610032&r2=610033&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/ContextClusteringCommandFactory.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/ContextClusteringCommandFactory.java Tue Jan 8 07:55:53 2008
@@ -170,7 +170,9 @@
if (!isExcluded(key,
context.getClass().getName(),
excludedPropertyPatterns)) {
- log.debug("sending property =" + key + "-" + prop);
+ if (log.isDebugEnabled()) {
+ log.debug("sending property =" + key + "-" + prop);
+ }
PropertyDifference diff = (PropertyDifference) diffs.get(key);
diff.setValue(prop);
updateCmd.addProperty(diff);
@@ -187,7 +189,9 @@
// Next check whether it matches an excluded pattern
if (!isExcluded(key, context.getClass().getName(), excludedPropertyPatterns)) {
- log.debug("sending property =" + key + "-" + prop);
+ if (log.isDebugEnabled()) {
+ log.debug("sending property =" + key + "-" + prop);
+ }
PropertyDifference diff = new PropertyDifference(key, prop, false);
updateCmd.addProperty(diff);
}
@@ -208,7 +212,9 @@
// First check whether it is serializable
if (prop instanceof Serializable) {
- log.debug("sending property =" + key + "-" + prop);
+ if (log.isDebugEnabled()) {
+ log.debug("sending property =" + key + "-" + prop);
+ }
PropertyDifference diff = (PropertyDifference) diffs.get(key);
diff.setValue(prop);
updateCmd.addProperty(diff);
Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/DefaultContextManagerListener.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/DefaultContextManagerListener.java?rev=610033&r1=610032&r2=610033&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/DefaultContextManagerListener.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/DefaultContextManagerListener.java Tue Jan 8 07:55:53 2008
@@ -27,12 +27,9 @@
public class DefaultContextManagerListener implements ContextManagerListener {
private ConfigurationContext configurationContext;
- private static final Log log = LogFactory.getLog(DefaultContextManagerListener.class);
public void contextUpdated(ContextClusteringCommand message) throws ClusteringFault {
- log.debug("Enter: DefaultContextManagerListener::contextRemoved");
message.execute(configurationContext);
- log.debug("Exit: DefaultContextManagerListener::contextRemoved");
}
public void setConfigurationContext(ConfigurationContext configurationContext) {
Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/PropertyUpdater.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/PropertyUpdater.java?rev=610033&r1=610032&r2=610033&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/PropertyUpdater.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/PropertyUpdater.java Tue Jan 8 07:55:53 2008
@@ -36,7 +36,9 @@
private Map properties;
public void updateProperties(AbstractContext abstractContext) {
- log.debug("Updating props in " + abstractContext);
+ if (log.isDebugEnabled()) {
+ log.debug("Updating props in " + abstractContext);
+ }
if (abstractContext != null) {
for (Iterator iter = properties.keySet().iterator(); iter.hasNext();) {
String key = (String) iter.next();
@@ -46,8 +48,10 @@
abstractContext.removePropertyNonReplicable(key);
} else { // it is updated/added
abstractContext.setNonReplicableProperty(key, propDiff.getValue());
- log.debug("Added prop=" + key + ", value=" + propDiff.getValue() +
- " to context " + abstractContext);
+ if (log.isDebugEnabled()) {
+ log.debug("Added prop=" + key + ", value=" + propDiff.getValue() +
+ " to context " + abstractContext);
+ }
}
}
}
Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/UpdateServiceContextCommand.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/UpdateServiceContextCommand.java?rev=610033&r1=610032&r2=610033&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/UpdateServiceContextCommand.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/UpdateServiceContextCommand.java Tue Jan 8 07:55:53 2008
@@ -53,7 +53,9 @@
}
public void execute(ConfigurationContext configurationContext) throws ClusteringFault {
- log.debug("Updating service context properties...");
+ if (log.isDebugEnabled()) {
+ log.debug("Updating service context properties...");
+ }
ServiceGroupContext sgCtx =
configurationContext.getServiceGroupContext(serviceGroupContextId);
if (sgCtx != null) {
Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/UpdateServiceGroupContextCommand.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/UpdateServiceGroupContextCommand.java?rev=610033&r1=610032&r2=610033&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/UpdateServiceGroupContextCommand.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/UpdateServiceGroupContextCommand.java Tue Jan 8 07:55:53 2008
@@ -66,7 +66,9 @@
sgCtx.setId(serviceGroupContextId);
configContext.addServiceGroupContextIntoSoapSessionTable(sgCtx); // TODO: Check this
}
- log.debug("###### Gonna update SG prop in " + serviceGroupContextId + "===" + sgCtx);
+ if (log.isDebugEnabled()) {
+ log.debug("Gonna update SG prop in " + serviceGroupContextId + "===" + sgCtx);
+ }
propertyUpdater.updateProperties(sgCtx);
}
Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/control/GetConfigurationCommand.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/control/GetConfigurationCommand.java?rev=610033&r1=610032&r2=610033&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/control/GetConfigurationCommand.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/control/GetConfigurationCommand.java Tue Jan 8 07:55:53 2008
@@ -37,6 +37,8 @@
AxisConfiguration axisConfig = configCtx.getAxisConfiguration();
for (Iterator iter = axisConfig.getServiceGroups(); iter.hasNext();) {
AxisServiceGroup serviceGroup = (AxisServiceGroup) iter.next();
+
+ //TODO: Exclude all services loaded from modules. How to handle data services etc.?
serviceGroupNames.add(serviceGroup.getServiceGroupName());
}
this.serviceGroupNames =
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?rev=610033&r1=610032&r2=610033&view=diff
==============================================================================
--- 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 Tue Jan 8 07:55:53 2008
@@ -94,7 +94,9 @@
Member member = members[i];
String memberHost = TribesUtil.getHost(member);
if (member.isReady() && !ack.hasACKed(memberHost)) {
- log.debug("[NO ACK] from member " + memberHost);
+ if (log.isDebugEnabled()) {
+ log.debug("[NO ACK] from member " + memberHost);
+ }
// If a new member joined the cluster recently,
// we need to retransmit the message to this member, if an ACK has not been
@@ -103,8 +105,10 @@
!ack.isRestransmittedToMember(memberHost)) { // TODO: Check
sender.sendToMember(ack.getCommand(), member);
- log.debug("Retransimitting msg " + ack.getCommand().getUniqueId() +
- " to member " + memberHost);
+ if (log.isDebugEnabled()) {
+ log.debug("Retransimitting msg " + ack.getCommand().getUniqueId() +
+ " to member " + memberHost);
+ }
}
if (!isReturnValueSet) {
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?rev=610033&r1=610032&r2=610033&view=diff
==============================================================================
--- 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 Tue Jan 8 07:55:53 2008
@@ -139,7 +139,9 @@
log.warn("Received message before cluster initialization has been completed");
return;
}
- log.debug("Received message " + msg + " from " + TribesUtil.getHost(sender));
+ if (log.isDebugEnabled()) {
+ log.debug("Received message " + msg + " from " + TribesUtil.getHost(sender));
+ }
try {
processMessage(msg, sender);
} catch (Exception e) {
@@ -156,7 +158,9 @@
// Check for duplicate messages and ignore duplicates in order to support at-most-once semantics
if (receivedMessages.containsKey(msgId)) {
- log.debug("Received duplicate message " + ctxCmd);
+ if (log.isDebugEnabled()) {
+ log.debug("Received duplicate message " + ctxCmd);
+ }
receivedMessages.put(msgId, new Long(System.currentTimeMillis()));// Let's keep track of the message as well as the time at which it was last received
return;
}
@@ -198,6 +202,9 @@
for (Iterator iterator = toBeRemoved.iterator(); iterator.hasNext();) {
String msgId = (String) iterator.next();
receivedMessages.remove(msgId);
+ if (log.isDebugEnabled()) {
+ log.debug("Removed message " + msgId + " from received message buffer");
+ }
}
}
}
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?rev=610033&r1=610032&r2=610033&view=diff
==============================================================================
--- 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 Tue Jan 8 07:55:53 2008
@@ -49,30 +49,27 @@
// Keep retrying, since at the point of trying to send the msg, a member may leave the group
// causing a view change. All nodes in a view should get the msg
- //TODO: Sometimes Tribes incorrectly detects that a member has left a group
-// while (true) {
if (members.length > 0) {
try {
long start = System.currentTimeMillis();
channel.send(members, toByteMessage(msg), Channel.SEND_OPTIONS_USE_ACK);
timeToSend = System.currentTimeMillis() - start;
log.debug("Sent " + msg + " to group");
-// break;
} catch (NotSerializableException e) {
String message = "Could not send command message " + msg +
" to group since it is not serializable.";
log.error(message, e);
throw new ClusteringFault(message, e);
} catch (ChannelException e) {
- //TODO: What to do for faulty members
ChannelException.FaultyMember[] faultyMembers = e.getFaultyMembers();
for (int i = 0; i < faultyMembers.length; i++) {
ChannelException.FaultyMember faultyMember = faultyMembers[i];
Member member = faultyMember.getMember();
log.error("Member " + TribesUtil.getHost(member) + " is faulty. Cause " +
faultyMember.getCause(), faultyMember.getCause());
-
- //TODO: Shall we try to resend to these members?
+ if (!(e.getCause() instanceof java.net.ConnectException)) { // If it is not a connection exception, we try to resend the message
+ sendToMember(msg, member);
+ }
}
} catch (Exception e) {
@@ -81,10 +78,6 @@
log.warn(message, e);
}
}
-// else {
-// break;
-// }
-// }
return timeToSend;
}
@@ -128,7 +121,10 @@
} catch (ChannelException e) {
ChannelException.FaultyMember[] faultyMembers = e.getFaultyMembers();
log.error("Member " + TribesUtil.getHost(member) + " is faulty. Cause " +
- faultyMembers[0].getCause(), faultyMembers[0].getCause());
+ faultyMembers[0].getCause(), faultyMembers[0].getCause());
+ if (!(e.getCause() instanceof java.net.ConnectException)) { // If it is not a connection exception, we try to resend the message
+ sendToMember(cmd, member);
+ }
} catch (Exception e) {
String message = "Could not send message to " + TribesUtil.getHost(member) +
". Reason " + e.getMessage();
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org