科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道解析:教你轻松的掌握分布式事务的概念

解析:教你轻松的掌握分布式事务的概念

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

分布式事务是涉及来自两个或多个源的资源的事务。Microsoft SQL Server 2000 支持分布式事务,使用户得以创建事务来更新多个 SQL Server 数据库和其它数据源。

作者:赛迪网 limeinan 来源:天新网 2008年3月27日

关键字: Mssql SQL SQL Server 数据库

  • 评论
  • 分享微博
  • 分享邮件

分布式事务是涉及来自两个或多个源的资源的事务。Microsoft® SQL Server™ 2000 支持分布式事务,使用户得以创建事务来更新多个 SQL Server 数据库和其它数据源。

分布式事务包括:

·资源管理器

控制分布式事务所涉及的每个资源的软件称为资源管理器。分布式事务由各个资源管理器内的本地事务组成。每个资源管理器必须能够与分布式事务内的所有其它资源管理器相协调,以提交或回滚自己的本地事务。SQL Server 可以作为分布式事务内的资源管理器工作,并遵从用于分布式事务处理的 X/Open XA 规范。

·事务管理器

提交或回滚分布式事务由称为事务管理器的软件组件控制。事务管理器与每个资源管理器相协调,确保一起提交或回滚所有组成分布式事务的本地事务。Microsoft 分布式事务处理协调器 (MS DTC) 服务如事务管理器一样工作。MS DTC 遵从用于分布式事务处理的 X/Open XA 规范。

·两阶段提交 (2PC)

需要进行特殊的提交处理,以防止在管理跨越多个资源管理器的事务时出现问题。当刷新日志缓冲区使其可用时,提交大事务可能需要相对较长的时间。提交进程本身还可能遇到错误,需要强行回滚。如果事务管理器只是请求每个资源管理器提交,则可能从一些资源管理器返回成功状态,然后从某个资源管理器得到错误信息。这会导致冲突,因为所有分布式事务都应回滚,而部分事务已提交。两阶段提交通过将提交分成两相可以解决此问题:

·准备

事务管理器给每个资源管理器发送一个准备提交的请求。然后,每个资源管理器执行完成提交进程所需的所有大量占用资源的操作,如刷新所有日志缓冲区。资源管理器只保留维护事务完整性所需的最少的锁,然后给事务管理器返回成功状态。

·提交

如果所有资源管理对发给它们的准备请求返回成功状态,事务管理器将给每个资源管理器发送提交命令。然后,每个资源管理器快速将事务记录为已完成,并释放上次控制的资源。如果有任何资源管理器对准备请求返回错误信息,事务管理器将给每个资源管理器发送回滚命令。

有几种方法可以使应用程序在分布式事务内包括 SQL Server 2000:

·如果应用程序有本地事务并且发出分布式查询,本地事务将升级到分布式事务。

·发出 BEGIN DISTRIBUTED TRANSACTION 语句。

·如果应用程序有本地事务并且将 REMOTE_PROC_TRANSACTIONS 选项设置为 ON,则调用远程存储过程将使本地事务升级到分布式事务。

·使用用于 SQL Server 的 OLE DB 提供程序或 SQL Server ODBC 驱动程序的应用程序,可以使用 OLE DB 方法或 ODBC 函数让 SQL Server 连接联接由应用程序启动的分布式事务。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章