Description
I configured clustering between 2 brokers (I called them alpha and beta). To configure clustering I added the following into the activemq.xml file:
<discoveryAgent>
<zeroconfDiscovery type="_activemq.broker.development."/>
</discoveryAgent>
<discoveryNetworkConnector/>
When I start the brokers up, clustering seems fine, as both brokers successfully join the cluster, and I'm able to use the example producer/consumer to send/receive from either of the brokers.
However, when I shutdown one of the brokers via kill (in this test run I killed beta), the remaining broker gets into a bad state, and ends up logging approximately 80 megs worth of this stack trace:
2005-06-27 14:34:38,203 [localport=1322]] WARN ActiveMQConnection - Async exception with no exception listener: javax.jms.JMSException: asyncSend failed: java.net.SocketException: Connection reset by peer: socket write error
javax.jms.JMSException: asyncSend failed: java.net.SocketException: Connection reset by peer: socket write error
at org.activemq.util.JMSExceptionHelper.newJMSException(JMSExceptionHelper.java:49)
at org.activemq.transport.tcp.TcpTransportChannel.doAsyncSend(TcpTransportChannel.java:479)
at org.activemq.transport.tcp.TcpTransportChannel.asyncSend(TcpTransportChannel.java:286)
at org.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnection.java:1190)
at org.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnection.java:1167)
at org.activemq.ActiveMQConnection.sendConnectionInfoToBroker(ActiveMQConnection.java:1452)
at org.activemq.ActiveMQConnection.close(ActiveMQConnection.java:757)
at org.activemq.ActiveMQConnection.onException(ActiveMQConnection.java:982)
at org.activemq.transport.TransportChannelSupport.onAsyncException(TransportChannelSupport.java:445)
at org.activemq.transport.tcp.TcpTransportChannel.doAsyncSend(TcpTransportChannel.java:480)
at org.activemq.transport.tcp.TcpTransportChannel.asyncSend(TcpTransportChannel.java:286)
at org.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnection.java:1190)
at org.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnection.java:1167)
at org.activemq.ActiveMQConnection.sendConnectionInfoToBroker(ActiveMQConnection.java:1452)
at org.activemq.ActiveMQConnection.close(ActiveMQConnection.java:757)
at org.activemq.ActiveMQConnection.onException(ActiveMQConnection.java:982)
at org.activemq.transport.TransportChannelSupport.onAsyncException(TransportChannelSupport.java:445)
at org.activemq.transport.tcp.TcpTransportChannel.doAsyncSend(TcpTransportChannel.java:480)
at org.activemq.transport.tcp.TcpTransportChannel.asyncSend(TcpTransportChannel.java:286)
at org.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnection.java:1190)
at org.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnection.java:1167)
at org.activemq.ActiveMQConnection.sendConnectionInfoToBroker(ActiveMQConnection.java:1452)
at org.activemq.ActiveMQConnection.close(ActiveMQConnection.java:757)
at org.activemq.ActiveMQConnection.onException(ActiveMQConnection.java:982)
at org.activemq.transport.TransportChannelSupport.onAsyncException(TransportChannelSupport.java:445)
at org.activemq.transport.tcp.TcpTransportChannel.doClose(TcpTransportChannel.java:509)
at org.activemq.transport.tcp.TcpTransportChannel.run(TcpTransportChannel.java:326)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.net.SocketException: Connection reset by peer: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at org.activemq.transport.tcp.TcpBufferedOutputStream.flush(TcpBufferedOutputStream.java:109)
at java.io.DataOutputStream.flush(DataOutputStream.java:106)
at org.activemq.transport.tcp.TcpTransportChannel.doAsyncSend(TcpTransportChannel.java:471)
... 26 more
After restarting the beta broker I just killed, it seems to join the cluster properly, but as soon as I connect the consumer example to the alpha broker, the alpha proceeds to log another 80 megs worth of the same exceptions.