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
- FailoverTransport preventing app server from stopping? Adam Lewandowski
-