Claus, thanks for your response. If I use the Defer option on both of my routes (jetty and jms) then the system does not shut down because new messages are constantly coming from my clients (producers).
I tried the other scenario, recommended in the documentation: In my case the jetty route is a 'public' route that should be shutdown quickly (so that no new messages are accepted). So I removed the 'Defered' option there. The second route (jms route running in a separate camel context) is 'internal', and I set the 'Defer' option on it. With this configuration I'm still getting the same errors errors. Should I try this in Camel 2.3 instead? Thank you very much. Ilya. On Mon, Apr 19, 2010 at 11:09 AM, Claus Ibsen <claus.ib...@gmail.com> wrote: > See this unit test > http://svn.apache.org/viewvc?rev=935691&view=rev > > On Mon, Apr 19, 2010 at 7:52 PM, Claus Ibsen <claus.ib...@gmail.com> wrote: >> Hi >> >> Just defer shutting down the Jetty route. >> http://camel.apache.org/graceful-shutdown.html >> >> On Mon, Apr 19, 2010 at 7:08 PM, Ilya S <devmailboxl...@gmail.com> wrote: >>> I'd like to bump this thread up, and see if anyone has any suggestions. >>> Thanks. >>> >>> On Thu, Apr 15, 2010 at 10:24 AM, Ilya S <devmailboxl...@gmail.com> wrote: >>>> Here is a more detailed log (with TRACE level on) if that can help: >>>> >>>> [CP Connection(4)-10.58.123.154] DefaultCamelContext INFO >>>> Apache Camel 2.2.0 (CamelContext:camel) is stopping >>>> [CP Connection(4)-10.58.123.154] DefaultShutdownStrategy INFO >>>> Starting to graceful shutdown routes (timeout 600000 seconds) >>>> [ Camel thread 11: ShutdownTask] DefaultShutdownStrategy DEBUG >>>> There are 1 routes to shutdown >>>> [ Camel thread 11: ShutdownTask] DefaultShutdownStrategy TRACE >>>> Shutting down route: route1 with options >>>> [Default,CompleteCurrentTaskOnly] >>>> [ Camel thread 11: ShutdownTask] DefaultShutdownStrategy TRACE >>>> Shutting down: Consumer[http://0.0.0.0:8686/hello] >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service Consumer[http://0.0.0.0:8686/hello] >>>> [ Camel thread 11: ShutdownTask] log DEBUG >>>> Container ser...@8032df - selectchannelconnec...@0.0.0.0:8686 as >>>> connector >>>> [ Camel thread 11: ShutdownTask] log DEBUG >>>> stopped org.mortbay.jetty.nio.selectchannelconnecto...@28df48 >>>> [ Camel thread 11: ShutdownTask] log DEBUG >>>> stopped selectchannelconnec...@0.0.0.0:8686 >>>> [ Camel thread 11: ShutdownTask] log DEBUG >>>> stopping ser...@8032df >>>> [ Camel thread 11: ShutdownTask] log DEBUG >>>> stopping contexthandlercollect...@8bfdea >>>> [ Camel thread 11: ShutdownTask] log DEBUG >>>> stopping org.mortbay.jetty.servlet.cont...@1157f77{/,null} >>>> [ Camel thread 11: ShutdownTask] log DEBUG >>>> stopping servlethand...@6399ae >>>> [ Camel thread 11: ShutdownTask] log DEBUG >>>> stopped org.apache.camel.component.http.CamelServlet-29615099 >>>> [ Camel thread 11: ShutdownTask] log DEBUG >>>> stopped servlethand...@6399ae >>>> [ Camel thread 11: ShutdownTask] log DEBUG >>>> stopping errorhand...@56acfa >>>> [ Camel thread 11: ShutdownTask] log DEBUG >>>> stopped errorhand...@56acfa >>>> [ Camel thread 11: ShutdownTask] log DEBUG >>>> stopped org.mortbay.jetty.servlet.cont...@1157f77{/,null} >>>> [ Camel thread 11: ShutdownTask] log DEBUG >>>> stopped contexthandlercollect...@8bfdea >>>> [3850...@qtp-9243153-3 - /hello] InstrumentationProcessor TRACE >>>> to: Recording duration: 2342 millis for exchange: Exchange[Message: 2] >>>> [3850...@qtp-9243153-3 - /hello] InstrumentationProcessor TRACE >>>> to: Recording duration: 2342 millis for exchange: Exchange[Message: 2] >>>> [3850...@qtp-9243153-3 - /hello] DefaultExceptionPolicyStrategy TRACE >>>> Finding best suited exception policy for thrown exception >>>> java.lang.InterruptedException >>>> [3850...@qtp-9243153-3 - /hello] DefaultExceptionPolicyStrategy TRACE >>>> Found 0 candidates >>>> [2390...@qtp-9243153-4 - /hello] JmsProducer DEBUG >>>> Future interrupted: java.lang.InterruptedException >>>> java.lang.InterruptedException >>>> at >>>> java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:926) >>>> at >>>> java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1201) >>>> at >>>> java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:210) >>>> at java.util.concurrent.FutureTask.get(FutureTask.java:85) >>>> at >>>> org.apache.camel.component.jms.JmsProducer.processInOut(JmsProducer.java:227) >>>> at >>>> org.apache.camel.component.jms.JmsProducer.process(JmsProducer.java:147) >>>> at >>>> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:97) >>>> at >>>> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:95) >>>> at >>>> org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:146) >>>> at >>>> org.apache.camel.processor.SendProcessor.doProcess(SendProcessor.java:94) >>>> at >>>> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:82) >>>> at >>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) >>>> at >>>> org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53) >>>> at >>>> org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82) >>>> at >>>> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:93) >>>> at >>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) >>>> at >>>> org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:177) >>>> at >>>> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:143) >>>> at >>>> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88) >>>> at >>>> org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49) >>>> at >>>> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:228) >>>> at org.apache.camel.processor.Pipeline.process(Pipeline.java:74) >>>> at >>>> org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:66) >>>> at >>>> org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48) >>>> at >>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) >>>> at >>>> org.apache.camel.component.http.CamelServlet.service(CamelServlet.java:53) >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) >>>> at >>>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) >>>> at >>>> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390) >>>> at >>>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) >>>> at >>>> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) >>>> at >>>> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) >>>> at org.mortbay.jetty.Server.handle(Server.java:322) >>>> at >>>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) >>>> at >>>> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938) >>>> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755) >>>> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) >>>> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) >>>> at >>>> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) >>>> at >>>> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) >>>> [1671...@qtp-9243153-2 - /hello] InstrumentationProcessor TRACE >>>> to: Recording duration: 19757 millis for exchange: Exchange[Message: >>>> 1] >>>> [3850...@qtp-9243153-3 - /hello] DefaultErrorHandler DEBUG >>>> Failed delivery for exchangeId: 21b68982-8ec1-405b-97d8-56f6e533115f. >>>> On delivery attempt: 0 caught: java.lang.InterruptedException >>>> [1671...@qtp-9243153-2 - /hello] InstrumentationProcessor TRACE >>>> to: Recording duration: 19758 millis for exchange: Exchange[Message: >>>> 1] >>>> [3850...@qtp-9243153-3 - /hello] DefaultTypeConverter TRACE >>>> Converting java.lang.Boolean -> java.lang.Object with value: false >>>> [3850...@qtp-9243153-3 - /hello] DefaultErrorHandler ERROR >>>> Failed delivery for exchangeId: 21b68982-8ec1-405b-97d8-56f6e533115f. >>>> Exhausted after delivery attempt: 1 caught: >>>> java.lang.InterruptedException >>>> java.lang.InterruptedException >>>> at org.apache.log4j.spi.LoggingEvent.<init>(LoggingEvent.java:154) >>>> at org.apache.log4j.Category.forcedLog(Category.java:388) >>>> at org.apache.log4j.Category.log(Category.java:853) >>>> at >>>> org.apache.commons.logging.impl.Log4JLogger.debug(Log4JLogger.java:188) >>>> at >>>> org.apache.camel.component.jms.JmsProducer.processInOut(JmsProducer.java:231) >>>> at >>>> org.apache.camel.component.jms.JmsProducer.process(JmsProducer.java:147) >>>> at >>>> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:97) >>>> at >>>> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:95) >>>> at >>>> org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:146) >>>> at >>>> org.apache.camel.processor.SendProcessor.doProcess(SendProcessor.java:94) >>>> at >>>> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:82) >>>> at >>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) >>>> at >>>> org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53) >>>> at >>>> org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82) >>>> at >>>> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:93) >>>> at >>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) >>>> at >>>> org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:177) >>>> at >>>> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:143) >>>> at >>>> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88) >>>> at >>>> org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49) >>>> at >>>> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:228) >>>> at org.apache.camel.processor.Pipeline.process(Pipeline.java:74) >>>> at >>>> org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:66) >>>> at >>>> org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48) >>>> at >>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) >>>> at >>>> org.apache.camel.component.http.CamelServlet.service(CamelServlet.java:53) >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) >>>> at >>>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) >>>> at >>>> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390) >>>> at >>>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) >>>> at >>>> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) >>>> at >>>> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) >>>> at org.mortbay.jetty.Server.handle(Server.java:322) >>>> at >>>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) >>>> at >>>> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938) >>>> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755) >>>> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) >>>> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) >>>> at >>>> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) >>>> at >>>> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) >>>> [2390...@qtp-9243153-4 - /hello] InstrumentationProcessor TRACE >>>> to: Recording duration: 1826 millis for exchange: Exchange[Message: 3] >>>> [1671...@qtp-9243153-2 - /hello] DefaultExceptionPolicyStrategy TRACE >>>> Finding best suited exception policy for thrown exception >>>> java.lang.InterruptedException >>>> [3850...@qtp-9243153-3 - /hello] DefaultTypeConverter TRACE >>>> Converting java.lang.Boolean -> java.lang.Object with value: false >>>> [2390...@qtp-9243153-4 - /hello] InstrumentationProcessor TRACE >>>> to: Recording duration: 1827 millis for exchange: Exchange[Message: 3] >>>> [1671...@qtp-9243153-2 - /hello] DefaultExceptionPolicyStrategy TRACE >>>> Found 0 candidates >>>> [3850...@qtp-9243153-3 - /hello] DefaultErrorHandler DEBUG >>>> This exchange is not handled so its marked as failed: >>>> Exchange[Message: 2] >>>> [2390...@qtp-9243153-4 - /hello] DefaultExceptionPolicyStrategy TRACE >>>> Finding best suited exception policy for thrown exception >>>> org.apache.camel.ExchangeTimedOutException >>>> [1671...@qtp-9243153-2 - /hello] DefaultErrorHandler DEBUG >>>> Failed delivery for exchangeId: 915083b6-4291-4716-929d-aa451e29e495. >>>> On delivery attempt: 0 caught: java.lang.InterruptedException >>>> [2390...@qtp-9243153-4 - /hello] DefaultExceptionPolicyStrategy TRACE >>>> Found 0 candidates >>>> [3850...@qtp-9243153-3 - /hello] Pipeline DEBUG >>>> Message exchange has failed so breaking out of pipeline: >>>> Exchange[Message: 2] Exception: java.lang.InterruptedException >>>> [1671...@qtp-9243153-2 - /hello] DefaultTypeConverter TRACE >>>> Converting java.lang.Boolean -> java.lang.Object with value: false >>>> [2390...@qtp-9243153-4 - /hello] DefaultErrorHandler DEBUG >>>> Failed delivery for exchangeId: 5903a17f-bff9-4ba5-b8f4-78bc96149195. >>>> On delivery attempt: 0 caught: >>>> org.apache.camel.ExchangeTimedOutException: The OUT message was not >>>> received within: 50000 millis. Exchange[Message: 3] >>>> [1671...@qtp-9243153-2 - /hello] DefaultErrorHandler ERROR >>>> Failed delivery for exchangeId: 915083b6-4291-4716-929d-aa451e29e495. >>>> Exhausted after delivery attempt: 1 caught: >>>> java.lang.InterruptedException >>>> java.lang.InterruptedException >>>> at org.apache.log4j.spi.LoggingEvent.<init>(LoggingEvent.java:154) >>>> at org.apache.log4j.Category.forcedLog(Category.java:388) >>>> at org.apache.log4j.Category.log(Category.java:853) >>>> at >>>> org.apache.commons.logging.impl.Log4JLogger.debug(Log4JLogger.java:188) >>>> at >>>> org.apache.camel.component.jms.JmsProducer.processInOut(JmsProducer.java:231) >>>> at >>>> org.apache.camel.component.jms.JmsProducer.process(JmsProducer.java:147) >>>> at >>>> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:97) >>>> at >>>> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:95) >>>> at >>>> org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:146) >>>> at >>>> org.apache.camel.processor.SendProcessor.doProcess(SendProcessor.java:94) >>>> at >>>> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:82) >>>> at >>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) >>>> at >>>> org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53) >>>> at >>>> org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82) >>>> at >>>> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:93) >>>> at >>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) >>>> at >>>> org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:177) >>>> at >>>> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:143) >>>> at >>>> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88) >>>> at >>>> org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49) >>>> at >>>> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:228) >>>> at org.apache.camel.processor.Pipeline.process(Pipeline.java:74) >>>> at >>>> org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:66) >>>> at >>>> org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48) >>>> at >>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) >>>> at >>>> org.apache.camel.component.http.CamelServlet.service(CamelServlet.java:53) >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) >>>> at >>>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) >>>> at >>>> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390) >>>> at >>>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) >>>> at >>>> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) >>>> at >>>> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) >>>> at org.mortbay.jetty.Server.handle(Server.java:322) >>>> at >>>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) >>>> at >>>> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938) >>>> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755) >>>> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) >>>> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) >>>> at >>>> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) >>>> at >>>> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) >>>> [2390...@qtp-9243153-4 - /hello] DefaultTypeConverter TRACE >>>> Converting java.lang.Boolean -> java.lang.Object with value: false >>>> [3850...@qtp-9243153-3 - /hello] Pipeline TRACE >>>> Processing complete for exchangeId: >>>> 21b68982-8ec1-405b-97d8-56f6e533115f >>> Exchange[Message: 2] >>>> [1671...@qtp-9243153-2 - /hello] DefaultTypeConverter TRACE >>>> Converting java.lang.Boolean -> java.lang.Object with value: false >>>> [2390...@qtp-9243153-4 - /hello] DefaultErrorHandler ERROR >>>> Failed delivery for exchangeId: 5903a17f-bff9-4ba5-b8f4-78bc96149195. >>>> Exhausted after delivery attempt: 1 caught: >>>> org.apache.camel.ExchangeTimedOutException: The OUT message was not >>>> received within: 50000 millis. Exchange[Message: 3] >>>> org.apache.camel.ExchangeTimedOutException: The OUT message was not >>>> received within: 50000 millis. Exchange[Message: 3] >>>> at >>>> org.apache.camel.component.jms.JmsProducer.processInOut(JmsProducer.java:265) >>>> at >>>> org.apache.camel.component.jms.JmsProducer.process(JmsProducer.java:147) >>>> at >>>> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:97) >>>> at >>>> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:95) >>>> at >>>> org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:146) >>>> at >>>> org.apache.camel.processor.SendProcessor.doProcess(SendProcessor.java:94) >>>> at >>>> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:82) >>>> at >>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) >>>> at >>>> org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53) >>>> at >>>> org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82) >>>> at >>>> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:93) >>>> at >>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) >>>> at >>>> org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:177) >>>> at >>>> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:143) >>>> at >>>> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88) >>>> at >>>> org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49) >>>> at >>>> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:228) >>>> at org.apache.camel.processor.Pipeline.process(Pipeline.java:74) >>>> at >>>> org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:66) >>>> at >>>> org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48) >>>> at >>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) >>>> at >>>> org.apache.camel.component.http.CamelServlet.service(CamelServlet.java:53) >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) >>>> at >>>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) >>>> at >>>> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390) >>>> at >>>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) >>>> at >>>> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) >>>> at >>>> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) >>>> at org.mortbay.jetty.Server.handle(Server.java:322) >>>> at >>>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) >>>> at >>>> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938) >>>> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755) >>>> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) >>>> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) >>>> at >>>> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) >>>> at >>>> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) >>>> [1671...@qtp-9243153-2 - /hello] DefaultErrorHandler DEBUG >>>> This exchange is not handled so its marked as failed: >>>> Exchange[Message: 1] >>>> [3850...@qtp-9243153-3 - /hello] DefaultInflightRepository TRACE >>>> Total 2 inflight exchanges. Last removed: >>>> 21b68982-8ec1-405b-97d8-56f6e533115f >>>> [2390...@qtp-9243153-4 - /hello] DefaultTypeConverter TRACE >>>> Converting java.lang.Boolean -> java.lang.Object with value: false >>>> [1671...@qtp-9243153-2 - /hello] Pipeline DEBUG >>>> Message exchange has failed so breaking out of pipeline: >>>> Exchange[Message: 1] Exception: java.lang.InterruptedException >>>> [3850...@qtp-9243153-3 - /hello] InstrumentationProcessor TRACE >>>> route: Recording duration: 2347 millis for exchange: Exchange[Message: >>>> [Body is instance of java.io.InputStream]] >>>> [2390...@qtp-9243153-4 - /hello] DefaultErrorHandler DEBUG >>>> This exchange is not handled so its marked as failed: >>>> Exchange[Message: 3] >>>> [1671...@qtp-9243153-2 - /hello] Pipeline TRACE >>>> Processing complete for exchangeId: >>>> 915083b6-4291-4716-929d-aa451e29e495 >>> Exchange[Message: 1] >>>> [2390...@qtp-9243153-4 - /hello] Pipeline DEBUG >>>> Message exchange has failed so breaking out of pipeline: >>>> Exchange[Message: 3] Exception: >>>> org.apache.camel.ExchangeTimedOutException: The OUT message was not >>>> received within: 50000 millis. Exchange[Message: 3] >>>> [1671...@qtp-9243153-2 - /hello] DefaultInflightRepository TRACE >>>> Total 1 inflight exchanges. Last removed: >>>> 915083b6-4291-4716-929d-aa451e29e495 >>>> [2390...@qtp-9243153-4 - /hello] Pipeline TRACE >>>> Processing complete for exchangeId: >>>> 5903a17f-bff9-4ba5-b8f4-78bc96149195 >>> Exchange[Message: 3] >>>> [1671...@qtp-9243153-2 - /hello] InstrumentationProcessor TRACE >>>> route: Recording duration: 19763 millis for exchange: >>>> Exchange[Message: [Body is instance of java.io.InputStream]] >>>> [2390...@qtp-9243153-4 - /hello] DefaultInflightRepository TRACE >>>> Total 0 inflight exchanges. Last removed: >>>> 5903a17f-bff9-4ba5-b8f4-78bc96149195 >>>> [3850...@qtp-9243153-3 - /hello] log DEBUG >>>> RESPONSE /hello 500 >>>> [2390...@qtp-9243153-4 - /hello] InstrumentationProcessor TRACE >>>> route: Recording duration: 1830 millis for exchange: Exchange[Message: >>>> [Body is instance of java.io.InputStream]] >>>> [ 23850...@qtp-9243153-3] log DEBUG EOF >>>> [2390...@qtp-9243153-4 - /hello] log DEBUG >>>> RESPONSE /hello 500 >>>> [ 2390...@qtp-9243153-4] log DEBUG EOF >>>> [1671...@qtp-9243153-2 - /hello] log DEBUG >>>> RESPONSE /hello 500 >>>> [ 1671...@qtp-9243153-2] log DEBUG EOF >>>> [ Camel thread 11: ShutdownTask] log DEBUG >>>> stopped org.mortbay.thread.queuedthreadp...@8d0a11 >>>> [ Camel thread 11: ShutdownTask] log DEBUG >>>> stopped ser...@8032df >>>> [ Camel thread 11: ShutdownTask] HttpConsumer DEBUG >>>> Stopping consumer: Consumer[http://0.0.0.0:8686/hello] >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: >>>> Instrumentation:route[UnitOfWork(pipeline[channel[org.apache.camel.example.server.serverroute...@d1f0ad], >>>> Channel[sendTo(Endpoint[jms://queue:numbers2?requestTimeout=50000])], >>>> channel[org.apache.camel.example.server.serverroute...@1d6b049], >>>> Channel[sendTo(Endpoint[multiplier])]])] >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: >>>> UnitOfWork(pipeline[channel[org.apache.camel.example.server.serverroute...@d1f0ad], >>>> Channel[sendTo(Endpoint[jms://queue:numbers2?requestTimeout=50000])], >>>> channel[org.apache.camel.example.server.serverroute...@1d6b049], >>>> Channel[sendTo(Endpoint[multiplier])]]) >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: >>>> pipeline[channel[org.apache.camel.example.server.serverroute...@d1f0ad], >>>> Channel[sendTo(Endpoint[jms://queue:numbers2?requestTimeout=50000])], >>>> channel[org.apache.camel.example.server.serverroute...@1d6b049], >>>> Channel[sendTo(Endpoint[multiplier])]] >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: >>>> channel[org.apache.camel.example.server.serverroute...@d1f0ad] >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: >>>> Instrumentation:process[traceinterceptor[process[org.apache.camel.example.server.serverroute...@d1f0ad]]] >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: >>>> traceinterceptor[process[org.apache.camel.example.server.serverroute...@d1f0ad]] >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: >>>> Instrumentation:process[org.apache.camel.example.server.serverroute...@d1f0ad] >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: >>>> DefaultErrorHandler[Instrumentation:process[traceinterceptor[process[org.apache.camel.example.server.serverroute...@d1f0ad]]]] >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: >>>> Instrumentation:process[traceinterceptor[process[org.apache.camel.example.server.serverroute...@d1f0ad]]] >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: >>>> Channel[sendTo(Endpoint[jms://queue:numbers2?requestTimeout=50000])] >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: >>>> Instrumentation:to[TraceInterceptor[To[jms://queue:numbers2?requestTimeout=50000]]] >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: >>>> TraceInterceptor[To[jms://queue:numbers2?requestTimeout=50000]] >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: >>>> Instrumentation:to[sendTo(Endpoint[jms://queue:numbers2?requestTimeout=50000])] >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: >>>> sendTo(Endpoint[jms://queue:numbers2?requestTimeout=50000]) >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: >>>> org.apache.camel.impl.sharedproducerservicep...@11d20d3 >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: >>>> DefaultErrorHandler[Instrumentation:to[TraceInterceptor[To[jms://queue:numbers2?requestTimeout=50000]]]] >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: >>>> Instrumentation:to[TraceInterceptor[To[jms://queue:numbers2?requestTimeout=50000]]] >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: >>>> channel[org.apache.camel.example.server.serverroute...@1d6b049] >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: >>>> Instrumentation:process[traceinterceptor[process[org.apache.camel.example.server.serverroute...@1d6b049]]] >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: >>>> traceinterceptor[process[org.apache.camel.example.server.serverroute...@1d6b049]] >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: >>>> Instrumentation:process[org.apache.camel.example.server.serverroute...@1d6b049] >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: >>>> DefaultErrorHandler[Instrumentation:process[traceinterceptor[process[org.apache.camel.example.server.serverroute...@1d6b049]]]] >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: >>>> Instrumentation:process[traceinterceptor[process[org.apache.camel.example.server.serverroute...@1d6b049]]] >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: Channel[sendTo(Endpoint[multiplier])] >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: Instrumentation:to[TraceInterceptor[To[multiplier]]] >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: TraceInterceptor[To[multiplier]] >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: Instrumentation:to[sendTo(Endpoint[multiplier])] >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: sendTo(Endpoint[multiplier]) >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: >>>> org.apache.camel.impl.sharedproducerservicep...@11d20d3 >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: >>>> DefaultErrorHandler[Instrumentation:to[TraceInterceptor[To[multiplier]]]] >>>> [ Camel thread 11: ShutdownTask] ServiceHelper TRACE >>>> Stopping service: Instrumentation:to[TraceInterceptor[To[multiplier]]] >>>> [ Camel thread 11: ShutdownTask] DefaultShutdownStrategy DEBUG >>>> Shutdown complete for: Consumer[http://0.0.0.0:8686/hello] >>>> [ Camel thread 11: ShutdownTask] DefaultShutdownStrategy INFO >>>> Route: route1 shutdown complete. >>>> [CP Connection(4)-10.58.123.154] DefaultShutdownStrategy INFO >>>> Graceful shutdown of routes completed in 0 seconds >>>> [CP Connection(4)-10.58.123.154] ServiceHelper TRACE >>>> Stopping service org.apache.camel.impl.routeserv...@dd421f >>>> [CP Connection(4)-10.58.123.154] RouteService TRACE >>>> Stopping route: >>>> EventDrivenConsumerRoute[Endpoint[http://0.0.0.0:8686/hello] -> >>>> Instrumentation:route[UnitOfWork(pipeline[channel[org.apache.camel.example.server.serverroute...@d1f0ad], >>>> Channel[sendTo(Endpoint[jms://queue:numbers2?requestTimeout=50000])], >>>> channel[org.apache.camel.example.server.serverroute...@1d6b049], >>>> Channel[sendTo(Endpoint[multiplier])]])]] >>>> [CP Connection(4)-10.58.123.154] ServiceHelper TRACE >>>> Stopping service Consumer[http://0.0.0.0:8686/hello] >>>> [CP Connection(4)-10.58.123.154] ServiceHelper TRACE >>>> Stopping service >>>> Instrumentation:route[UnitOfWork(pipeline[channel[org.apache.camel.example.server.serverroute...@d1f0ad], >>>> Channel[sendTo(Endpoint[jms://queue:numbers2?requestTimeout=50000])], >>>> channel[org.apache.camel.example.server.serverroute...@1d6b049], >>>> Channel[sendTo(Endpoint[multiplier])]])] >>>> [CP Connection(4)-10.58.123.154] ServiceHelper TRACE >>>> Stopping service >>>> UnitOfWork(pipeline[channel[org.apache.camel.example.server.serverroute...@d1f0ad], >>>> Channel[sendTo(Endpoint[jms://queue:numbers2?requestTimeout=50000])], >>>> channel[org.apache.camel.example.server.serverroute...@1d6b049], >>>> Channel[sendTo(Endpoint[multiplier])]]) >>>> [CP Connection(4)-10.58.123.154] ServiceHelper TRACE >>>> Stopping service >>>> pipeline[channel[org.apache.camel.example.server.serverroute...@d1f0ad], >>>> Channel[sendTo(Endpoint[jms://queue:numbers2?requestTimeout=50000])], >>>> channel[org.apache.camel.example.server.serverroute...@1d6b049], >>>> Channel[sendTo(Endpoint[multiplier])]] >>>> [CP Connection(4)-10.58.123.154] ServiceHelper TRACE >>>> Stopping service >>>> channel[org.apache.camel.example.server.serverroute...@d1f0ad] >>>> [CP Connection(4)-10.58.123.154] ServiceHelper TRACE >>>> Stopping service >>>> Channel[sendTo(Endpoint[jms://queue:numbers2?requestTimeout=50000])] >>>> [CP Connection(4)-10.58.123.154] ServiceHelper TRACE >>>> Stopping service >>>> sendTo(Endpoint[jms://queue:numbers2?requestTimeout=50000]) >>>> [CP Connection(4)-10.58.123.154] ServiceHelper TRACE >>>> Stopping service >>>> channel[org.apache.camel.example.server.serverroute...@1d6b049] >>>> [CP Connection(4)-10.58.123.154] ServiceHelper TRACE >>>> Stopping service Channel[sendTo(Endpoint[multiplier])] >>>> [CP Connection(4)-10.58.123.154] ServiceHelper TRACE >>>> Stopping service sendTo(Endpoint[multiplier]) >>>> [CP Connection(4)-10.58.123.154] ServiceHelper TRACE >>>> Stopping service >>>> EventDrivenConsumerRoute[Endpoint[http://0.0.0.0:8686/hello] -> >>>> Instrumentation:route[UnitOfWork(pipeline[channel[org.apache.camel.example.server.serverroute...@d1f0ad], >>>> Channel[sendTo(Endpoint[jms://queue:numbers2?requestTimeout=50000])], >>>> channel[org.apache.camel.example.server.serverroute...@1d6b049], >>>> Channel[sendTo(Endpoint[multiplier])]])]] >>>> [CP Connection(4)-10.58.123.154] ServiceHelper TRACE >>>> Stopping service Producer[multiplier] >>>> [CP Connection(4)-10.58.123.154] ProcessorEndpoint$1 DEBUG >>>> Stopping producer: Producer[multiplier] >>>> [CP Connection(4)-10.58.123.154] ServiceHelper TRACE >>>> Stopping service Producer[jms://queue:numbers2?requestTimeout=50000] >>>> [CP Connection(4)-10.58.123.154] JmsProducer DEBUG >>>> Stopping producer: Producer[jms://queue:numbers2?requestTimeout=50000] >>>> [CP Connection(4)-10.58.123.154] ServiceHelper TRACE >>>> Stopping service org.apache.camel.impl.defaultshutdownstrat...@1c5a33b >>>> [CP Connection(4)-10.58.123.154] ServiceHelper TRACE >>>> Stopping service >>>> org.apache.camel.impl.defaultinflightreposit...@d8978c >>>> [CP Connection(4)-10.58.123.154] DefaultInflightRepository INFO >>>> Shutting down with no inflight exchanges. >>>> [CP Connection(4)-10.58.123.154] ServiceHelper TRACE >>>> Stopping service >>>> org.apache.camel.impl.converter.defaulttypeconver...@da9067 >>>> [CP Connection(4)-10.58.123.154] ServiceHelper TRACE >>>> Stopping service >>>> org.apache.activemq.camel.component.activemqcompon...@1104da7 >>>> [CP Connection(4)-10.58.123.154] ServiceHelper TRACE >>>> Stopping service >>>> org.apache.camel.component.event.eventcompon...@1031310 >>>> [CP Connection(4)-10.58.123.154] ServiceHelper TRACE >>>> Stopping service >>>> org.apache.camel.example.server.myhttpjettycompon...@659812 >>>> [CP Connection(4)-10.58.123.154] SharedProducerServicePool DEBUG >>>> Stopping service pool: >>>> org.apache.camel.impl.sharedproducerservicep...@11d20d3 >>>> [CP Connection(4)-10.58.123.154] ServiceHelper TRACE >>>> Stopping service >>>> org.apache.camel.impl.defaultinflightreposit...@d8978c >>>> [CP Connection(4)-10.58.123.154] ServiceHelper TRACE >>>> Stopping service >>>> org.apache.camel.management.managedmanagementstrat...@1894800 >>>> [CP Connection(4)-10.58.123.154] DefaultCamelContext INFO >>>> Apache Camel 2.2.0 (CamelContext:camel) stopped >>>> [ InactivityMonitor WriteCheck] InactivityMonitor DEBUG >>>> 10001 ms elapsed since last write check. >>>> [ InactivityMonitor WriteCheck] InactivityMonitor TRACE >>>> Message sent since last write check, resetting flag >>>> [ InactivityMonitor ReadCheck] InactivityMonitor DEBUG >>>> 30004 ms elapsed since last read check. >>>> [ InactivityMonitor ReadCheck] InactivityMonitor TRACE >>>> Message received since last read check, resetting flag: >>>> >>>> >>>> >>>> >>>> On Thu, Apr 15, 2010 at 8:42 AM, Ilya S <devmailboxl...@gmail.com> wrote: >>>>> Thanks Claus, >>>>> >>>>> I'm currently back to using 2.2.0 because I can see the source code. >>>>> But I tried 2.3-SNAPSHOT also with the same issue. >>>>> Please, see my full route in previous post. >>>>> >>>>> >>>>> On Thu, Apr 15, 2010 at 2:17 AM, Claus Ibsen <claus.ib...@gmail.com> >>>>> wrote: >>>>>> Hi >>>>>> >>>>>> All the unit tests run with graceful shutdown by default, and all unit >>>>>> tests with camel-jetty shut down with no issues. >>>>>> >>>>>> The in flight repository do keep track of all in flights. I can only >>>>>> think of if you use the aggregator or some custom code which >>>>>> can cause the exchange to be completed in Camels point of view. >>>>>> >>>>>> Can you post your entire route? >>>>>> >>>>>> And as always report which version of Camel you are using? And try >>>>>> with the latest stable and even with 2.3-SNAPSHOT. >>>>>> >>>>>> >>>>>> On Wed, Apr 14, 2010 at 7:41 PM, Ilya S <devmailboxl...@gmail.com> wrote: >>>>>>> Hi All, >>>>>>> >>>>>>> Fist of all, thank you for this great product! >>>>>>> Every new release brings excellent new features just in time. >>>>>>> >>>>>>> I'm currently investigating Graceful Shutdown feature, and I'm am >>>>>>> wondering if graceful shutdown is supported for Camel-Jetty component? >>>>>>> I was able to successfully shut down JMS component. However, >>>>>>> JettyHttpCoponent seems to have issues when shutting down. >>>>>>> >>>>>>> In my simple test (adopted from camel-example-spring-jms:ServerRoute >>>>>>> example) I have a simple route that looks like this: >>>>>>> >>>>>>> from("jetty:http://0.0.0.0:8686/hello") >>>>>>> .. >>>>>>> .. do work >>>>>>> ... >>>>>>> .to("jms:queue:numbers2?requestTimeout=50000") >>>>>>> .to("multiplier"); >>>>>>> >>>>>>> >>>>>>> My producers simply send numbers to http endpoint.. >>>>>>> >>>>>>> >>>>>>> When I shutdown this context gracefully I'm getting all sort of >>>>>>> exceptions from Jetty, and the context does not seem to wait until >>>>>>> inflight exchanges have finished. >>>>>>> I'm using the defaults everywhere (e.g. default shutdown strategy). >>>>>>> >>>>>>> Is shutdown supported for Jetty, and if so how should one configure >>>>>>> jetty to initiate proper shutdown? >>>>>>> >>>>>>> Thank you, >>>>>>> >>>>>>> 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 >>>>>> >>>>> >>>> >>> >> >> >> >> -- >> 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 >> > > > > -- > 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 >