JTA

白昼怎懂夜的黑 提交于 2019-11-28 08:33:30

概念

java事务API(Java Transaction API,简称JTA)是一个Java企业版的应用程序接口。不过JTA只是提供了一个接口,并没有提供具体的实现。

常见的JTA实现如下

  • J2EE容器所提供的JTA实现(JBoss)
  • 独立的JTA实现:如JOTM,Atomikos

二阶段提交协议

  • 将各个库视为参与者,而将分布式事物管理器视为协调者
  • 协调者对各参与者发起预提交请求
  • 各参与者预提交后向协调者确认可以提交
  • 协调者再对各参与者发起提交请求
  • 各参与者提交事务,并向协调者确认提交成功
  • 上述期间任何错误,都有可能造成各库数据全部回滚

三阶段提交协议(两阶段提交的升级版)

JTA的缺点

  • 实现复杂,通常情况下,JTA UserTransaction需要从JNDI获取
  • JTA本身就是个笨重的API
  • 通常JTA只能在应用服务器环境下使用,因此使用JTA会限制代码的复用性
  • JTA在实际开发中并不常用,业内主要采用MQ等异步方式解决一致性问题
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!