Hi camel-jetty does not currently support shutting down by stopping intaking new requests while allowing existing to be processed to completion. In fact this is something that each individual component has to implemented.
This can be done by supporting the SuspendableService on the consumer. Then the graceful shutdown in camel-core will be able to leverage it. For example this has been implemented in camel-jms etc. On Tue, Apr 20, 2010 at 12:10 AM, Ilya S <devmailboxl...@gmail.com> wrote: > Hi Claus, > > The test cases were helpful. However, the reason I cannot use "Defer" > option is because my Jetty input point is public, and if I have this > option set, then the new messages will keep comming from the clients > and the context will never be done. My goal is stop processesing > gracefully while not acceptin new messages. E.g. Jetty entry point > should not accept any new messages, while it should still let the > pending messages finish. > In our use case, once jetty component stops acceptin new messages, our > load ballancer will take it off the pool, however, we would still like > the in flight messages to finish. > The issue seems only occur when I use Jetty and JMS together. > > The simple route with just one jetty consumer such as the one below > seems to shutdown just fine : > from("jetty:http://0.0.0.0:8686/hello") > .delay(5000) > .to("multiplier"); > > If I add a jms producer to the mix as follows, things break: > from("jetty:http://0.0.0.0:8686/hello") > .delay(5000) > .to("jms:queue:numbers2?requestTimeout=50000") > .to("multiplier"); > > The other queue is running in a different context, but I don't think > this should matter. > > Please, let me know if you think I'm misusing the API, or if it is an > actual bug. > > Thanks again, > Ilya. > -- Claus Ibsen Apache Camel Committer Author of Camel in Action: http://www.manning.com/ibsen/ Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/ Twitter: http://twitter.com/davsclaus