Hi

You most likely need to configure some of your routes to Defer
shutting down so they are active and can process the messages.
You can read about this option in the Camel documentation.



On Thu, May 27, 2010 at 5:21 AM, vcheruvu <[email protected]> wrote:
>
> Hi,
>
> I am performing graceful shutdown test with our application.This is to
> ensure Camel does process all of the messages from VM queue and shutdown our
> application. So, our application reads data from tables as a queue using
> Camel-JPA Component. Please see my camel spring config in the attachment
> below. I have ensured VM queue has about 100,000 Exchanges to be processed
> by storeNewOrderEventEntity route.  I tried to gracefully shut down Camel
> from eclipse stop button. In doing so, I got error with
> saveOrderEventRepository bean (this bean calls our DAO/repository layer code
> which calls store procedure at DB server to insert new records).
>
> Any idea how I can ensure this bean can defer getting destroyed and ensure
> all messages are processed before shutting down?
>
> http://old.nabble.com/file/p28689054/pats-camel-context.xml
> pats-camel-context.xml
>
> 2010-05-27 11:24:40,915 ERROR [Camel thread 139:
> vm://storeNewEntity?concurrentConsumers=100&size=1000000&timeout=1000000]
> Logger.log:248 - Err
> or processing exchange. Exchange[Message: OrderEventDTO [AccountID=IGMKTS,
> AdviserID=IGORDERS2, BrokerID=MQIGM, BuySell=SELL, ClOrdID=null, ClO
> rdIDString=195, ClientCode=Y (DR), ComfirmationID=null, ContractID=6875,
> CustomerOrderID=MQIGM, EventTyp
> eCode=Partially Filled, ExchangeOrderID=20100413PTSGW0Y,
> ExecID=6813:3641289, ExecutionInstructionCode=Market, ExpireTime=null,
> ExternalOrderID
> =1956282, FillContractID=null, FillPrice=null, FillSubaccountID=null,
> FillVolume=null, HasChildren=null, OrderCategoryCode=Native, OrderDate=20
> 10-04-13 07:29:13.0, OrderTypeCode=F, ParentClOrdID=null,
> ParentClOrdIDString=null, Price=1986.75, ReferenceClOrdID=null,
> ReferenceClOrdIDStrin
> g=null, ReferenceExecID=null, ReferenceTradeDate=2010-04-13 07:29:13.0,
> SourceSystem=PATS, StopPrice=0.0, TargetSystem=CME, Text= , TimeInForce
> Code=Limit, TransactTime=2010-04-13 07:29:13.0, Volume=23,
> ExternalSecondaryID=6320]]. Caused by:
> [org.springframework.beans.factory.BeanCreationNotAllowedException - Error
> creating bean with name 'saveOrderEventRepository': Singleton bean creation
> not allowed while the singletons of t
> his factory are in destruction (Do not request a bean from a BeanFactory in
> a destroy method implementation!)]
> org.springframework.beans.factory.BeanCreationNotAllowedException: Error
> creating bean with name 'saveOrderEventRepository': Singleton bean creation
> not allowed while the singletons of this factory are in destruction (Do not
> request a bean from a BeanFactory in a destroy method implementation!)
>        at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:209)
>        at
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
>        at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
>        at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
>        at
> org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:880)
>        at
> org.apache.camel.spring.spi.ApplicationContextRegistry.lookup(ApplicationContextRegistry.java:52)
>        at
> org.apache.camel.component.bean.RegistryBean.lookupBean(RegistryBean.java:125)
>        at
> org.apache.camel.component.bean.RegistryBean.getBean(RegistryBean.java:56)
>        at
> org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:72)
>        at
> org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:95)
>        at
> org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:65)
>        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)
> --
> View this message in context: 
> http://old.nabble.com/Exception-while-trying-to-gracefully-shutdown-camel-tp28689054p28689054.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>



-- 
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

Reply via email to