Jboss Fuse Camel AriesXATransaction Mybatis oracle javax.transaction.RollbackException:无法提交:标记为回滚的事务

Jboss Fuse Camel AriesXATransaction Mybatis oracle javax.transaction.RollbackException:无法提交:标记为回滚的事务,oracle,apache-camel,jbossfuse,spring-mybatis,aries,Oracle,Apache Camel,Jbossfuse,Spring Mybatis,Aries,用于公开数据源的蓝图xml Jboss Fuse Aries XA transactions issue. XA Datasource is setup using Aries-XA auto enlistment. 使用mybatis组件检索此公开的数据源以执行数据库操作。XA提交、回滚在最初的几个事务中运行良好。随后,依赖于数据源的整个捆绑包失败,出现以下异常。一旦bundle重新启动,服务就可以正常工作,但时间有限。 StackTrace org.apache.camel.impl

用于公开数据源的蓝图xml

Jboss Fuse Aries XA transactions issue. XA Datasource is setup using Aries-XA auto enlistment.

使用mybatis组件检索此公开的数据源以执行数据库操作。XA提交、回滚在最初的几个事务中运行良好。随后,依赖于数据源的整个捆绑包失败,出现以下异常。一旦bundle重新启动,服务就可以正常工作,但时间有限。
StackTrace org.apache.camel.impl.DefaultMessage |方法名称:自动保存|日志数据:异常错误消息|异常消息:JTA事务意外回滚(可能是由于超时);嵌套异常为javax.transaction.RollbackException:无法提交:标记为回滚的事务|异常StackTrace:org.springframework.transaction.UnexpectedRollbackException:JTA事务意外回滚(可能是由于超时);嵌套异常为javax.transaction.rollback异常:无法提交:标记为回滚的事务 位于org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1015) 位于org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:755) 位于org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:724) 位于org.apache.aries.transaction.internal.AriesPlatformTransactionManager.commit(AriesPlatformTransactionManager.java:76) 在Proxya177c340_4c14_44ff_9bff_2753cc771417处提交(未知源) 位于org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:148) 位于org.apache.camel.spring.spi.TransactionErrorHandler.doInTransactionTemplate(TransactionErrorHandler.java:174) 位于org.apache.camel.spring.spi.TransactionErrorHandler.processInTransaction(TransactionErrorHandler.java:134) 位于org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:103) 位于org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:112) 位于org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191) 位于org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191) 位于org.apache.camel.component.directvm.DirectVmProcessor.process(DirectVmProcessor.java:55) 位于org.apache.camel.component.directvm.DirectVmProducer.process(DirectVmProducer.java:55) 位于org.apache.camel.processor.SendProcessor.process(SendProcessor.java:129) 位于org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77) 位于org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191) 位于org.apache.camel.processor.Pipeline.process(Pipeline.java:118) 位于org.apache.camel.processor.Pipeline.process(Pipeline.java:80) 位于org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:111) 位于org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77) 位于org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191) 位于org.apache.camel.processor.Pipeline.process(Pipeline.java:118) 位于org.apache.camel.processor.Pipeline.process(Pipeline.java:80) 位于org.apache.camel.processor.TryProcessor.process(TryProcessor.java:113) 位于org.apache.camel.processor.TryProcessor.process(TryProcessor.java:84) 位于org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77) 位于org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191) 位于org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191) 位于org.apache.camel.component.cxf.jaxrs.CxfRsInvoker.asyncInvoke(CxfRsInvoker.java:93) 位于org.apache.camel.component.cxf.jaxrs.CxfRsInvoker.performInvocation(CxfRsInvoker.java:68) 位于org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:97) 位于org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:200) 位于org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:99) 位于org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59) 位于org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:96) 位于org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307) 位于org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) 位于org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:251) 位于org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234) 位于org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208) 位于org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160) 位于org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:171) 位于org.apache.cxf.transport.servlet.AbstractHTTPServlet.HandlerRequest(AbstractHTTPServlet.java:293)
    <service interface="javax.sql.XADataSource" ref="oracle-XA-DB">
        <service-properties>
            <entry key="datasource.name" value="oracleXADB" />
            <entry key="aries.xa.name" value="oracle-XA-DB" />
            <entry key="aries.xa.username" value="${datasource.user}" />
            <entry key="aries.xa.password" value="${datasource.password}" />
            <entry key="aries.xa.pooling" value="true" />
            <entry key="aries.xa.poolMinSize" value="0" />
            <entry key="aries.xa.poolMaxSize" value="10" />
            <entry key="aries.xa.exceptionSorter" value="known" />
            <entry key="aries.xa.transaction" value="none" />
        </service-properties>
    </service>

This datasource exposed is retrieved using mybatis-component to execute the database operations. The XA commit, roll-backs are working fine for the initial few transactions. Later, the entire bundles dependent upon the datasource fails with the following exception. Once, the bundles are restarted, the services are working fine, but only for a limited time.