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