zoukankan      html  css  js  c++  java
  • spring多数据源事务配置

    项目中遇到多数据源问题,

    对于每个数据源需要单独完成事务控制,

    这里记录下具体实现方法

    在spring配置文件中

    定义两个数据源

      <!-- 数据源定义(spring-jndi) -->
        <jee:jndi-lookup id="datasourceX" jndi-name="jdbc/x" />
       <!-- 数据源定义(spring-jndi) -->
        <jee:jndi-lookup id="datasourceY" jndi-name="jdbc/y" />

    定义了两个事务管理器:transactionManagerX,transactionManagerY,分管两个数据源datasourceX和datasourceY.

    <bean id="transactionManagerX" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="datasourceX" />
        </bean>
        
        <bean id="transactionManagerY" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="datasourceY" />
        </bean>

      <!-- 使用annotation定义事务驱动 -->
        <tx:annotation-driven transaction-manager="transactionManagerX" />

     <tx:annotation-driven transaction-manager="transactionManagerY" />

    在使用时使用如下方式,区分事务是对于哪一个数据源做操作:

       @Transactional(value = "transactionManagerX", rollbackFor = Exception.class)

       @Transactional(value = "transactionManagerY", rollbackFor = Exception.class)

    另外做下记录,如果需要在多数据源之间完成事务性操作,需要使用Java/JTA 事务处理工具,例如:Atomikos!

  • 相关阅读:
    不怕上不了 Android developers
    不花钱的可靠性设计
    linux2.6 内核特性配置
    Linux动态库的编译与使用 转载
    多线程使用互斥锁的C范例
    TSLIB 分析
    Notepad++中文版下载 以及HEX显示
    C程序实现在lcd 上全屏写 blue 色 及获取fb信息
    pthread_cond_wait的spurious wakeup问题
    查看linux内存条数的命令与清理内存使用
  • 原文地址:https://www.cnblogs.com/widget90/p/8017105.html
Copyright © 2011-2022 走看看