首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XA/JTA事务是否仍在使用?

XA/JTA事务是否仍在使用?
EN

Stack Overflow用户
提问于 2011-12-08 03:53:58
回答 2查看 3.5K关注 0票数 5

我有一个可以与多个数据库和一些自定义服务交互的应用程序。对于某些操作,我需要类似事务的行为,即一组更改要么跨所有数据库/服务提交,要么在发生错误时全部回滚。

来自X/Open组的XA标准和Java JTA似乎使用两阶段提交过程恰好解决了这个问题。一些数据库(mySQL、Postgres、Oracle)支持这些接口,但我感觉它们并不经常使用或越来越流行。这是真的吗?如果是这样,为什么呢?

我知道mySQL上的XA存在一些与复制相关的问题。此外,XA事务可能会明显变慢。XA不受欢迎/不常见还有其他原因吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-08 07:11:54

XA有以下几点:

  • 它完成了它的工作,没有公认的替代方案。如果您必须使用分布式事务,那么就没有办法绕过XA。
  • 它是“标准技术”,没有炒作,也没有营销。
  • 即使在使用时,Jack Application Developer也很有可能不知道它,因为大多数部分通常隐藏在一些XA需求中。XA的需求确实在下降,因为面向服务的体系结构(
  • )和消息队列是试图避免子系统之间紧密耦合的架构范例。尽管至少SOA似乎也在很好地衰落。;-)
  • 经常忘记的XA部分是当事务实际中断时所需的代码和工具。在XA的一些外围环境中,事务管理器在相当长的一段时间内既不能提交也不能回滚所有资源。这一点只会增加“只有当你真的必须使用它时才使用”的点。
票数 7
EN

Stack Overflow用户

发布于 2011-12-08 04:00:17

它们仍然用于您所提到的内容。如果其中一个数据库上的操作失败,那么所有操作都会回滚。

它们比较慢,因此如果不需要XA (即它是自治操作或非事务性的),那么就不应该使用它。

在处理多个DB时,Java容器甚至可能强制您使用XA数据源。

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

https://stackoverflow.com/questions/8421631

复制
相关文章

相似问题

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