分布式事务
分布式事务跨越两个或多个称为资源管理器的服务器。被称为事务管理器的服务器组件必须在资源管理器之间协调事务管理。如果分布式事务由 Microsoft 分布式事务处理协调器 (MS DTC))这类事务管理器或其它支持 X/Open XA 分布式事务处理规范的事务管理器进行协调,则 Microsoft® SQL Server™ 可以作为资源管理器运行。有关更多信息,请参见 Microsoft 分布式事务处理协调器文档。
实际上跨越两个或多个数据库的单个 SQL Server 中的事务就是分布式事务。但是,SQL Server 对分布式事务进行内部管理;对于用户而言,其操作就像本地事务一样。
对于应用程序,管理分布式事务很像管理本地事务。事务结束时,应用程序请求提交或回滚事务。不同的是,分布式提交必须由事务管理器管理,以尽量避免出现因网络故障而导致一个事务由某些资源管理器成功提交,但由另一些资源管理器回滚的情况。通过分两个阶段(准备阶段和提交阶段)管理提交进程可避免这种情况,这称为两阶段提交 (2PC)。
准备阶段
当事务管理器收到提交请求时,它给该事务所涉及的所有资源管理器发送一个准备命令。然后,每个资源管理器将尽力使该事务持久,并且所有保存该事务日志映象的缓冲区将被刷新到磁盘中。当每个资源管理器完成准备阶段时,它会向事务管理器返回准备成功或准备失败的消息。
提交阶段
如果事务管理器收到所有资源管理器发来的准备成功消息,它将给每个资源管理器发送提交命令。然后资源管理器就可以完成提交。如果所有资源管理器都报告提交成功,那么事务管理器则向应用程序发送一个成功提示。如果有资源管理器报告准备失败,那么事务管理器将给每个资源管理器发送一个回滚命令,并向应用程序表示提交失败。
SQL Server 应用程序可以通过 Transact-SQL 或数据库 API 管理分布式事务。
分享到:
相关推荐
为了解决大家在实施分布式服务化架构过程中关于分布式事务问题的困扰,本教程将基于支付系统真实业务中的经典场景来对“可靠消息的最终一致性方案”、“TCC两阶段型方案”和“最大努力通知型方案”这3种柔性事务解决...
分布式事务是数据库管理中的一种复杂操作,特别是在大型的互联网平台和分布式系统中不可或缺。它涉及到在多台机器或多个服务之间协调数据操作,以保证数据的一致性和完整性。分布式事务的出现是由于单一数据库无法...
分布式、事务、常用解决方案、案例分析
以上就是Java分布式服务开发中关于分布式事务的核心知识点。通过深入理解并灵活运用这些概念和技术,开发者可以构建出更健壮、可靠的分布式系统。为了更全面地学习分布式事务,可以参考“分布式事务专题.pdf”文档,...
本资源包提供了关于LCN框架的全面介绍,包括PPT讲解、教学视频以及实际项目整合的demo,非常适合对分布式事务感兴趣的开发者学习和实践。 首先,分布式事务是指跨越多个数据库或者存储系统的事务处理,其目标是确保...
为了解决大家在实施分布式服务化架构过程中关于分布式事务问题的困扰,本教程将基于支付系统真实业务中的经典场景来对“可靠消息的最终一致性方案”、“TCC两阶段型方案”和“最大努力通知型方案”这3种柔性事务解决...
本压缩包"rocketmq4.3 分布式事务-rocketmqTransaction.zip"可能包含了RocketMQ 4.3版本关于分布式事务的相关源码和示例,方便开发者深入理解和学习。 分布式事务是分布式系统中一个关键且复杂的问题,它旨在确保在...
本资料“分布式事务的一种实现方式状态流转共5页.pdf.zip”似乎提供了关于分布式事务状态流转的具体实现方法。在这个讨论中,我们将深入探讨分布式事务的原理、状态流转模型以及其在实际应用中的挑战与解决方案。 ...
在这个"Java编程代码-分布式事务-源代码+讲义+资料"的压缩包中,我们可以期待深入学习关于分布式事务的理论与实践。 首先,分布式事务的核心目标是实现ACID(原子性、一致性、隔离性和持久性)特性,这是数据库事务...
本文的目的是要提供一个关于的Java事务处理API(JTA)的高级的概述,以及与分布式事务相关的内容。一个事务处理定义了一个工作逻辑单元,要么彻底成功要么不产生任何结果。 一个分布式事务处理只是一个在两个或更多...
程立在2008年2月的中国软件大会上发布的关于分布式事务的PPT,被认为是分布式开发者必读的经典之作。他的演讲中提到的分布式事务处理的知识点,主要包括以下几个方面: 1. 分布式事务的基本概念:在大规模SOA系统中...
这事关于分布式事务的处理视频教程,内容很详细,网上绝大多数都要解压码,这个视频教程是本人在某宝商花重金购买的哦,绝对不加密,而且里面还包含相关的课件。
标题《基于非阻塞的分布式事务提交协议的实现》和描述提到了关于分布式事务提交协议的最新研究和实现,具体内容中介绍了两阶段提交(2PC)和三阶段提交(3PC)协议的缺点,并提出了一种新的基于非阻塞的两阶段提交协议...
这是一个关于使用SpringBoot和Seata构建分布式事务管理系统的计算机课程大作业项目。在这个项目中,学生将学习如何在微服务架构中处理分布式环境中的事务一致性问题。以下是该项目涉及的主要知识点和详细说明: **1...
DotNet的Com+分布式事务处理的配置与调试 分别讲述sql2000及sql2005中关于分布式事务处理所需的配置。 附有代码。 该文档有47页,内容丰富
分布式事务在现代微服务架构中扮演着至关重要的角色,它确保了在多个服务间的数据一致性。SpringCloud作为主流的微服务框架,提供了多种处理分布式事务的解决方案,其中之一就是LCN(Local Call Notification)。LCN...
分布式事务在现代大规模分布式系统中扮演着至关重要的角色,它确保了在多个节点间的数据一致性。两阶段提交(Two-Phase Commit, 2PC)是分布式事务中常见的一种协调协议,用于解决分布式环境下数据的一致性问题。这...
这事关于分布式事务的处理视频教程,内容很详细,网上绝大多数都要解压码,这个视频教程是本人在某宝商花重金购买的哦,绝对不加密,而且里面还包含相关的课件。
《Sharding-JDBC分布式事务应用》是一篇关于Java领域中如何利用Sharding-JDBC实现分布式事务的专题讨论。Sharding-JDBC是阿里巴巴开源的一款轻量级数据库中间件,它为Java开发者提供了一种透明化的数据分片解决方案...
收集的一些关于在现代开发运行环境(微服务等)下,解决分布式事务的论文。包括古老的saga论文,Atomikos公司Guy同学的一些想法及其它。