Camel事务配置!!

来源:互联网 发布:厨房专用垃圾桶淘宝 编辑:程序博客网 时间:2024/05/16 02:04

以下片段1, 2各添加事务, 然后将路由1,2加到路由0中, 在路由0中不加任何事务, 这样路由1,2的事务就独立了, 这是在同事的帮助下配置出来的.

两个事务添加到一个无事务的路由中, 这样两个事务就独立了.

<camel:camelContext id="camelContext">

  <!-- 0 -->
        <camel:route>
            <camel:from uri="direct:jdbc"></camel:from>
            <camel:to uri="direct:jdbc1"></camel:to>
            <camel:to uri="direct:jdbc2"></camel:to>
        </camel:route>

  <!-- 1 -->
        <camel:route>
            <camel:from uri="direct:jdbc1" />
            <camel:transacted />
            <camel:to uri="bean:testCamel6?method=insert3" />
        </camel:route>

   <!-- 2 -->    
        <camel:route>
            <camel:from uri="direct:jdbc2"></camel:from>
            <camel:transacted />
            <camel:to uri="bean:testCamel6?method=insert4" />
            <camel:to uri="bean:testCamel6?method=insert2" />
        </camel:route>
       
</camel:camelContext>

 

 

一个路由转到另一个路由中, 这两个路由都有事务, 这样的话它们是在同一个事务中的. 在尝试的时候思维固定在一个路由调另一个路由, 及在同一个路由中的情况,还有就是配置spring的声明式事务, 就是没有考虑将两个事务放到一个无事务中,这应该跟自己的知识面有关.

以上只是针对传播性为PROPAGATION_REQUIRED. 传播性为PROPAGATION_REQUIRES_NEW,因为需要jta的支持, 在系统中没有用到jta所以没有进行尝试.