Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Incomplete
-
5.2.0
-
None
-
Cygwin in Windows XP; JDK 1.6.0_01-b06, ActiveMQ 5.0 snapshot (rev. 551727)
Description
Toplogy:
A network of brokers (3 or more brokers) in a star configuration, each broker interconnected to all other brokers in the network.
Discovery:
This problem happens with both static connection and auto-discovery through multi-cast
Broker Conf File: All brokers have a simple configuration as the one below:
<beans>
<broker brokerName="sender" persistent="false" useJmx="false" xmlns="http://activemq.org/config/1.0">
<transportConnectors>
<transportConnector uri="tcp://localhost:62001" />
</transportConnectors>
<networkConnectors>
<networkConnector uri="static:(tcp://localhost:62002,tcp://localhost:62003,tcp://localhost:62004)"/>
</networkConnectors>
<persistenceAdapter>
<memoryPersistenceAdapter/>
</persistenceAdapter>
</broker>
</beans>
How to reproduce:
1. Start three brokers with names A, B, and C at port 62001, 62002, and 62003 respectively.
2. Kill broker C (or any of the three brokers) via CTRL-C. Observe the other borkers now gets into recovery mode trying to reconnect to C
3. Restart C. Notice one of both of the remaining brokers (i.e. A and B) now throws InvalidClientIDException exception. If it does not happen the first
time, repeat until the exception occurs.
When the exception happens, C can no longer join the broker network. The only way to recover is to shutdown and restart all three brokers.
This does not seem to happen when there are only two brokers involved. It happens predictably in my environment when more then two brokers are involved.