Found an existing open issue for this, AMQ-1116. I've submitted a patch
for it, slightly different than the patch already on the ticket. Any
chance it can be included in the next release?
Adam Lewandowski wrote:
I'm using Spring's DefaultMessageListenerContainer inside of an app
server instance to connect to a network of brokers using a failover
transport. If the broker network becomes unavailable, the client
correctly goes in to a loop attempting to reconnect. However,
attempting to gracefully shut down the app server in which the client
is running does not succeed. The FailoverTransport running within the
DefaultMessageListenerContainer's thread is stuck in the
reconnectTask's loop, repeatedly attempting to connect to broker
network. Because this thread doesn't exit, the app server is hung and
unable to stop. I've recreated this behavior in both Tomcat and
WebSphere 5.1.
Is there some way to let the FailoverTransport that the show is over
and it can go home? I see that calling stop() on the transport is
about the only way to get it out of the loop, but I'm not sure how to
accomplish that or if I do that it will ever acquire the
reconnectMutex lock in time to do anything.
Thanks,
Adam Lewandowski