JTA和事务管理器(TM)模型

Java Transaction API 允许您操作应用程序中的分布式事务(Distributed Transaction)。JTA 中有一组方法,它将传统的 JDBC 调用封装到了两阶段提交(Two-Phase-Commit)协议中。

在异构环境中,您通常会发现一个事务管理器(Transaction Manager),负责处理分布式事务。(实际上,事务管理器可以完成大量的工作负载平衡。)因此,不仅存在到数据库的直接连接,还有到事务管理器 (Transaction Manager)的连接。这就是 JTA 发挥作用的地方:JTA 是 Java 应用程序和事务管理器(Transaction Manager)之间的接口。下图演示了一个包含分布式事务的典型环境。

由于存在事务管理器(Transaction Manager),它通常包含在应用程序服务器(Application Server)中,就不再有两层(Two-Tier)架构。传统的客户/服务器(Client/Server)架构已经由三层(Tree-Tier)架构 所取代,三层架构包含应用程序/客户机事务管理器(Transaction Manager)/应用程序服务器(Application Server)数据库服务器,而数据库服务器一般称作XA Resource

  1. 包含 SQL 和 JTA 调用的 Java 应用程序。
  2. 管理分布式事务的应用程序服务器(Application Server)。
  3. 参与分布式事务的数据库。
  4. Java 应用程序向应用程序服务器(Application Server)提交常规 SQL 语句和通用的 XA 调用。
  5. 应用程序所发送的消息由应用程序服务器(Application Server)进行处理,并使用 SQL 和数据库供应商特定的 XA 调用发送给数据库。

通常,应用程序服务器(Application Server)提供了应用程序可以使用的多种服务。在谈到分布式事务时,该服务就称作XA Resource。当然,在应用程序可以使用 XA Resource 之前,首先要在应用程序服务器中注册和配置 XA Resource。

现在,如果您计划在应用程序中使用 JTA,就必须修改代码,以便还可以与应用程序服务器(Application Server)进行通信。这包括一些附加的方法调用和指定的错误/异常处理
 
原文地址:https://www.cnblogs.com/orientsun/p/2609889.html