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.