gpt4 book ai didi

jta - JTA 和本地事务有什么区别?

转载 作者:行者123 更新时间:2023-12-03 05:12:26 27 4
gpt4 key购买 nike

JTA 和本地事务有什么区别?

如果有一个示例可以展示何时使用 JTA 以及何时使用本地事务,那就太好了。

最佳答案

JTA 是用于管理 Java 事务的通用 API。它允许您以资源中立的方式启动、提交和回滚事务。事务状态通常存储在 TLS(线程本地存储)中,并且可以传播到调用堆栈中的其他方法,而不需要传递一些显式上下文对象。事务性资源可以加入正在进行的事务。如果有多个资源参与此类事务,则其中至少一个必须是所谓的 XA 资源。

资源本地事务是您使用特定单个资源使用其自己的特定 API 进行的事务。此类事务通常不会传播到调用堆栈中的其他方法,并且您需要传递一些显式上下文对象。在大多数资源本地事务中,不可能有多个资源参与同一事务。

您可以在 Java SE 中的低级 JDBC 代码中使用资源本地事务。这里上下文对象由java.sql.Connection 的实例表示。资源本地事务的其他示例是开发人员在 2002 年左右创建企业应用程序。由于事务管理器(JTA 使用)在那个时代非常昂贵、闭源且设置复杂,因此人们选择了更便宜且更容易获取资源本地变体。

基本上在所有其他场景中您都会使用 JTA 事务。非常简单、小型、免费和开源的服务器,如 TomEE (25MB) 或 GlassFish (35MB) 都具有开箱即用的 JTA 支持。无需设置任何内容,它们即可正常工作。

最后,EJB 和 Spring 等技术通过提供声明性事务,甚至使 JTA 更易于使用。在大多数情况下,建议使用它们,因为它们更容易、更干净且不易出错。 EJB 和 Spring 都可以在幕后使用 JTA。

关于jta - JTA 和本地事务有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9552718/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com