什么是分布式事务

本篇文章给大家分享的是有关什么是分布式事务,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

创新互联建站长期为近千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为耒阳企业提供专业的成都网站设计、做网站、成都外贸网站建设公司耒阳网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。

分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。

为了实现分布式事务,需要使用下面将介绍的两阶段提交协议。 * 阶段一:开始向事务涉及到的全部资源发送提交前信息。此时,事务涉及到的资源还有最后一次机会来异常结束事务。如果任意一个资源决定异常结束事务,则整个事务取消,不会进行资源的更新。否则,事务将正常执行,除非发生灾难性的失败。为了防止会发生灾难性的失败,所有资源的更新都会写入到日志中。这些日志是永久性的,因此,这些日志会幸免于难并且在失败之后可以重新对所有资源进行更新。 * 阶段二:只在阶段一没有异常结束的时候才会发生。此时,所有能被定位和单独控制的资源管理器都将开始执行真正的数据更新。 在分布式事务两阶段提交协议中,有一个主事务管理器负责充当分布式事务协调器的角色。事务协调器负责整个事务并使之与网络中的其他事务管理器协同工作。 为了实现分布式事务,必须使用一种协议在分布式事务的各个参与者之间传递事务上下文信息,IIOP便是这种协议。这就要求不同开发商开发的事务参与者必须支持一种标准协议,才能实现分布式的事务。

在 Transact-SQL 中启动的分布式事务的结构相对比较简单:

1. Transact-SQL脚本或应用程序连接执行启动分布式事务的 Transact-SQL 语句。

2. 执行该语句的 Microsoft® SQL Server™ 成为事务中的主控服务器。

3. 然后脚本或应用程序对链接的服务器执行分布式查询,或对远程服务器执行远程存储过程。

4. 当执行了分布式查询或远程过程调用后,主控服务器将自动调用 MS DTC 以便登记分布式事务中链接的服务器和远程服务器。

5. 当脚本或应用程序发出 COMMIT 或 ROLLBACK 语句时,主控 SQL Server 将调用 MS DTC 管理两阶段提交过程,或者通知链接的服务器和远程服务器回滚其事务。

语句

控制分布式事务的 Transact-SQL 语句很少,因为多数工作都由 Microsoft® SQL Server™ 和 MS DTC 在内部完成。Transact-SQL 脚本或应用程序中所需的 Transact-SQL 语句只须:

●启动分布式事务。

●对链接的服务器执行分布式查询,或对远程服务器执行远程过程调用。

●调用标准 Transact-SQL COMMIT TRANSACTION、COMMIT WORK、ROLLBACK TRANSACTION 或 ROLLBACK WORK 语句完成事务。

●对于任意一个 Transact-SQL 分布式事务,处理 Transact-SQL脚本或连接的 SQL Server 将自动调用 MS DTC 以协调事务的提交或回滚。

REMOTE_PROC_TRANSACTIONS 选项是一个兼容性选项,只影响对使用sp_addserver定义的远程服务器所进行的远程存储过程调用。有关远程存储过程的更多信息,请参见远程存储过程构架。该选项不适用于在使用sp_addlinkedserver定义的链接服务器上执行存储过程的分布式查询。有关分布式查询的更多信息,请参见分布式查询。

以上就是什么是分布式事务,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。


文章标题:什么是分布式事务
当前URL:http://azwzsj.com/article/pejisd.html