I have a standalone app that uses two SimpleMessageListenerContainer objects. One listens to a queue to process client requests and the other listens to a topic to process administrative messages (there are many instances of this app running in a "cloud" :-) )
One of the admin messages tells the app to shut down. When it receives the shutdown message the app calls SimpleMessageListenerContainer.shutdown on both containers. Prior to processing any client requests from the queue the application terminates after shutting down the SimpleMessageListenerContainer objects. So far so good. After processing a queue request (i.e. a reply to queue has been created) the application no longer terminates because the thread in which the reply to messages are sent is still running.
Is there a way that this thread/queue can be shut down programatically so the app will terminate when it receives a shutdown message?