概述
“Java 事务 API”(JTA)启用两阶段提交功能。当配置 WebSphere Application Server 以访问数据库时,可选择具有 JTA 能力的驱动程序。如果需要两阶段提交功能,则必须使用启用 JTA 的驱动程序。
只要您在事务中调用了多个数据库连接,就需要 JTA。只要您在事务中调用了多个数据库服务器,就需要两阶段提交。这些连接可以是相同的物理数据库服务器或多个数据库服务器。例如:
实体企业 Bean Entity1 在应用程序服务器 AppServer1 中部署。
实体企业 Bean Entity2 在应用程序服务器 AppServer1 中部署。
会话企业 Bean Session1 在应用程序服务器 AppServer1 中部署。
如果 Session1 对同一事务内的 Entity1 和 Entity2 调用了方法而这两个企业 Bean 正在使用不同的物理数据库连接,则必须对 Entity1 和 Entity2 使用的数据源启用 JTA。当从相同的数据源对象获取那些连接时,这也是成立的。这需要具有 JTA 能力的驱动程序以提交事务。
当事务涉及到多个进程时,JTA 也是必需的。例如,一个事务可能会涉及在多个应用程序服务器中部署的企业 Bean。
实体企业 Bean Entity1 在应用程序服务器 AppServer1 中部署。
实体企业 Bean Entity2 在应用程序服务器 AppServer2 中部署。
会话企业 Bean Session1 在应用程序服务器 AppServer1 中部署。
如果 Session1 对同一事务(此事务构成一个分布式事务)内的 Entity1 和 Entity2 调用了方法,则必须对 Entity1 和 Entity2 使用的数据源启用 JTA。
性能实现
JTA 启用的连接与非 JTA 启用的连接执行情况不同。基于此原因,如果您的应用程序不需要 JTA,则最好使用非 JTA 启用的驱动程序。
其它信息
有关 WebSphere Application Server 如何支持 JTA 的信息,参见 WebSphere Application Server 和 DB2 UDB iSeries 版的事务处理及其子主题。
Java Transaction API(JTA)
---------------------------------------------------------------------
JTA 是事务服务的 J2EE 解决方案。本质上,它是描述事务接口(比如 UserTransaction 接口,开发人员直接使用该接口或者通过 J2EE 容器使用该接口来确保业务逻辑能够可靠地运行)的 J2EE 模型的一部分。
JTA 具有的三个主要的接口分别是 UserTransaction 接口、TransactionManager 接口和 Transaction 接口。这些接口共享公共的事务操作,例如 commit() 和 rollback(), 但是也包含特殊的事务操作,例如 suspend(),resume() 和 enlist(),它们只出现在特定的接口上,以便在实现中允许一定程度的访问控制。例如,UserTransaction 能够执行事务划分和基本的事务操作,而 TransactionManager 能够执行上下文管理。本文仅仅需要您对 JTA 有一个基本的了解。
JTA 的好处?
JTA 是一个定义明确的事务服务,向 J2EE 应用程序开发人员提供一种可以直接使用的服务。作为选择,一个应用程序也可能这样部署,容器将代替开发人员来管理事务行为。在后一种情况下,开发人员能够全神贯注于他们的应用程序的业务逻辑,同时由 J2EE 容器来负责事务逻辑。
模型明确的事务服务的好处是对于每个单独的事务总是维持四个 ACID 特性。尽管这是一个实现相关的问题,WebSphere Application Server 提供为每个导入的或者导出的事务保护这些 ACID 特性的能力,而不管并发的事务数目是多少。
JTA 的限制?
经历过所有的事务体系结构,想要有效地将一组事务传送给其他并不共享同样模型的事务服务,同时保持原子的工作单元,是非常困难的。在我们的案例中,建模的 JTA 运行在 Java Transaction Service(JTS) 之上,JTS 处理输入和输出事务传送的请求。
因为 JTS 是一种由 CORBA 定义的对象事务服务(OTS)的 Java 实现,它只能够与另一个 OTS 模型连接。因此, 一个事务只能传送给另一个 OTS-兼容的目标,典型地即另一个 J2EE 实现。因为 JTA 和 JTS 规范没有对这些接口的底层实现加以限制 (只要它们符合模型),事务可以安全地在两个 J2EE-兼容的应用程序服务器之间传送,而没有丢失它们的 ACID 特性的风险。然而,J2EE 服务器并不必须处理非 J2EE 调用。
某些 J2EE 服务器可能是例外;例如,WebSphere Application Server 将正确地处理一个与 CORBA 兼容事务相关联的输入的 CORBA 请求,将这个事务传送给线程,然后在它的上下文里执行事务工作。然而,在大多数情况下,当您试图在事务模型之间移动的时候,您不得不超越 JTA 和 JTS,把目光投得更远,在这里 Web 服务出现了。
分享到:
相关推荐
javax.transaction.xa 提供定义事务管理器和资源管理器之间的协定的 API,它允许事务管理器添加或删除 JTA 事务中的资源对象(由资源管理器驱动程序提供)。 javax.xml 根据 XML 规范定义核心 XML 常量和功能。 ...
javax.transaction.xa 提供定义事务管理器和资源管理器之间的协定的 API,它允许事务管理器添加或删除 JTA 事务中的资源对象(由资源管理器驱动程序提供)。 javax.xml 根据 XML 规范定义核心 XML 常量和功能。 ...
Java 事务 API(Java Transaction API,简称 JTA)是 Java 平台标准版(Java EE)的一部分,用于处理分布式事务处理。JTA 提供了一种统一的接口,使得应用程序可以在不同的事务管理器和资源管理器之间进行切换,而...
Java EE API文档则更专注于构建企业级应用程序,包括了Servlet、JSP、EJB(Enterprise JavaBeans)、JMS(Java消息服务)、JPA(Java持久化API)、JTA(Java事务API)等技术。例如,Servlet和JSP是开发Web应用的基础...
Java EE API包含了一系列的组件和接口,这些组件和接口用于实现诸如Web服务、事务管理、安全控制、数据库连接、邮件服务、会话管理等功能。以下是一些主要的Java EE API及其功能概述: 1. **Servlet API**:这是...
Java Web API是Java平台用于构建Web应用程序的一组接口和类,涵盖了从服务器端处理到客户端交互的各种技术。在这个描述中,我们关注的关键技术包括Hibernate、Java EE、JDK、jQuery、Spring以及W3C School的API。让...
本文的目的是要提供一个关于的Java事务处理API(JTA)的高级的概述,以及与分布式事务相关的内容。一个事务处理定义了一个工作逻辑单元,要么彻底成功要么不产生任何结果。 一个分布式事务处理只是一个在两个或更多...
在Java中,实现分布式事务的方法有很多,例如使用JTA(Java Transaction API)或者Spring框架的声明式事务管理。 1. **JTA(Java Transaction API)**:这是Java平台的标准API,用于管理全局事务,可以跨越多个资源...
J2EE1.5.chm文档详细介绍了Java EE 1.5版本的API和技术,包括Servlet、JSP、EJB(Enterprise JavaBeans)、JMS(Java消息服务)、JTA(Java事务API)等企业级开发的关键组件。Servlet和JSP是构建动态Web应用的基础...
通过JDBC API,开发者可以执行SQL语句、管理事务、处理结果集等。 J2ME(Java 2 Micro Edition)是Java在嵌入式设备和移动设备上的应用平台,如手机和智能家电。"j2meapi07.chm"和"J2ME API.chm"提供了J2ME的API...
5. **兼容性**:JOTM与多种Java事务API兼容,如Java Transaction API (JTA) 和Java Transaction Service (JTS),这意味着它可以轻松地集成到使用这些API的Java EE应用服务器中。 6. **性能优化**:JOTM设计时考虑了...
4. **数据库连接**:JDBC(Java Database Connectivity)是Java与各种数据库交互的标准接口,允许开发者执行SQL语句,处理结果集,并进行事务管理。 5. **XML处理**:DOM(Document Object Model)和SAX(Simple ...
2. 编程式事务模型:编程式事务模型利用Java事务API (JTA),使开发人员能够直接控制事务的开始、提交和回滚。通过UserTransaction接口,开发人员可以调用begin()、commit()和rollback()方法来管理事务。虽然这种方法...
6. **Java Transaction API (JTA)**:`javax.transaction`包处理分布式事务,确保数据的一致性。 在前端和后台开发中,Java API也扮演着重要角色。例如,`javax.swing`和`java.awt`包提供了图形用户界面(GUI)组件...
Java EE API包含了用于数据库连接(JDBC)、服务器端组件(Servlet、JSP)、事务管理(JTA)、邮件服务(JavaMail)、EJB(Enterprise JavaBeans)、XML处理(JAXP)等多个领域的组件和接口。 1. **Servlet**:...
在实际应用中,Java事务管理可能会更复杂,包括使用Spring框架的@Transactional注解进行声明式事务管理,或者使用JTA(Java Transaction API)进行分布式事务处理。这些高级概念允许在多线程和分布式环境中更好地...
根据提供的文件信息,我们可以深入探讨“Java事务设计策略”这一主题。尽管提供的文件内容主要包含了出版信息而非具体的事务设计内容,但基于标题、描述及标签信息,我们可以推断出本书可能涉及的关键知识点,并据此...
6. **JTA(Java Transaction API)**: 事务管理接口,支持分布式事务处理。 7. **JNDI(Java Naming and Directory Interface)**: 用于查找和管理资源,如数据库连接池、邮件服务器等。 8. **JAF(Java Activation ...
- JTA (Java Transaction API) 和 JTS (Java Transaction Service):确保跨多个资源的事务一致性。 2. Java EE 1.6: - EJB 3.1:进一步简化了EJB,引入了无状态会话bean的轻量级实例化,以及定时服务。 - CDI ...
这份"Java网络编程资料"包含三个重要的学习资源:关于Socket套接字的"Java套接字编程.chm"、关于网络协议特别是TCP的"网络协议—Java网络编程之传输控制协议.chm"以及对Java事务API的介绍"相关API—Java Transaction...