首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Chained Transaction Manager与Atomikos

Spring Chained Transaction Manager与Atomikos
EN

Stack Overflow用户
提问于 2020-08-14 19:56:45
回答 1查看 545关注 0票数 1

您好,我有一个分布式事务,我必须以某种方式管理它们

另外,在spring生态系统中,ChainedTransactionManager可以做到这一点;另一方面,在spring文档中,Atomikos可以用于分布式事务

https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/html/boot-features-jta.html

我更喜欢使用spring库,但Atomikos不仅仅是spring事务管理器??如果有人同时使用它们,可以比较优缺点。

EN

回答 1

Stack Overflow用户

发布于 2020-08-14 22:51:21

使用Atomikos是一个更好的整体解决方案。在某些情况下,您可以使用ChainedTransactionManager。它所做的假设在javadoc中陈述:

PlatformTransactionManager实现,用于编排事务的创建、提交和回滚到委托列表。使用此实现假设导致事务回滚的错误通常会在事务完成之前或在提交最内部的PlatformTransactionManager期间发生。

配置的实例将以给定的顺序启动事务,并以相反的顺序提交/回滚,这意味着最有可能中断事务的PlatformTransactionManager应该是配置的列表中的最后一个。在提交期间抛出异常的PlatformTransactionManager将自动导致剩余的事务管理器回滚,而不是提交。

提交一个事务而另一个事务失败的可能性仍然存在于ChainedTransactionManager。

在两个数据库上使用Atomikos都是一个真正的分布式事务,要么全有要么全无。但这也会产生一些影响应用程序支持的后果,例如,当TX在一个数据库上完全提交并在另一个数据库上准备好时,应用程序就会崩溃。您需要确保您的应用程序可以从此场景中恢复。通常,当应用程序重新启动时,TX将在第二个DB上完全提交,但这可能不会发生。

那么哪一个是正确的呢?那得看情况。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63412326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档