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

Reply via email to