[rabbitmq-discuss] RabbitMQ RPC in Tomcat container
steven.willems at i-develop.be
steven.willems at i-develop.be
Fri Jul 26 00:30:51 BST 2013
Managed to get it working:
* passed in my own ExecutorService when creating the connection and stored
it in the ServletContextListener
* Used Executors.newCachedThreadPool(); -> not necessary, but is good as
many short executions, and unused threads die after 60s idle time
* Shutdown threads in ServletContextListener.destroyed(). First thought
this didn't work as my breakpoint was not reached, but somehow, breakpoint
just seem not to work there (could make sense when I think about it, I'm
stopping the process so debugger might already be detached). But logging
assures me now my code is executed.
ServletContextListener.destroyed() {
executorService.shutdown();
executorService.awaitTermination(20, TimeUnit.SECONDS);
}
And that's it :)
Op woensdag 24 juli 2013 17:08:32 UTC+2 schreef steven.... at i-develop.be het
volgende:
>
> I'm trying to setup RabbitMQ RPC in a web project (like suggested in tutorial
> 6 <http://www.rabbitmq.com/tutorials/tutorial-six-java.html>). It works
> as intended, but when I try to shutdown Tomcat, the shutdown hangs as soon
> as I have created a consumer listening to the rpc response.
>
> jstack and some debugging learned me that for each created consumer, a
> thread is created. And those threads are preventing Tomcat from shutting
> down (as they are not managed by Tomcat).
>
> Looking at ConsumerWorkService, there is a method addWork, which creates
> a new WorkPoolRunnable and if I have understood it correctly, those
> Runnable's are only stopped when the 'key', being the channel is stopped.
>
> I find that a bit odd.. I would expect that when I call stub.channel.basicCancel(consumer.getConsumerTag());
> the runnable for the consumer is removed.
>
> Or am I completely wrong about my findings and is something else going on?
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20130725/dd653d30/attachment-0001.htm>
More information about the rabbitmq-discuss
mailing list