`
jansener
  • 浏览: 50633 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论
阅读更多
概述
“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 服务出现了。

分享到:
评论

相关推荐

    JAVA_API1.6文档(中文)

    javax.transaction.xa 提供定义事务管理器和资源管理器之间的协定的 API,它允许事务管理器添加或删除 JTA 事务中的资源对象(由资源管理器驱动程序提供)。 javax.xml 根据 XML 规范定义核心 XML 常量和功能。 ...

    Java 1.6 API 中文 New

    javax.transaction.xa 提供定义事务管理器和资源管理器之间的协定的 API,它允许事务管理器添加或删除 JTA 事务中的资源对象(由资源管理器驱动程序提供)。 javax.xml 根据 XML 规范定义核心 XML 常量和功能。 ...

    JTA-Locking:Java 事务 API (JTA) 锁定技术

    Java 事务 API(Java Transaction API,简称 JTA)是 Java 平台标准版(Java EE)的一部分,用于处理分布式事务处理。JTA 提供了一种统一的接口,使得应用程序可以在不同的事务管理器和资源管理器之间进行切换,而...

    javaSE、javaEE api文档

    Java EE API文档则更专注于构建企业级应用程序,包括了Servlet、JSP、EJB(Enterprise JavaBeans)、JMS(Java消息服务)、JPA(Java持久化API)、JTA(Java事务API)等技术。例如,Servlet和JSP是开发Web应用的基础...

    java ee api

    Java EE API包含了一系列的组件和接口,这些组件和接口用于实现诸如Web服务、事务管理、安全控制、数据库连接、邮件服务、会话管理等功能。以下是一些主要的Java EE API及其功能概述: 1. **Servlet API**:这是...

    java web的api

    Java Web API是Java平台用于构建Web应用程序的一组接口和类,涵盖了从服务器端处理到客户端交互的各种技术。在这个描述中,我们关注的关键技术包括Hibernate、Java EE、JDK、jQuery、Spring以及W3C School的API。让...

    Java Transaction API概述

    本文的目的是要提供一个关于的Java事务处理API(JTA)的高级的概述,以及与分布式事务相关的内容。一个事务处理定义了一个工作逻辑单元,要么彻底成功要么不产生任何结果。 一个分布式事务处理只是一个在两个或更多...

    java分布式事务demo

    在Java中,实现分布式事务的方法有很多,例如使用JTA(Java Transaction API)或者Spring框架的声明式事务管理。 1. **JTA(Java Transaction API)**:这是Java平台的标准API,用于管理全局事务,可以跨越多个资源...

    javaAPI大全

    J2EE1.5.chm文档详细介绍了Java EE 1.5版本的API和技术,包括Servlet、JSP、EJB(Enterprise JavaBeans)、JMS(Java消息服务)、JTA(Java事务API)等企业级开发的关键组件。Servlet和JSP是构建动态Web应用的基础...

    java 常用api大全

    通过JDBC API,开发者可以执行SQL语句、管理事务、处理结果集等。 J2ME(Java 2 Micro Edition)是Java在嵌入式设备和移动设备上的应用平台,如手机和智能家电。"j2meapi07.chm"和"J2ME API.chm"提供了J2ME的API...

    基于java的开源事务管理器 JOTM.zip

    5. **兼容性**:JOTM与多种Java事务API兼容,如Java Transaction API (JTA) 和Java Transaction Service (JTS),这意味着它可以轻松地集成到使用这些API的Java EE应用服务器中。 6. **性能优化**:JOTM设计时考虑了...

    Java API 中文版 Java_Help_CHS.chm

    4. **数据库连接**:JDBC(Java Database Connectivity)是Java与各种数据库交互的标准接口,允许开发者执行SQL语句,处理结果集,并进行事务管理。 5. **XML处理**:DOM(Document Object Model)和SAX(Simple ...

    JavaTransaction

    2. 编程式事务模型:编程式事务模型利用Java事务API (JTA),使开发人员能够直接控制事务的开始、提交和回滚。通过UserTransaction接口,开发人员可以调用begin()、commit()和rollback()方法来管理事务。虽然这种方法...

    JAVA-API 全部资源

    6. **Java Transaction API (JTA)**:`javax.transaction`包处理分布式事务,确保数据的一致性。 在前端和后台开发中,Java API也扮演着重要角色。例如,`javax.swing`和`java.awt`包提供了图形用户界面(GUI)组件...

    java ee api中文版

    Java EE API包含了用于数据库连接(JDBC)、服务器端组件(Servlet、JSP)、事务管理(JTA)、邮件服务(JavaMail)、EJB(Enterprise JavaBeans)、XML处理(JAXP)等多个领域的组件和接口。 1. **Servlet**:...

    Java事务的简单代码

    在实际应用中,Java事务管理可能会更复杂,包括使用Spring框架的@Transactional注解进行声明式事务管理,或者使用JTA(Java Transaction API)进行分布式事务处理。这些高级概念允许在多线程和分布式环境中更好地...

    java事务设计策略

    根据提供的文件信息,我们可以深入探讨“Java事务设计策略”这一主题。尽管提供的文件内容主要包含了出版信息而非具体的事务设计内容,但基于标题、描述及标签信息,我们可以推断出本书可能涉及的关键知识点,并据此...

    JAVA API+JAVA EE API 参考文档

    6. **JTA(Java Transaction API)**: 事务管理接口,支持分布式事务处理。 7. **JNDI(Java Naming and Directory Interface)**: 用于查找和管理资源,如数据库连接池、邮件服务器等。 8. **JAF(Java Activation ...

    JAVA EE API-1.5&1.6.

    - JTA (Java Transaction API) 和 JTS (Java Transaction Service):确保跨多个资源的事务一致性。 2. Java EE 1.6: - EJB 3.1:进一步简化了EJB,引入了无状态会话bean的轻量级实例化,以及定时服务。 - CDI ...

    Java网络编程资料

    这份"Java网络编程资料"包含三个重要的学习资源:关于Socket套接字的"Java套接字编程.chm"、关于网络协议特别是TCP的"网络协议—Java网络编程之传输控制协议.chm"以及对Java事务API的介绍"相关API—Java Transaction...

Global site tag (gtag.js) - Google Analytics