-1

我的应用程序是一个连接到 mysql 数据库(数据库名称=mydb)的 spring 2.5 Hibernate 应用程序。该应用程序托管在 Tomcat 6 上 - 在 java 6 上运行。我有一个用例,管理员可以编辑用户的个人资料。我计划将这些编辑的历史记录存储在一个单独的数据库中(在同一个 mysql 服务器上 - 数据库 namne=archivedb)。在这种情况下,编辑用户功能跨越同一个 mysql 数据库中的两个数据库。我需要使用 JTA 事务吗?IF JTA,哪个实现是最好的。我更喜欢开源的。

桑托什

4

1 回答 1

0

关于这个,springsource 上有一篇很好的文章。但是请注意,它适用于 Spring 3.0(因为示例使用基于 java 的配置),但您很可能将其转换为 Spring 2.5 的基于注释/xml 的设置。

这里的关键是您使用 Spring 的 JtaTransactionManager 委托给嵌入式 XA 事务管理器。本文使用Atomikos,它是一种开源嵌入式 XA 事务管理器(请参阅“使用嵌入式事务管理器”部分)。

如您所见,它并没有那么复杂,Spring 为您做了很多抽象。但是,它对您的解决方案造成了相当大的复杂性,因此我将对您的架构进行另一次迭代,并评估分布式 (XA) 事务支持的好处是否值得您引入额外的复杂性。也许您真的不需要针对这个用例的完整 XA/两阶段提交事务?

于 2012-09-04T12:30:06.320 回答