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.
