camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From vcheruvu <vid.cher...@macquarie.com>
Subject Re: Exception while trying to gracefully shutdown camel
Date Thu, 27 May 2010 06:00:57 GMT

I have added  shutdownRoute="Defer" for every route. You can see that in my
attachment file in the original post. I am assuming that I just have to add
"Defer" in the config. I am not using custom component, so i didn't have to
write custom shutdown strategy. Is there something else that I am missing? 


Claus Ibsen-2 wrote:
> 
> 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 <vid.cheruvu@macquarie.com>
> 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
> 
> 

-- 
View this message in context: http://old.nabble.com/Exception-while-trying-to-gracefully-shutdown-camel-tp28689054p28689850.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Mime
View raw message