Spring多数据源JTA事务
??? 当我们的项目中需要应用到多个数据源时,事务的管理就很重要了。而Spring的JTA事务就很好的帮助了我们进行了多数据源的事务处理。
通过集成JOTM,直接在Spring中使用JTA事务
??? JOTM(Java Open Transaction Manager)是ObjectWeb的一个开源JTA实现,它本身也是开源应用程序服务器JOnAS(Java Open Application Server)的一部分,为其提供JTA分布式事务的功能。
??? Spring 2.0附带的依赖类库中虽然包含jotm类库,但是并不完整,你可以到http://jotm.objectweb.org下载完全版的JOTM。
??? Spring为JOTM提供了一org.springframework.transaction.jta.JotmFactoryBean支持类,通过该支持类可以方便地创建JOTM本地实例。
??? 下面我们通过实例来使用JTA事务:
1.从http://www.findjar.com中找到以下jar包添加到你的项目中:
jotm-core-2.1.5.jar
jotm-2.0.10.jar
carol-3.0.7.jar
carol-interceptors-1.0.1.jar
xapool-1.5.0.jar
jotm-carol-1.5.3.jar
jotm-core-2.1.5.jar
jotm-jrmp-stubs-2.0.10.jar
transactions-api-3.2.3.jar
atomikos-util-3.2.3.jar
transactions-jta-3.2.3.jar
transactions-3.2.3.jar
connector.jar
2.添加JOTM配置文件carol.properties,放到类路径下:
两种方法:(1).从carol-3.0.7.jar中复制carol-defaults.properties到项目中,将文件名改为carol.properties即可
(2).自已手动编写,配置文件内容如下:
??? #JNDI调用协议
??? carol.protocols=jrmp
??? #不使用CAROL JNDI封装器
??? carol.start.jndi=false
??? #不启动命名服务器
??? carol.start.ns=false
??? # Indicate if a protocol-independent environment is used.
??? # Otherwise the environment of the default protocol is used.
??? carol.multi.env = true
3.编写spring配置文件
?上面的配置文件中是操作数据库表是用jdbcTemplate,这个我觉得不好用,缺点是不能用Hql语句,而下面的spring配置文件中使用的是HibernateDaoSupport,内容如下:
?
完成上面的步骤后,你就可以进行测试了。我自己测试的是OK的