This is my camel-context.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camel="http://camel.apache.org/schema/spring" xmlns:flex="http://www.springframework.org/schema/flex" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring-2.1.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/flex http://www.springframework.org/schema/flex/spring-flex-1.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <camel:camelContext id="camel" errorHandlerRef="dlq"> <camel:onException id="databaseConnectionException" useOriginalMessage="true" > <camel:exception>com.sap.dbtech.jdbc.exceptions.ConnectionException</camel:exception> <camel:redeliveryPolicy maximumRedeliveries="5"/> </camel:onException> <camel:route id="invoicemasterpossender"> <camel:from uri="ibatis:getUnProcessInvoiceMasterPOS ?statementType=QueryForList&consumer .onConsume=updateProcessedInvoiceMasterPOS" /> <camel:transacted/> <camel:setHeader headerName="InvType"> <camel:constant>SHOP</camel:constant> </camel:setHeader> <camel:to uri="activemq:queue:allinvoicemasterpos" /> </camel:route> </camel:camelContext> </beans>
Using ibatis polling comsumer to poll unprocess data and send to ActiveMQ with onConsume option and transacted. And this is my current spring-context.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camel="http://camel.apache.org/schema/spring" xmlns:flex="http://www.springframework.org/schema/flex" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring-2.1.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/flex http://www.springframework.org/schema/flex/spring-flex-1.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <!-- setup property file destination --> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="WEB-INF/routing.properties"/> </bean> <!-- setup spring to use anotation-driven --> <context:annotation-config /> <context:component-scan base-package="com.strsoftware"> <context:include-filter type="aspectj" expression="com.strsoftware.*"/> </context:component-scan> <tx:annotation-driven transaction-manager="transactionManager"/> <!-- JMS Setup --> <bean id="amqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> <property name="brokerURL"><value>${brokerURL}</value></property> </bean> <bean id="poolConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactoryBean"> <property name="connectionFactory" ref="amqConnectionFactory"/> <property name="maxConnections"><value>${maxConnections}</value></property> </bean> <bean id="amqConfig" class="org.apache.activemq.camel.component.ActiveMQConfiguration"> <property name="connectionFactory" ref="poolConnectionFactory"/> <property name="transacted" value="false"/> <property name="concurrentConsumers"><value>${concurrentConsumers}</value></property> </bean> <bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent"> <property name="configuration" ref="amqConfig"/> </bean> <!-- setup jdbc datasource --> <bean id="dataSource" class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init"> <property name="uniqueResourceName" value="XADBMS"/> <property name="xaDataSourceClassName"><value>${driverClassName}</value></property> <property name="poolSize" value="1"/> <property name="testQuery" value="SELECT * FROM TEST"/> <property name="xaProperties"> <props> <prop key="url">${url}</prop> <prop key="user">${username}</prop> <prop key="password">${password}</prop> </props> </property> </bean> <!-- setting up sqlMapClient --> <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <property name="configLocation" value="WEB-INF/sqlMapConfig.xml" /> <property name="dataSource" ref="dataSource"/> <property name="useTransactionAwareDataSource" value="true"/> </bean> <!-- Setup Ibatis component --> <bean id="ibatis" class="org.apache.camel.component.ibatis.IBatisComponent"> <property name="sqlMapClient" ref="sqlMapClient"/> <property name="useTransactions" value="true"/> </bean> <!-- Construct Atomikos UserTransactionManager, needed to configure Spring --> <bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager" init-method="init"> <!-- when close is called, should we force transactions to terminate or not? --> <property name="forceShutdown" value="false"/> </bean> <!-- Also use Atomikos UserTransactionImp, needed to configure Spring --> <bean id="atomikosUserTransaction" class="com.atomikos.icatch.jta.UserTransactionImp"> <property name="transactionTimeout" value="300" /> </bean> <!-- Configure the Spring framework to use JTA transactions from Atomikos --> <bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"> <property name="transactionManager" ref="atomikosTransactionManager" /> <property name="userTransaction" ref="atomikosUserTransaction" /> </bean> </beans> I forgot to tell you some detail. I use Atomikos TransactionsEssentials v 3.6.3 , tomcat 6.0.26 x64 ActiveMQ 5.3.0 ,Ibatis-sqlmap 2.3.4.726 and JDK 1.5.0_22. Thank you in advance. willem.jiang wrote: > > Hi > Can you show us the camel route that you have ? > It will be useful for use the dig the issue. > > Willem > > MasterLotis wrote: >> I Have using camel 2.2.0 with spring 2.5.6 Tomcat 6 and Atomikos >> Transaction manager working together. >> I found error on stopping tomcat like this. >> >> STACKTRACE: >> >> java.net.SocketException: socket closed >> at java.net.SocketInputStream.socketRead0(Native Method) >> at java.net.SocketInputStream.read(SocketInputStream.java:129) >> at >> com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:113) >> at com.mysql.jdbc.util.ReadAheadInputStream >> >> .readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:160) >> at >> com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:188) >> at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1994) >> at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2411) >> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2916) >> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631) >> at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723) >> at com.mysql.jdbc.Connection.execSQL(Connection.java:3283) >> at >> com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1332) >> at >> com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:882) >> at com.mysql.jdbc.jdbc2.optional.PreparedStatementWrapper >> .execute(PreparedStatementWrapper.java:787) >> at >> com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdate(SqlExecutor.java:80) >> at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement >> .sqlExecuteUpdate(MappedStatement.java:216) >> at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement >> .executeUpdate(MappedStatement.java:94) >> at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate >> .update(SqlMapExecutorDelegate.java:457) >> at >> com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.update(SqlMapSessionImpl.java:90) >> at >> com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.update(SqlMapClientImpl.java:66) >> at >> org.apache.camel.component.ibatis.strategy.DefaultIBatisProcessingStategy >> .commit(DefaultIBatisProcessingStategy.java:42) >> at org.apache.camel.component.ibatis.IBatisPollingConsumer >> .processBatch(IBatisPollingConsumer.java:219) >> at >> org.apache.camel.component.ibatis.IBatisPollingConsumer.poll(IBatisPollingConsumer.java:179) >> at >> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:106) >> at >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417) >> at >> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:280) >> at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:135) >> at >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask >> .access$101(ScheduledThreadPoolExecutor.java:65) >> at >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask >> .runPeriodic(ScheduledThreadPoolExecutor.java:146) >> at >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask >> .run(ScheduledThreadPoolExecutor.java:170) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676) >> at java.lang.Thread.run(Thread.java:595) >> >> >> ** END NESTED EXCEPTION ** >> >> >> Then I do some change in spring context like remove " >> destroy-method="destroy" " on poolconnectionfactorybean remove >> "destroy-method="close" "on atomikostransactionmanager >> and datasource and start and stop again I got random error like this. >> >> >> ERROR: org.apache.camel.component.ibatis.IBatisPollingConsumer - Caused >> by: >> [com.ibatis.common.jdbc.exception.NestedSQLException - Could not commit >> transaction. Cause: >> com.ibatis.sqlmap.engine.transaction.TransactionException: >> TransactionManager could not commit. No transaction is started.] >> com.ibatis.common.jdbc.exception.NestedSQLException: Could not commit >> transaction. Cause: >> com.ibatis.sqlmap.engine.transaction.TransactionException: >> TransactionManager could not commit. No transaction is started. >> at >> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.commitTransaction(SqlMapExecutorDelegate.java:719) >> at >> com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.commitTransaction(SqlMapSessionImpl.java:172) >> at >> com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.commitTransaction(SqlMapClientImpl.java:148) >> at >> org.apache.camel.component.ibatis.strategy.DefaultIBatisProcessingStategy.commit(DefaultIBatisProcessingStategy.java:45) >> at >> org.apache.camel.component.ibatis.IBatisPollingConsumer.processBatch(IBatisPollingConsumer.java:219) >> at >> org.apache.camel.component.ibatis.IBatisPollingConsumer.poll(IBatisPollingConsumer.java:179) >> at >> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:106) >> at >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417) >> at >> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:280) >> at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:135) >> at >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:65) >> at >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:146) >> at >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:170) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676) >> at java.lang.Thread.run(Thread.java:595) >> Caused by: com.ibatis.sqlmap.engine.transaction.TransactionException: >> TransactionManager could not commit. No transaction is started. >> at >> com.ibatis.sqlmap.engine.transaction.TransactionManager.commit(TransactionManager.java:62) >> at >> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.commitTransaction(SqlMapExecutorDelegate.java:717) >> ... 15 more >> >> >> And >> >> >> Caused by: javax.jms.IllegalStateException: The Session is closed >> at >> org.apache.activemq.ActiveMQSession.checkClosed(ActiveMQSession.java:659) >> at >> org.apache.activemq.ActiveMQSession.getTransacted(ActiveMQSession.java:470) >> at >> org.apache.activemq.pool.PooledSession.getTransacted(PooledSession.java:193) >> at >> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.doSendToDestination(JmsConfiguration.java:224) >> at >> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.access$100(JmsConfiguration.java:164) >> at >> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate$3.doInJms(JmsConfiguration.java:198) >> at >> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:471) >> ... 55 more >> >> >> I turn on debug logging and see destroy sequence of spring bean like >> this. >> >> >> 31 มี.ค. 2553 19:52:43 org.apache.catalina.core.StandardService stop >> INFO: Stopping service Catalina >> 31 มี.ค. 2553 19:52:43 org.apache.catalina.core.ApplicationContext log >> INFO: Destroying Spring FrameworkServlet 'dispatcher' >> INFO : org.springframework.web.context.support.XmlWebApplicationContext - >> Closing >> org.springframework.web.context.support.xmlwebapplicationcont...@71e2b67c: >> display name [WebApplicationContext for namespace 'dispatcher-servlet']; >> startup date [Wed Mar 31 19:50:09 ICT 2010]; parent: >> org.springframework.web.context.support.xmlwebapplicationcont...@627a4489 >> DEBUG: org.apache.camel.spring.SpringCamelContext - onApplicationEvent: >> org.springframework.context.event.contextclosedevent[source=org.springframework.web.context.support.xmlwebapplicationcont...@71e2b67c: >> display name [WebApplicationContext for namespace 'dispatcher-servlet']; >> startup date [Wed Mar 31 19:50:09 ICT 2010]; parent: >> org.springframework.web.context.support.xmlwebapplicationcont...@627a4489] >> INFO : >> org.springframework.beans.factory.support.DefaultListableBeanFactory >> - Destroying singletons in >> org.springframework.beans.factory.support.defaultlistablebeanfact...@21a79071: >> defining beans []; parent: >> org.springframework.beans.factory.support.defaultlistablebeanfact...@24fe2558 >> INFO : org.springframework.web.context.support.XmlWebApplicationContext - >> Closing >> org.springframework.web.context.support.xmlwebapplicationcont...@627a4489: >> display name [Root WebApplicationContext]; startup date [Wed Mar 31 >> 19:49:53 >> ICT 2010]; root of context hierarchy >> DEBUG: org.apache.camel.spring.SpringCamelContext - onApplicationEvent: >> org.springframework.context.event.contextclosedevent[source=org.springframework.web.context.support.xmlwebapplicationcont...@627a4489: >> display name [Root WebApplicationContext]; startup date [Wed Mar 31 >> 19:49:53 >> ICT 2010]; root of context hierarchy] >> INFO : >> org.springframework.beans.factory.support.DefaultListableBeanFactory >> - Destroying singletons in >> org.springframework.beans.factory.support.defaultlistablebeanfact...@24fe2558: >> defining beans >> [identifyClassDAOImp,divisionreceiverinput,menuproductdivisionreceiverinput,employeesreceiverinput,employeehistorydetailreceiverinput,productstaticreceiverinput,creditcardscanreceiverinput,creditcardreceiverinput,promotionMasterreceiverinput,productopeningmasterreceiverinput,purchaseordermasterdivisionreceiverinput,historydocumentofficedivisionreceiverinput,giftvouchercarddivisionreceiverinput,deliveryordermasterreceiverinput,warehouseconfirmreceiverinput,productposmasterreceiverinput,productgroupreceiverinput,uommasterreceiverinput,creditcardtypereceiverinput,toppingmasterreceiverinput,countingstockproductreceiverinput,productmenugroupreceiverinput,packagetypereceiverinput,packageproductfinishreceiverinput,documentgroupreceiverinput,positionreceiverinput,bankreceiverinput,optionmasterreceiverinput,menugroupreceiverinput,menuauthenticatereceiverinput,promotionprodgroupmasterreceiverinput,copromotionmasterreceiverinput,settingaccountcodereceiverinput,divisionorderreceiverinp > ut,userloginaccreceiverinput,menuusergroupaccreceiverinput,historydocumentofficereceiverinput,historydocumentaccountreceiverinput,productplaceorderreceiverinput,processingproductreceiverinput,template,consumerTemplate,camel:beanPostProcessor,camel,org.springframework.beans.factory.config.PropertyPlaceholderConfigurer#0,amqConnectionFactory,poolConnectionFactory,amqConfig,activemq,dataSource,sqlMapClient,ibatis,atomikosTransactionManager,atomikosUserTransaction,transactionManager,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,deliveryOrderMasterDAOImp,divisionDAOImp,giftVoucherCardDivisionDAOImp,historyDocumentAccountDAOImp,historyDocumentOfficeDAOImp,historyDocumentOfficeDivisionDAOImp,invoiceMasterPOSDAOImp,menuProductDivisionDAOImp,movingProductStockDAOImp,packageProductFinishDAOImp,productLotDAOImp, > productOpeningMasterDAOImp,productPOSMasterDAOImp,productReceiveInvoiceMasterDAOImp,productReturnMasterDAOImp,productStaticDAOImp,promotionMasterDAOImp,promotionProdGroupMasterDAOImp,purchaseOrderMasterDivisionDAOImp,purchaseOrderMasterPosDAOImp,purchaseRequestOrderMasterDAOImp,registerMachineDAOImp,shiftEndMasterDAOImp,trainInvMasterDAOImp,transactionPurchaseMasterDODAOImp,transactionPurchaseMasterPODAOImp,userLoginAccDAOImp,voucherMasterDAOImp,warehouseConfirmDAOImp,warehouseDAOImp,deliveryOrderMasterEndPoint,divisionEndPoint,giftVoucherCardDivisionEndPoint,historyDocumentAccountEndPoint,historyDocumentOfficeDivisionEndPoint,historyDocumentOfficeEndPoint,invoiceMasterPOSEndPoint,menuProductDivisionEndPoint,movingProductStockEndPoint,packageProductFinishEndPoint,productLotEndPoint,productOpeningMasterEndPoint,productPOSMasterEndPoint,productReceiveInvoiceMasterEndPoint,productReturnMasterEndPoint,productStaticEndPoint,promotionMasterEndPoint,promotionProdGroupMasterEndPoint, > purchaseOrderMasterDivisionEndPoint,purchaseOrderMasterPosEndPoint,purchaseRequestOrderMasterEndPoint,registerMachineEndPoint,shiftEndMasterEndPoint,trainInvMasterEndPoint,transactionPurchaseMasterDOEndPoint,transactionPurchaseMasterPOEndPoint,userLoginAccEndPoint,voucherMasterEndPoint,warehouseConfirmEndPoint,warehouseEndPoint,checkStatementProcessor,destinationGenerator,listSpritter,controllerService,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor,_messageBrokerHandlerAdapter,_messageBrokerDefaultHandlerMapping,_jsonConfigMapEditorConfigurer,_messageBrokerMessagingProcessor,_flexRemotingAnnotationPostProcessor,_messageBrokerRemotingProcessor,org.springframework.flex.core.ExceptionTranslationAdvice#0,org.springframework.flex.core.EndpointServiceMessagePo > intcutAdvisor#0,org.springframework.flex.core.MessageInterceptionAdvice#0,org.springframework.flex.core.EndpointServiceMessagePointcutAdvisor#1,_messageBrokerEndpointProcessor,_messageBroker,org.springframework.flex.remoting.RemotingDestinationExporter#0]; >> root of factory hierarchy >> DEBUG: org.springframework.beans.factory.support.DisposableBeanAdapter - >> Invoking destroy() on bean with name >> 'org.springframework.flex.remoting.RemotingDestinationExporter#0' >> INFO : org.springframework.flex.remoting.RemotingDestinationExporter - >> Removing remoting destination 'controllerService' >> DEBUG: org.springframework.beans.factory.support.DisposableBeanAdapter - >> Invoking destroy() on bean with name '_messageBroker' >> 31 มี.ค. 2553 19:52:43 org.apache.catalina.core.ApplicationContext log >> INFO: Closing Spring root WebApplicationContext >> DEBUG: org.springframework.beans.factory.support.DisposableBeanAdapter - >> Invoking destroy() on bean with name 'poolConnectionFactory' >> DEBUG: org.apache.activemq.pool.PooledConnectionFactory - Stop the >> PooledConnectionFactory, number of connections in cache: 1 >> DEBUG: org.apache.activemq.transport.tcp.TcpTransport - Stopping >> transport >> tcp:///127.0.0.1:61616 >> DEBUG: org.apache.camel.spring.spi.TransactionErrorHandler - Transaction >> commit (0x7512951d) for ExchangeId: d3d2b5de-56a9-45fb-8b30-078006d090b6 >> DEBUG: org.springframework.jdbc.datasource.DataSourceUtils - Fetching >> JDBC >> Connection from DataSource >> DEBUG: org.springframework.beans.factory.support.DisposableBeanAdapter - >> Invoking destroy() on bean with name 'camel' >> INFO : org.apache.camel.impl.DefaultCamelContext - Apache Camel 2.2.0 >> (CamelContext:camel) is stopping >> INFO : org.apache.camel.impl.DefaultShutdownStrategy - Starting to >> graceful >> shutdown routes (timeout 300 seconds) >> DEBUG: org.apache.camel.impl.DefaultShutdownStrategy - There are 1 routes >> to >> shutdown >> DEBUG: org.apache.camel.impl.DefaultShutdownStrategy - Suspend complete >> for: >> Consumer[ibatis://getUnProcessInvoiceMasterPOS?consumer.onConsume=updateProcessedInvoiceMasterPOS&statementType=QueryForList] >> INFO : org.apache.camel.impl.DefaultShutdownStrategy - Route: >> invoicemasterpossender suspended and shutdown deferred. >> DEBUG: org.apache.camel.component.ibatis.IBatisPollingConsumer - Stopping >> consumer: >> Consumer[ibatis://getUnProcessInvoiceMasterPOS?consumer.onConsume=updateProcessedInvoiceMasterPOS&statementType=QueryForList] >> DEBUG: org.apache.camel.impl.DefaultShutdownStrategy - Shutdown complete >> for: >> Consumer[ibatis://getUnProcessInvoiceMasterPOS?consumer.onConsume=updateProcessedInvoiceMasterPOS&statementType=QueryForList] >> INFO : org.apache.camel.impl.DefaultShutdownStrategy - Route: >> invoicemasterpossender shutdown complete. >> INFO : org.apache.camel.impl.DefaultShutdownStrategy - Graceful shutdown >> of >> routes completed in 0 seconds >> DEBUG: org.apache.camel.management.DefaultManagementAgent - Unregistered >> MBean with objectname: >> org.apache.camel:context=Pond-NB/camel,type=consumers,name=IBatisPollingConsumer(0x111f2041) >> DEBUG: org.apache.camel.component.jms.JmsProducer - Stopping producer: >> Producer[activemq://queue:allinvoicemasterpos] >> INFO : org.apache.camel.impl.DefaultInflightRepository - Shutting down >> with >> no inflight exchanges. >> DEBUG: org.apache.camel.impl.SharedProducerServicePool - Stopping service >> pool: org.apache.camel.impl.sharedproducerservicep...@2fd23e75 >> DEBUG: org.apache.camel.management.DefaultManagementAgent - Unregistered >> MBean with objectname: >> org.apache.camel:context=Pond-NB/camel,type=routes,name="invoicemasterpossender" >> DEBUG: org.apache.camel.management.DefaultManagementAgent - Unregistered >> MBean with objectname: >> org.apache.camel:context=Pond-NB/camel,type=services,name=DefaultInflightRepository(0x3d39ef3a) >> DEBUG: org.apache.camel.management.DefaultManagementAgent - Unregistered >> MBean with objectname: >> org.apache.camel:context=Pond-NB/camel,type=services,name=DefaultTypeConverter(0x695e0163) >> DEBUG: org.apache.camel.management.DefaultManagementAgent - Unregistered >> MBean with objectname: >> org.apache.camel:context=Pond-NB/camel,type=context,name="camel" >> DEBUG: org.apache.camel.management.DefaultManagementAgent - Unregistered >> MBean with objectname: >> org.apache.camel:context=Pond-NB/camel,type=tracer,name=Tracer(0x66cf9bf0) >> DEBUG: org.apache.camel.management.DefaultManagementAgent - Unregistered >> MBean with objectname: >> org.apache.camel:context=Pond-NB/camel,type=endpoints,name="spring-event://default" >> DEBUG: org.apache.camel.management.DefaultManagementAgent - Unregistered >> MBean with objectname: >> org.apache.camel:context=Pond-NB/camel,type=errorhandlers,name="DefaultErrorHandlerBuilder(ref:CamelDefaultErrorHandlerBuilder)" >> DEBUG: org.apache.camel.management.DefaultManagementAgent - Unregistered >> MBean with objectname: >> org.apache.camel:context=Pond-NB/camel,type=components,name="activemq" >> DEBUG: org.apache.camel.management.DefaultManagementAgent - Unregistered >> MBean with objectname: >> org.apache.camel:context=Pond-NB/camel,type=errorhandlers,name="TransactionErrorHandlerBuilder(ref:CamelDefaultErrorHandlerBuilder)" >> DEBUG: org.apache.camel.management.DefaultManagementAgent - Unregistered >> MBean with objectname: >> org.apache.camel:context=Pond-NB/camel,type=producers,name=JmsProducer(0x39d0c448) >> DEBUG: org.apache.camel.management.DefaultManagementAgent - Unregistered >> MBean with objectname: >> org.apache.camel:context=Pond-NB/camel,type=components,name="ibatis" >> DEBUG: org.apache.camel.management.DefaultManagementAgent - Unregistered >> MBean with objectname: >> org.apache.camel:context=Pond-NB/camel,type=endpoints,name="ibatis://getUnProcessInvoiceMasterPOS\?consumer.onConsume=updateProcessedInvoiceMasterPOS&statementType=QueryForList" >> DEBUG: org.apache.camel.management.DefaultManagementAgent - Unregistered >> MBean with objectname: >> org.apache.camel:context=Pond-NB/camel,type=services,name=DefaultShutdownStrategy(0x2688e83d) >> DEBUG: org.apache.camel.management.DefaultManagementAgent - Unregistered >> MBean with objectname: >> org.apache.camel:context=Pond-NB/camel,type=endpoints,name="activemq://queue:allinvoicemasterpos" >> INFO : org.apache.camel.impl.DefaultCamelContext - Apache Camel 2.2.0 >> (CamelContext:camel) stopped >> >> >> I am looking around internet and found spring cand use depends-on to >> order sequence of shutdown process. I try set "depends-on" to camel >> activemq >> - ibatis componant no thing change And I cant find the way to set >> "depends-on" to camelcontext :,( >> >> >> How can I set the order of shutdown process? >> >> Thank you in advance. > > > -- View this message in context: http://old.nabble.com/Problem-from-Camelcontext-close-after-poolingconnection%2Ctransactionmanager-and-datasource-tp28095558p28096944.html Sent from the Camel - Users mailing list archive at Nabble.com.