Author: azeez
Date: Mon Jun 27 16:45:53 2011
New Revision: 1140231
URL: http://svn.apache.org/viewvc?rev=1140231&view=rev
Log:
1. Ability to suspend a member - this is used in cases such as the Synapse LB
where members causing errors should be temporarilly suspended
2. After a member joins, need to wait for sometime (10s in this impl), until we
can start sending messages to it
Modified:
axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/management/DefaultGroupManagementAgent.java
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/Member.java
Modified:
axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/management/DefaultGroupManagementAgent.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/management/DefaultGroupManagementAgent.java?rev=1140231&r1=1140230&r2=1140231&view=diff
==============================================================================
---
axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/management/DefaultGroupManagementAgent.java
(original)
+++
axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/management/DefaultGroupManagementAgent.java
Mon Jun 27 16:45:53 2011
@@ -96,11 +96,11 @@ public class DefaultGroupManagementAgent
return;
}
if (canConnect(member)) {
- // try
- // Thread.sleep(10000); // Sleep for
sometime to allow complete initialization of the node
- // } catch (InterruptedException e) {
- // e.printStackTrace();
- // }
+ try {
+ Thread.sleep(10000); // Sleep for sometime to allow
complete initialization of the node
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
if (!members.contains(member)) {
members.add(member);
}
Modified:
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/Member.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/Member.java?rev=1140231&r1=1140230&r2=1140231&view=diff
==============================================================================
---
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/Member.java
(original)
+++
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/Member.java
Mon Jun 27 16:45:53 2011
@@ -57,11 +57,46 @@ public class Member {
*/
private Properties properties = new Properties();
+ /**
+ * Time at which this member was suspended
+ */
+ private long suspendedTime = -1;
+
+ /**
+ * Time in millis which this member should be suspended
+ */
+ private long suspensionDuration = -1;
+
public Member(String hostName, int port) {
this.hostName = hostName;
this.port = port;
}
+ /**
+ * Temporarilly suspend this member
+ * @param suspensionDurationMillis The time duration in millis in which
this member should be suspended
+ */
+ public void suspend(long suspensionDurationMillis){
+ this.suspendedTime = System.currentTimeMillis();
+ this.suspensionDuration = suspensionDurationMillis;
+ }
+
+ /**
+ * Check whether this member is suspended
+ * @return true if this member is still suspended, false oterwise
+ */
+ public boolean isSuspended() {
+ if (suspendedTime == -1) {
+ return false;
+ }
+ if (System.currentTimeMillis() - suspendedTime >= suspensionDuration) {
+ this.suspendedTime = -1;
+ this.suspensionDuration = -1;
+ return false;
+ }
+ return true;
+ }
+
public String getHostName() {
return hostName;
}