Author: rjung
Date: Tue Mar 17 18:56:56 2009
New Revision: 755351
URL: http://svn.apache.org/viewvc?rev=755351&view=rev
Log:
Two backports from trunk:
- Fix not wanting to receive node local heartbeat
on multicast socket.
- BZ 43641: Fix setting multicast bind address
on multihomed computers.
Modified:
tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/mcast/McastServiceImpl.java
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/membership/McastServiceImpl.java
Modified: tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml?rev=755351&r1=755350&r2=755351&view=diff
==============================================================================
--- tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml (original)
+++ tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml Tue Mar 17 18:56:56 2009
@@ -33,6 +33,12 @@
<subsection name="Cluster">
<changelog>
<fix>
+ Fix not wanting to receive node local heartbeat on multicast socket.
(rjung)
+ </fix>
+ <fix>
+ <bug>43641</bug>: Fix setting multicast bind address on multihomed
computers. (rjung)
+ </fix>
+ <fix>
Fix small memory leak in FarmWarDeployer. Backport from Tomcat 6.0.
(rjung)
</fix>
<fix>
Modified:
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/mcast/McastServiceImpl.java
URL:
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/mcast/McastServiceImpl.java?rev=755351&r1=755350&r2=755351&view=diff
==============================================================================
---
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/mcast/McastServiceImpl.java
(original)
+++
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/mcast/McastServiceImpl.java
Tue Mar 17 18:56:56 2009
@@ -166,10 +166,23 @@
}
protected void setupSocket() throws IOException {
- if (mcastBindAddress != null) socket = new MulticastSocket(new
java.net.
- InetSocketAddress(mcastBindAddress, port));
- else socket = new MulticastSocket(port);
- socket.setLoopbackMode(false); //hint that we don't need loop back
messages
+ if (mcastBindAddress != null) {
+ try {
+ log.info("Attempting to bind the multicast socket to
"+address+":"+port);
+ socket = new MulticastSocket(new
InetSocketAddress(address,port));
+ } catch (BindException e) {
+ /*
+ * On some plattforms (e.g. Linux) it is not possible to bind
+ * to the multicast address. In this case only bind to the
+ * port.
+ */
+ log.info("Binding to multicast address, failed. Binding to
port only.");
+ socket = new MulticastSocket(port);
+ }
+ } else {
+ socket = new MulticastSocket(port);
+ }
+ socket.setLoopbackMode(true); //hint that we don't need loop back
messages
if (mcastBindAddress != null) {
if(log.isInfoEnabled())
log.info("Setting multihome multicast interface to:" +
Modified:
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/membership/McastServiceImpl.java
URL:
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/membership/McastServiceImpl.java?rev=755351&r1=755350&r2=755351&view=diff
==============================================================================
---
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/membership/McastServiceImpl.java
(original)
+++
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/membership/McastServiceImpl.java
Tue Mar 17 18:56:56 2009
@@ -178,10 +178,23 @@
}
protected void setupSocket() throws IOException {
- if (mcastBindAddress != null) socket = new MulticastSocket(new
java.net.
- InetSocketAddress(mcastBindAddress, port));
- else socket = new MulticastSocket(port);
- socket.setLoopbackMode(false); //hint that we don't need loop back
messages
+ if (mcastBindAddress != null) {
+ try {
+ log.info("Attempting to bind the multicast socket to
"+address+":"+port);
+ socket = new MulticastSocket(new
InetSocketAddress(address,port));
+ } catch (BindException e) {
+ /*
+ * On some plattforms (e.g. Linux) it is not possible to bind
+ * to the multicast address. In this case only bind to the
+ * port.
+ */
+ log.info("Binding to multicast address, failed. Binding to
port only.");
+ socket = new MulticastSocket(port);
+ }
+ } else {
+ socket = new MulticastSocket(port);
+ }
+ socket.setLoopbackMode(true); //hint that we don't need loop back
messages
if (mcastBindAddress != null) {
if(log.isInfoEnabled())
log.info("Setting multihome multicast interface to:" +
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]