Author: fhanik Date: Fri Aug 17 12:34:03 2007 New Revision: 567115 URL: http://svn.apache.org/viewvc?view=rev&rev=567115 Log: Enable configuration of all properties, including the recovery turn/on/off
Modified: tomcat/trunk/java/org/apache/catalina/tribes/membership/McastService.java tomcat/trunk/java/org/apache/catalina/tribes/membership/McastServiceImpl.java Modified: tomcat/trunk/java/org/apache/catalina/tribes/membership/McastService.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/membership/McastService.java?view=diff&rev=567115&r1=567114&r2=567115 ============================================================================== --- tomcat/trunk/java/org/apache/catalina/tribes/membership/McastService.java (original) +++ tomcat/trunk/java/org/apache/catalina/tribes/membership/McastService.java Fri Aug 17 12:34:03 2007 @@ -217,6 +217,19 @@ public void setPort(int port) { properties.setProperty("mcastPort", String.valueOf(port)); } + + public void setRecoveryCounter(int recoveryCounter) { + properties.setProperty("recoveryCounter", String.valueOf(recoveryCounter)); + } + + public void setRecoveryEnabled(boolean recoveryEnabled) { + properties.setProperty("recoveryEnabled", String.valueOf(recoveryEnabled)); + } + + public void setRecoverySleepTime(long recoverySleepTime) { + properties.setProperty("recoverySleepTime", String.valueOf(recoverySleepTime)); + } + /** * @deprecated use getPort() @@ -348,6 +361,13 @@ ttl, soTimeout, this); + boolean recEnabled = Boolean.getBoolean(properties.getProperty("recoveryEnabled","true")); + impl.setRecoveryEnabled(recEnabled); + int recCnt = Integer.parseInt(properties.getProperty("recoveryCounter","10")); + impl.setRecoveryCounter(recCnt); + long recSlpTime = Long.parseLong(properties.getProperty("recoverySleepTime","5000")); + impl.setRecoverySleepTime(recSlpTime); + impl.start(level); Modified: tomcat/trunk/java/org/apache/catalina/tribes/membership/McastServiceImpl.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/membership/McastServiceImpl.java?view=diff&rev=567115&r1=567114&r2=567115 ============================================================================== --- tomcat/trunk/java/org/apache/catalina/tribes/membership/McastServiceImpl.java (original) +++ tomcat/trunk/java/org/apache/catalina/tribes/membership/McastServiceImpl.java Fri Aug 17 12:34:03 2007 @@ -21,14 +21,14 @@ import java.io.IOException; import java.net.DatagramPacket; import java.net.InetAddress; +import java.net.InetSocketAddress; import java.net.MulticastSocket; - -import org.apache.catalina.tribes.MembershipListener; -import java.util.Arrays; import java.net.SocketTimeoutException; -import org.apache.catalina.tribes.Member; +import java.util.Arrays; + import org.apache.catalina.tribes.Channel; -import java.net.InetSocketAddress; +import org.apache.catalina.tribes.Member; +import org.apache.catalina.tribes.MembershipListener; /** * A <b>membership</b> implementation using simple multicast. @@ -126,6 +126,15 @@ protected int recoveryCounter = 10; /** + * The time the recovery thread sleeps between recovery attempts + */ + protected long recoverySleepTime = 5000; + + /** + * Add the ability to turn on/off recovery + */ + protected boolean recoveryEnabled = true; + /** * Create a new mcast service impl * @param member - the local member * @param sendFrequency - the time (ms) in between pings sent out @@ -365,6 +374,17 @@ return this.serviceStartTime; } + public int getRecoveryCounter() { + return recoveryCounter; + } + + public boolean isRecoveryEnabled() { + return recoveryEnabled; + } + + public long getRecoverySleepTime() { + return recoverySleepTime; + } public class ReceiverThread extends Thread { int errorCounter = 0; @@ -431,6 +451,7 @@ public static synchronized boolean init(RecoveryThread t) { if ( running ) return false; + if ( !t.parent.isRecoveryEnabled()) return false; running = true; t.setName("Tribes-MembershipRecovery"); t.setDaemon(true); @@ -470,7 +491,7 @@ try { if (!success) { log.info("Recovery attempt "+(++attempt)+" failed, trying again in 5 seconds"); - Thread.sleep(5000); + Thread.sleep(parent.recoverySleepTime); } }catch (InterruptedException ignore) { } @@ -479,5 +500,17 @@ running = false; } }//run + } + + public void setRecoveryCounter(int recoveryCounter) { + this.recoveryCounter = recoveryCounter; + } + + public void setRecoveryEnabled(boolean recoveryEnabled) { + this.recoveryEnabled = recoveryEnabled; + } + + public void setRecoverySleepTime(long recoverySleepTime) { + this.recoverySleepTime = recoverySleepTime; } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]