spring + ibatis 多数据源事务(分布式事务)管理配置方法(转)
2014-02-14 15:48
405 查看
spring + ibatis 多数据源事务(分布式事务)管理配置方法(转) 1、我先要给大家讲一个概念:spring 的多数据源事务,这是民间的说法。官方的说法是:spring 的分布式事务。明白了这个概念,问题就好解决了。 2、分布式事务的应用场景:工程中使用两个及以上数据库中,就要考虑使用分布式事务管理,否则事务不能回滚。 3、现有两种开源的第三方jar支持spring的分布式事务管理,它们分别是:jotm和Atomikos。通过google可以找到下载的链接,其中atomikos的下载需要先填写email信息,再登录email找到链接去下载。下载地址分别: 1、http://jotm.objectweb.org/ 2、http://www.atomikos.com/Main/InstallingTransactionsEssentials 我使用的是jotm。 4、基于spring+ibatis的环境下配置jotm的方法很简单。只城要修改spring数据源的配置及事务的配置及可。以下是我的配置,供参考。 Xml代码 <bean id="jotm" class="org.springframework.transaction.jta.JotmFactoryBean"> <property name="defaultTimeout" value="500000"/> </bean> <bean id="dataSource" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown"> <property name="dataSource"> <bean class="org.enhydra.jdbc.standard.StandardXADataSource" destroy-method="shutdown"> <property name="transactionManager" ref="jotm"/> <property name="driverName" value="${driverClass}"/> <property name="url" value="${jdbcUrl}"/> </bean> </property> <property name="user" value="${user}"/> <property name="password" value="${password}"/> </bean> <bean id="dataSourceBbs" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown"> <property name="dataSource"> <bean class="org.enhydra.jdbc.standard.StandardXADataSource" destroy-method="shutdown"> <property name="transactionManager" ref="jotm"/> <property name="driverName" value="${bbs.driverClass}"/> <property name="url" value="${bbs.jdbcUrl}"/> </bean> </property> <property name="user" value="${bbs.user}"/> <property name="password" value="${bbs.password}"/> </bean> <!-- JTA事务管理器 --> <bean id="myJtaManager" class="org.springframework.transaction.jta.JtaTransactionManager"> <property name="userTransaction" ref="jotm" /> </bean> <!-- 事务切面配置 --> <aop:config> <aop:pointcut id="serviceOperation" expression="execution(* com.bohai.service.impl.*.*(..))"/> <aop:advisor pointcut-ref="serviceOperation" advice-ref="txAdvice" order="0" /> </aop:config> <!-- 通知配置 --> <tx:advice id="txAdvice" transaction-manager="myJtaManager"> <tx:attributes> <tx:method name="delete*" propagation="REQUIRED" /> <tx:method name="save*" propagation="REQUIRED" /> <tx:method name="update*" propagation="REQUIRED" /> <tx:method name="*" propagation="REQUIRED" /> <tx:method name="find*" propagation="SUPPORTS" read-only="true"/> <tx:method name="get*" propagation="SUPPORTS" read-only="true"/> <tx:method name="fetch*" propagation="SUPPORTS" read-only="true"/> <tx:method name="*_noTrans" propagation="NOT_SUPPORTED"/> </tx:attributes> </tx:advice> 5、jtom 还需要一个配置文件 carol.properties ,内容是: Java代码 # do not use CAROL JNDI wrapper carol.start.jndi=false # do not start a name server carol.start.ns=false # Naming Factory carol.jndi.java.naming.factory.url.pkgs=org.apache.naming 文件放在classpath下面,也就是src下面。 6、需要jtom的以下jar: 转载自:http://www.blogjava.net/hao446tian/
相关文章推荐
- spring + ibatis 多数据源事务(分布式事务)管理配置方法(转)
- spring + ibatis 多数据源事务(分布式事务)管理配置方法(转)
- spring + ibatis 多数据源事务(分布式事务)管理配置方法(转)
- spring + ibatis 多数据源事务(分布式事务)管理配置方法(转)
- spring + ibatis 多数据源事务(分布式事务)管理配置方法 - 博海软件 - ITeye博客
- Spring3.0配置多个事务管理器(即操作多个数据源)的方法
- Spring3.0配置多个事务管理器(即操作多个数据源)的方法
- Spring Boot多数据源及其事务管理配置方法
- spring数据源配置及事务管理--mybatis3
- Spring声明式事务配置管理方法(Spring中的四种声明式事务的配置)
- 基于纯Java代码的Spring容器和Web容器零配置的思考和实现(1) - 数据源与事务管理
- spring+springMVC中使用@Transcational方式管理事务的配置方法
- Spring 下事务管理 - 使用 AOP XML 配置管理(iBatis 为例)
- spring数据源配置及事务管理--hibernate4
- Spring 下事务管理 - 使用 AOP XML 配置管理(iBatis 为例)
- spring.net tx:advice 和 aop:config 配置事务 匹配名字的方法管理事务
- spring+springMVC中使用@Transcational方式管理事务的配置方法
- spring数据源配置及事务管理--jdbc
- Spring + Atomikos配置多个数据源,并且管理事务
- Spring配置事务管理方法