spring+mybatis+atomikos 实现JTA事务

sping配置多个数据源 不同用户操作不同数据库 http://www.oschina.net/code/snippet_2287006_56769

1:spring3.0之后不再支持jtom[jta]了,第三方开源软件atomikos(http://www.atomikos.com/)来实现.
2:org.springframework.transaction.jta.JotmFactoryBean类,spring-tx-2.5.6.jar中有此类,spring-tx-3.0.0.RELEASE.jar之后没有此类。
3:atomikos事务控制框架,其中看到有3种数据源,分别是,SimpleDataSourceBean,AtomikosDataSourceBean,AtomikosNonXADataSourceBean。
a:SimpleDataSourceBean: 这个是最简单地数据源配置,需要配置XA驱动。
b:AtomikosDataSourceBean:  分布式数据源,Atomikos实现的数据源,需要配置XA驱动,推荐此配置,可以配置连接池的信息。
c:AtomikosNonXADataSourceBean: 非分布式数据源,该数据源配置需要普通JDBC的驱动,可以配置连接池:
4:Atomikos支持XA(全局事务)和NON-XA(非全局事务),NON-XA[nonxadatasource]效率高于XA.XA事务往往是包括多个数据源的全局事务,非XA是单个数据源的.
5:XA连接是一个JTA事务中的参与者。XA连接不支持JDBC的自动提交特性。也就是说应用程序不必在xadatasource[XA]连接上调用

 

关于配置: http://www.tianshouzhi.com/api/tutorials/distributed_transaction/386 当我们想对默认的配置进行修改时,可以在classpath下新建一个jta.properties,覆盖同名的配置项即可。关于不同版本配置的差异,请参考官方文档:https://www.atomikos.com/Documentation/JtaProperties

 

第三种方式: 非第三方驱动的方式

https://blog.csdn.net/MassiveStars/article/details/54025236

 

 

jta.properties

第一方式: 原生的Atomikos

spring+mybatis+Atomikos JTA事务配置说明 http://lizhao6210-126-com.iteye.com/blog/1958831

db.properties

applicationContext-mybatis-atomikos.xml

第二种方式:Atomikos + Druid

参考: https://my.oschina.net/u/576223/blog/708642 比较详细
atomikos支持一个分布式事务,结合spring,可以很好的满足一个应用访问多个库的需要。
Spring多数据源分布式事务管理/springmvc+spring+atomikos[jta]+druid+mybatishttp://www.codexiu.cn/mysql/blog/10637/, 这里有bean继承方式配置, 配置有所修改: 执行成功之后, 记录数多的时候很慢,超过10w条记录,可能会出现连接关闭异常

maven

jdbc.properties

spring-atomikos.xml