为了账号安全,请及时绑定邮箱和手机立即绑定

JTA 与本地事务

JTA 与本地事务

慕码人8056858 2021-10-27 16:50:02
本地交易和BMT一样吗?本地事务需要事务管理器吗?我读到 transactionManager 对本地事务无效。那是对的吗?JTA 为 CMT 和 BMT 提供了规定?
查看完整描述

2 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

关于 BMT 或 CMT 的本地或全局事务处理没有区别。

BMT 和 CMT 仅定义如何定义事务的开始和结束。在 CMT 中,它由带注释的方法的调用定义,在 BMT 中,事务的开始和结束是使用 UserTransaction 对象定义的。

如果全局事务是必要的,或者更好的是分布式事务,那么事务管理器将独立于 BMT 或 CMT 进行安排。

一旦涉及多个事务资源,就需要这些全局事务或两阶段提交。例如,如果您使用 MessageDriven bean,该 bean 调用注释为“Beanmanaged transaction processing”的 bean 并在 DBMS 中进行更改。在这种情况下,对消息队列和 DBMS 这两个资源都进行了两阶段提交。

所以,回答你的问题:

  1. 不,答案见上文。

  2. 如果没有事务管理器,您将无法使用多个资源进行事务。J2EE-Containers 通常提供分布式事务的容器将使用事务管理器处理所有事务。在 jboss,您可以将数据源配置为“无 jta”,在这种情况下,您可以明确地将它们从两阶段提交中排除,但我认为尽管如此,jboss-transactionmanager 仍将处理此类数据源的 db-connections。

  3. 是的,如果“提供”是指“支持”


查看完整回答
反对 回复 2021-10-27
  • 2 回答
  • 0 关注
  • 115 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信