properties.setProperty("recoverySleepTime", String.valueOf(recoverySleepTime));
}
+ public void setLocalLoopbackDisabled(boolean localLoopbackDisabled) {
+ properties.setProperty("localLoopbackDisabled",String.valueOf(localLoopbackDisabled));
+ }
/**
* @deprecated use getPort()
ttl,
soTimeout,
this,
- this);
+ this,
+ Boolean.valueOf(properties.getProperty("localLoopbackDisabled","false")).booleanValue());
String value = properties.getProperty("recoveryEnabled","true");
boolean recEnabled = Boolean.valueOf(value).booleanValue() ;
impl.setRecoveryEnabled(recEnabled);
protected ExecutorService executor = new ThreadPoolExecutor(0, 2, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>());
/**
+ * disable/enable local loopback message
+ */
+ protected boolean localLoopbackDisabled = false;
+
+ /**
* Create a new mcast service impl
* @param member - the local member
* @param sendFrequency - the time (ms) in between pings sent out
* @param bind - the bind address (not sure this is used yet)
* @param mcastAddress - the mcast address
* @param service - the callback service
+ * @param disableLoopbackMode - disable loopbackMode
* @throws IOException
*/
public McastServiceImpl(
int ttl,
int soTimeout,
MembershipListener service,
- MessageListener msgservice)
+ MessageListener msgservice,
+ boolean localLoopbackDisabled)
throws IOException {
this.member = member;
this.address = mcastAddress;
this.service = service;
this.msgservice = msgservice;
this.sendFrequency = sendFrequency;
+ this.localLoopbackDisabled = localLoopbackDisabled;
init();
}
} else {
socket = new MulticastSocket(port);
}
- socket.setLoopbackMode(true); //hint that we don't need loop back messages
+ socket.setLoopbackMode(localLoopbackDisabled); //hint if we want disable loop back(local machine) messages
if (mcastBindAddress != null) {
if(log.isInfoEnabled())
log.info("Setting multihome multicast interface to:" +mcastBindAddress);
The default is <code>5000</code> (5 seconds). <br/>
</p>
</attribute>
+
+ <attribute name="localLoopbackDisabled" required="false">
+ <p>
+ Membership uses multicast, it will call <code>java.net.MulticastSocket.setLoopbackMode(localLoopbackDisabled)</code>.
+ When <code>localLoopbackDisabled==true</code> multicast messages will not reach other nodes on the same local machine.
+ The default is <code>false</code>. <br/>
+ </p>
+ </attribute>
</attributes>