JTA 与本地事务

  1. 本地交易和BMT一样吗?

  2. 本地事务需要事务管理器吗?

    我读到 transactionManager 对本地事务无效。那是对的吗?

  3. JTA 为 CMT 和 BMT 提供了规定?


慕码人8056858
浏览 116回答 2
2回答

蛊毒传说

关于 BMT 或 CMT 的本地或全局事务处理没有区别。BMT 和 CMT 仅定义如何定义事务的开始和结束。在 CMT 中,它由带注释的方法的调用定义,在 BMT 中,事务的开始和结束是使用 UserTransaction 对象定义的。如果全局事务是必要的,或者更好的是分布式事务,那么事务管理器将独立于 BMT 或 CMT 进行安排。一旦涉及多个事务资源,就需要这些全局事务或两阶段提交。例如,如果您使用 MessageDriven bean,该 bean 调用注释为“Beanmanaged transaction processing”的 bean 并在 DBMS 中进行更改。在这种情况下,对消息队列和 DBMS 这两个资源都进行了两阶段提交。所以,回答你的问题:不,答案见上文。如果没有事务管理器,您将无法使用多个资源进行事务。J2EE-Containers 通常提供分布式事务的容器将使用事务管理器处理所有事务。在 jboss,您可以将数据源配置为“无 jta”,在这种情况下,您可以明确地将它们从两阶段提交中排除,但我认为尽管如此,jboss-transactionmanager 仍将处理此类数据源的 db-connections。是的,如果“提供”是指“支持”
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java