I am using a very simple config of embedded, networked brokers to
facilitate inter-cluster communication in my app. I am using
multicast networkConnectors as indicated in the file below.
Everything works fine until I disable the network on one node. As
expected the remaining nodes loose connectivity with the disabled
node. But when I plug the node back into the network, the other nodes
do NOT reestablish their connections with the now-restored node. I do
not see exceptions in the logs after I restore the lost nodes
network. I assumed that because I was using multicast discovery that
once announcements resumed the connections would be restablished. Any
ideas what I could be doing wrong?
My configuration is
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xbean.org/schemas/spring/1.0" xmlns:amq="http://
activemq.org/config/1.0">
<amq:broker persistent="true" id="broker" brokerName="$
{node.id}MQ" useJmx="true">
<amq:persistenceAdapter>
<amq:kahaPersistenceAdapter dir="#dataDir"
maxDataFileLength="33554432" />
</amq:persistenceAdapter>
<amq:transportConnectors>
<amq:transportConnector uri="tcp://${mq.broker.address}:$
{mq.broker.port}" />
<amq:transportConnector uri="vm://${node.id}MQ" />
</amq:transportConnectors>
<amq:networkConnectors>
<amq:networkConnector uri="multicast://$
{mq.broker.multicast.address}:${mq.broker.multicast.port}"/>
</amq:networkConnectors>
</amq:broker>
<!-- Directories relative to web app -->
<bean id="servletContext"
class="org.springframework.web.context.support.ServletContextFactoryBean
" />
<bean id="dataDir" class="org.springframework.web.util.WebUtils"
factory-method="getRealPath">
<constructor-arg ref="servletContext" />
<constructor-arg value="/amq-data" />
</bean>
</beans>