JTA 是事务服务的 J2EE 解决方案。本质上,它是描述事务接口(比如 UserTransaction 接口,开发人
员直接使用该接口或者通过 J2EE 容器使用该接口来确保业务逻辑能够可靠地运行)的 J2EE 模型的一部分
。JTA 具有的三个主要的接口分别是 UserTransaction 接口、TransactionManager 接口和 Transaction 接
口。这些接口共享公共的事务操作,例如 commit() 和 rollback(), 但是也包含特殊的事务操作,例如
suspend(),resume() 和 enlist(),它们只出现在特定的接口上,以便在实现中允许一定程度的访问控制。
例如,UserTransaction 能够执行事务划分和基本的事务操作,而 TransactionManager 能够执行上下文管
理。
http://www.it55.com/html/xueyuan/chengxukaifa/JAVAjiaocheng/20070719/102483_6.html
JTA UserTransaction与JTA TransactionManager比较
让我们来看一下Spring对JTA支持的细节。虽然并非经常需要考虑这个细节但了解相关的细节还有必要的。对简单的用例如前面章节的示例,标准的JtaTransactionManager定义已经足够了,
缺省的Spring JtaTransactionManager设置会从标准JNDI位置(J2EE规范所定义的java:comp/UserTransaction)获取 JTA的javax.transaction.UserTransaction对象。这对大部分标准J2EE环境来说已经足够了。
然而,缺省的JtaTransactionManager不能执行事务暂停(也就是说不支持PROPAGATION_REQUIRES_NEW和 PROPAGATION_NOT_SUPPORTED)。原因就在于标准的JTA UserTransaction接口不支持事务的暂停和恢复,而只支持开始和完成新的事务。
为了实现事务的暂停,需要一个javax.transaction.TransactionManager实例,他提供了JTA定义的标准的暂停和恢复方法。不幸的是,J2EE没有为JTA TransactionManager定义标准的JNDI位置!因此,我们需要使用厂商自己的定位机制。
清单6:
<bean id="transactionManager"
class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="transactionManagerName">
<value>vendorSpecificJndiLocation</value>
</property>
</bean>
J2EE本质上没有考虑将JTA TransactionManager接口作为公共API的一部分。JTA规范自身定义了将TransactionManager接口作为容器集成的想法。虽然这是可以理解的,但是JTA TransactionManager的标准JNDI位置还是可以增加一定的价值,特别是对轻量级容器如Spring,这样任何J2EE服务器就可以用统一的方式来定位JTA TransactionManager了。
不仅Spring的JtaTransactionManager可以从访问中获益,O/R映射工具如Hibernate, Apache OJB, and Kodo JDO也能得到好处,因为他们需要在JTA环境中执行缓存同步的能力(释放缓存意味着JTA事务的完成)。这种注册事务同步的能力只有JTA TransactionManager接口才能提供,而UserTransaction是处理不了的。因此,这些工具都需要实现自己的 TransactionManager定位器。
为JTA TransactionManager定义标准的JNDI位置是许多底层软件供应商最期望J2EE实现的功能。如果J2EE5.0的规范制定团队能够认识到这个特性的重要性就太好了。幸运地是,高级J2EE服务器如WebLogic Server已经考虑将JTA TransactionManager作为公共的API包含在扩展功能中。
分享到:
相关推荐
MSDTC(Distributed Transaction Coordinator)服务是 SQL Server 分布式事务的核心组件,负责管理分布式事务。要使用分布式事务,必须在参与的双方服务器启动 MSDTC 服务。 知识点:MSDTC 服务是 SQL Server ...
"阿里云专有云企业版V3.8.1全局事务服务安全白皮书" 阿里云专有云企业版V3.8.1全局事务服务安全白皮书是阿里云发布的一份关于其专有云企业版V3.8.1全局事务服务的安全白皮书。这份白皮书旨在提供阿里云专有云企业版...
"阿里云专有云企业版V3.8.1全局事务服务用户指南" 本资源摘要信息是关于阿里云专有云企业版V3.8.1全局事务服务用户指南的知识点总结。 知识点1:法律声明 阿里云在法律声明中明确了使用本文档的前提条件,包括下载...
【2019年金融事务服务中心财政拨款收支总体情况】 2019年金融事务服务中心的财政拨款收支情况反映了该服务中心当年的预算执行状况。根据提供的数据,服务中心的总收入为163.93万元,全部来自一般公共预算,而没有...
阿里云专有云企业版V3.8.1全局事务服务产品简介 阿里云专有云企业版V3.8.1全局事务服务产品简介是阿里云公司发布的一份官方文档,旨在向用户介绍阿里云专有云企业版V3.8.1全局事务服务的功能、特点和使用方法。该...
"阿里云专有云企业版V3.8.1全局事务服务运维指南20190910" 阿里云专有云企业版V3.8.1全局事务服务运维指南是一份详细的运维指南,旨在帮助用户理解和使用阿里云专有云企业版V3.8.1全局事务服务。本指南涵盖了法律...
阿里云专有云企业版V3.5.2全局事务服务GTS技术白皮书 阿里云专有云企业版V3.5.2全局事务服务GTS技术白皮书是阿里云推出的一个全局事务服务解决方案,旨在帮助企业快速构建可靠的分布式事务处理系统。该解决方案基于...
它致力于提供高性能和简单易用的分布式事务服务,使得开发者在微服务架构或者分布式系统中能够轻松地处理分布式事务。Seata 的目标是简化分布式事务的开发过程,提高系统的可扩展性和可靠性。 在分布式环境中,事务...
阿里云专有云Enterprise版全局事务服务GTS技术白皮书 本文档介绍了阿里云专有云Enterprise版全局事务服务GTS技术白皮书的主要内容,包括法律声明、通用约定、产品概述、架构设计、部署架构、集群管理、事务管理、...
【社会事务服务支部述职报告】 在撰写社会事务服务支部述职报告时,我们需要全面回顾和总结过去一年或一定时期内,支部在社会事务管理工作中的职责履行、工作成效、问题与挑战,以及未来的规划与改进措施。以下是对...
阿里云专有云Enterprise版全局事务服务GTS V3.3.0 用户指南 20180312.pdf 本文档是阿里云专有云Enterprise版全局事务服务GTS V3.3.0 的用户指南,旨在为用户提供详细的操作指引和使用说明。本文档版本为 V3.3.0,...
阿里云专有云企业版V3.8.2全局事务服务用户指南主要涵盖了关于全局事务服务(Global Transaction Service,简称GTS)的详细信息,旨在帮助用户理解和使用该服务。全局事务服务是一种分布式事务解决方案,它能够处理...
阿里云专有云Enterprise版全局事务服务GTS技术白皮书V3.3.0 全局事务服务GTS是一个分布式事务管理系统,旨在提供高可用性、低延迟、可扩展的全局事务管理解决方案。该系统可以帮助用户快速构建高可用性的事务应用...
全局事务服务(Global Transaction Service, GTS)是阿里云专有云企业版提供的一种分布式事务解决方案,旨在解决在大规模分布式系统中实现跨服务、跨数据库的一致性事务处理问题。GTS通过提供强一致性的全局事务服务...
阿里云专有云企业版全局事务服务运维指南是一款针对企业级用户的详尽指导文档,适用于版本V3.8.2。这份文档主要涵盖了全局事务服务的运维相关知识,旨在帮助用户更好地理解和管理阿里云的全局事务服务,确保业务的...
"阿里云专有云Enterprise版全局事务服务GTS V3.1.0 验收指南 20171129.pdf" 本文档是阿里云专有云Enterprise版全局事务服务GTS V3.1.0的验收指南,旨在指导用户正确使用GTS服务。文档中包含法律声明、通用约定、...
阿里云专有云企业版V3.8.2全局事务服务安全白皮书是针对该特定版本的阿里云服务的安全性和合规性指南。全局事务服务(Global Transaction Service, GTS)是阿里云提供的一种分布式事务解决方案,旨在确保在大规模...
阿里云专有云企业版V3.5.2全局事务服务GTS用户指南 本文档是阿里云专有云企业版V3.5.2全局事务服务GTS用户指南,旨在为用户提供详细的操作指南和使用说明。本文档涵盖了GTS的基本概念、架构设计、网络配置、事务...
全局事务服务GTS (Global Transaction Service) 是阿里云推出的一款分布式事务解决方案,旨在解决在分布式环境下数据一致性的问题。GTS支持跨数据库、跨服务的分布式事务处理,确保在大规模分布式系统中的事务操作...