使用Atomikos Transactions Essentials实现多数据源JTA分布式事务--转载
原文:http://www.ite/topic/122700
9.17 update:使用NonXADataSourceBean. Mysql在5.0版本和Connecter/J5.0版本后提供了XADatasource支持,如果使用了支持XADatasouce版本,可以參考2樓補充.?
最近做的project中遇到要將數據庫中的表分布到兩臺不同的服務器上的Mysql5.0中,project主要使用spring+ibatis。因此需要JTA的支持,但是tomcat不支持,所以就搜索開源的JTA實現。
最開始使用的是JOTM,但是使用中不能自動rollback,無論什么情況都commit。然后看到infoq上一篇文章提到Atomikos Transactions Essentials,Atomikos Transactions Essentials 3.0是Atomikos 開發的核心事務引擎,支持JDBC 以及JMS 的JTA/XA 事務。易于部署,輕量級,同時支持JDBC 以及JMS 。
Atomikos Transactions Essentials現在的版本是3.1.7,可以在http://www.atomikos.com/Main/TransactionsEssentialsDownloadForm?下載,在發布包里的examples文件夾下面有些例子,非常實用,我在使用中參考里面的例子很容易配置成功。先將發布包里面dist目錄下的atomikos-util.jar,transactions.jar,transactions-api.jar,transactions-jta.jar copy到項目lib里面, 如果使用hibernate則需要將另外兩個hibernate相關的jar頁copy到項目里面,spring配置文件如下:
事務的配置, 使用了spring2.0的語法,所以將namesapce也帖出來了.
這樣配置以后就可以使用分布式事務,測試中出現異常時事務也自動提交。和JOTM相比Atomikos Transactions Essentials更加穩定,它原來是商業項目,現在開源了。象mysql一樣賣服務支持的。而且論壇頁比較活躍,有問題很快可以解決。
轉載于:https://www.cnblogs.com/davidwang456/p/4353209.html
總結
以上是生活随笔為你收集整理的使用Atomikos Transactions Essentials实现多数据源JTA分布式事务--转载的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nginx自定义模块编写-实时统计模块-
- 下一篇: Dubbo入门实例--转载