Multicast discovery failure due to "alive" heartbeats not received on some 
multihomed systems
---------------------------------------------------------------------------------------------

                 Key: AMQ-2842
                 URL: https://issues.apache.org/activemq/browse/AMQ-2842
             Project: ActiveMQ
          Issue Type: Improvement
          Components: Connector
    Affects Versions: 5.3.2
         Environment: Windows 2008, multiple NICs / IP addresses
            Reporter: John McCarthy
            Priority: Minor


Ocassionaly, on some multihomed Windows 2008 systems, brokers cannot be 
discovered using multicast discovery.  After investigating, it was determined 
that the broker "alive" heartbeats were not being received by the 
MulticastDiscoveryAgent.  This was traced back to issues with joining the 
multicast group using the default network interface.  As Windows socket 
documentation states,
bq. It is recommended that a local IPv4 address or interface index always be 
specified in the imr_interface member of the ip_mreq  structure, rather than 
use the default interface. This is particularly important on computers with 
multiple network interfaces and multiple public IPv4 addresses. 
([source|http://msdn.microsoft.com/en-us/library/ms738695%28v=VS.85%29.aspx])

[AMQ-2381]  was submitted with similar issues for multihomed Windows systems.  
It was resolved by adding network interface parameters that plumbed through to 
{{MulticastSocket.setNetworkInterface(NetworkInterface)}} and 
{{MulticastSocket.setInterface(InetAddress)}}.  However, this set only affects 
what network interface the multicast traffic is sent on.  Another parameter is 
also needed to control what network interface multicast traffic is received on, 
plumbed through to {{MulticastSocket.join(SocketAddress, NetworkInterface)}}.  
(The same {{networkInterface}} parameter could be overloaded, but this could be 
troublesome for backwards compatibility with the current URI specification.)  

The attached patch is a proposal to add a new {{joinNetworkInterface}} 
parameter plumbed through to {{MulticastSocket.join(SocketAddress, 
NetworkInterface)}}.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to