`
happmaoo
  • 浏览: 4472575 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

MS SQL Server:事务处理概念和 MS DTC 概述 (简述)

阅读更多

MS SQL Server:事务处理概念和 MS DTC 概述 (简述)

来自桌面和业务系统分部的白皮书

引言

编写应用程序是很难的。随着时间的推移,我们不断发掘允许建立大型应用程序的概念和技术。模块化,或者说将应用程序构建成独立的模块,使我们得以由简单的部分构建复杂的系统,并使软件得到重复使用。面向对象概念和 Microsoft® 组件对象模块 (COM) 可提供编写模块化应用程序的技术。

当某个应用程序构建为组件时,各个单独部分可共同驻留在单台计算机上,也可通过远程过程调用在网络上相互作用。因此,组件同时提供了模块化和自然分布。

将应用程序构建成独立的组件会产生组件的管理问题。单个程序失败后,将作为一个单位重新启动。但在使用模块化系统时,一个组件的失败不应当破坏其它组件。这就必须有隔离故障和限制故障传播的方法。事务提供了模块化执行方式,因此简化了故障处理,并使故障处理自动实现。它们同时为执行者和用户提供了简单的概念化执行框架。

用户认为事务是单个的要么发生或要么不发生的更改事件。执行者认为事务是一种允许他们编写能参与分布式计算的模块的编程形式。假定您要将资金从一个银行帐户转到另一个帐户。执行者和用户需要确保两个帐户都更改或都不更改。在分布式系统中很难完成这项工作 - 计算机可能失败,并且会丢失信息。事务提供了一种方法,能够将一组操作集合成具有原子性的执行单位。

原子性要么全有要么全无的属性并不新鲜:它在生活中随处可见。例如,如果输入一个合同,escrow(由第三者保存附带条件委付盖印的契约)官员将协调这项事务:escrow 官员会收集此合同每一方的签字。当 escrow 官员宣布所有人都已签字后,此合同就完成了。主持结婚典礼的牧师先问新娘和新郎“愿意此人成为您的配偶吗?” 如果他们都回答“愿意”,牧师就会宣布他们结婚。电影导演在某一场景会先问“布景准备好了吗?” 如果都回答已准备好,导演就会喊“开拍!” 在帆船上预备掉转航向的舵手会先问船员,“准备好转向了吗?” 如果都回答已准备好,舵手就会喊“转舵!”,改变船的方向。

这些情景说明了事务的基本原理:几个独立的实体必须达成一致。如果任何一方不同意,交易就会失败。一旦同意后,事务就会发生。Microsoft Distributed Transaction Coordinator (MS® DTC) 为 COM 结构的其它组件执行这项事务协调任务。

在 MS DTC 术语中,执行者被称为事务管理器。在执行事务保护资源的事务中,其参与者(如关系数据库)被称为资源管理器。

应用程序通过调用事务管理器的 BeginTransaction 方法开始事务。这样可创建一个代表事务的事务对象。然后应用程序会调用资源管理器来完成事务工作。

应用程序对每个资源管理器的第一次调用确定应用程序的当前事务。例如,如果应用程序在使用关系数据库,它会调用 ODBC 接口,此接口将事务对象与 ODBC 连接关联起来。在此之后,所有通过此连接的数据库调用都会代表该事务执行,直到该事务结束为止。

当某个资源管理器首先代表某个事务工作时,会通过调用事务管理器“登记”到该事务中。随着事务的发展,事务管理器会跟踪每个登记到该事务中的资源管理器。

通常,应用程序用 Commit 事务方法来完成事务。如果应用程序无法完成,则调用 Abort 事务方法,该方法可以撤消事务的操作。如果应用程序失败,MS DTC 就会放弃此事务。

当应用程序成功地完成事务的工作后,它会调用 MS DTC 来“提交”事务。然后 MS DTC 会仔细检查“两阶段” “提交协议”,使所有已登记的资源管理器都提交。两阶段提交协议可确保所有的资源管理器提交此事务,或全都放弃此事务。在第一阶段,MS DTC 询问每个资源管理器是否“准备”提交。如果所有参与者都回答“是”,那么在第二阶段 MS DTC 将向所有参与者广播提交信息。如果事务的任何部分失败,或资源管理器响应准备请求失败,或资源管理器响应“否”,那么 MS DTC 将通知所有资源管理器该事务已被放弃。

事务管理器是大多数数据库系统的关键部分。事务管理器还是某些操作系统的可选部分。Microsoft 相信事务对分布式应用至关重要 - 事务提供了模块化执行,从而使 COM 模块化编程更加完备。Microsoft 提供 Microsoft Windows® 95 和 Microsoft Windows NT® 操作系统的事务管理软件。

将事务概念与 COM 必需的创新相结合。传统的事务系统要求具有很高的安装和管理技巧。而集成 MS DTC 与 Microsoft 操作系统的难点是自动实现安装、管理和使用。许多概念和技术必须针对新的客户/服务器、面向对象和可视化管理环境重新创造。

在第一版中,MS DTC 使用了一个资源管理器:Microsoft SQL Server®。它还使用了几个事务处理监视器,包括 Encina®、Top End 和 TUXEDO®。MS DTC 实现 OLE 事务接口。所有 OLE 事务接口都是公用的,因此任何资源管理器都可以变成 OLE 事务资源管理器。将来,Microsoft 和其它软件公司将增加其它事务资源管理器,比如分布式对象系统、事务文件系统、事务队列系统及业务流程管理系统。

分享到:
评论

相关推荐

    SQL Server 2000完结篇系列之三:数据并发-彻底掌握SQL Server 2000事务机制

    SQL Server 2000支持三种事务模式:自动提交事务、显式事务和分布式事务。 1. 自动提交事务:这是默认的事务模式,每条SQL语句都作为一个单独的事务执行。一旦语句成功,事务就会提交;如果出现错误,事务则回滚。 ...

    导入Microsoft分布式事务处理协调器MSDTC失败的解决方案

    导入Microsoft分布式事务处理协调器MSDTC,网上大部分教程都是服务器配置msdtc,但是发现两个服务器都配置之后还是不行,可参照此图片解决,已验证过,不好用找我,最低可以支持到sqlserver2005的数据库以及2008R2的...

    SQLServer分布式事务服务器的配置.doc

    SQL Server 分布式事务服务器的配置是一个复杂的过程,涉及到多个方面的设置和配置。以下是配置的详细步骤和知识点: 1. 启动 MSDTC 服务 MSDTC(Distributed Transaction Coordinator)服务是 SQL Server 分布式...

    MS SQL SERVER 6.5的数据分布机制.pdf

    【MS SQL SERVER 6.5的数据分布机制】 ...通过MS DTC和发布/订阅/复制机制,系统能够处理复杂的分布式事务场景,适应大型企业级应用的需求。了解和掌握这些机制对于管理和维护高可用性的数据库系统至关重要。

    SQL SERVER事务处理详解.doc

    在SQL Server中,事务处理是确保数据库操作一致性、可靠性和完整性的核心机制。事务是由一系列数据库操作组成的单元,这些操作要么全部成功,要么全部失败。理解并熟练掌握SQL Server的事务处理对于数据库管理员和...

    SQL Server数据库应用与开发:第09章 事务和锁.ppt

    SQL Server 2005 支持分布式事务,通过 Microsoft 分布式事务处理协调器 (MS DTC) 来管理。 9.2 管理事务 在 SQL Server 2005 中,管理事务主要涉及到开始事务、提交事务和回滚事务。BEGIN TRANSACTION 语句用于...

    Microsoft SQL Server 2005 Express Edition SP3

    由于未在 Windows 中完全配置 Microsoft 分布式事务处理协调器 (MS DTC),因此,应用程序可能无法在分布式事务中登记 SQL Server Express 资源。此问题会影响使用分布式事务的链接服务器、分布式查询以及远程存储...

    Windows Server 2019 双机热备(MSCS)下Sql Server 2019 群集部署-图文

    《Windows Server 2019 双机热备(MSCS)下Sql Server 2019 群集部署详解》 Windows Server 2019 的微软群集服务(MSCS)与Sql Server 2019的群集部署是一项旨在提高企业数据库系统高可用性的关键技术。这种双机热备...

    SQL Server 事务 游标 基本语法操作实例 全SQL语句

    在SQL Server数据库管理系统中,事务和游标是两个重要的概念,它们在数据处理和操作中起着关键作用。本文将详细讲解这两个主题,并通过具体的SQL语句实例来演示其基本语法和操作。 **一、SQL Server事务** 事务是...

    MS SQL SERVVER 驱动

    MS SQL SERVER驱动是微软公司为连接到SQL Server数据库而设计的一种关键组件,它允许应用程序与SQL Server进行通信,执行查询、事务处理等操作。在深入理解这个概念之前,我们需要了解数据库驱动程序的基本原理。 ...

    卸载sql server 2005

    卸载SQL Server 2005是一个相对复杂的过程,因为这个数据库系统在安装时会将许多组件和服务嵌入到操作系统中。以下是一个详细的步骤指南,帮助你完全卸载SQL Server 2005: 第一步,使用卸载工具: 首先,你需要...

    MS DTC配置,ATL,COM

    MS DTC是分布式事务处理的核心,正确配置和理解其工作原理对于解决SQL Server中的分布式事务错误至关重要。在遇到上述错误时,按照上述步骤检查和调整服务器配置,通常可以解决问题。同时,保持网络安全策略的合理性...

    SQL Server 概述与数据库管理PPT学习教案.pptx

    【SQL Server概述】 SQL Server是由Microsoft开发的一种关系型...了解其基本概念、组件和工具对于理解和操作SQL Server至关重要。通过学习和掌握这些知识,可以有效地管理和维护数据库系统,确保业务的顺畅运行。

    sql server 引擎结构

    对于跨越多个数据库或服务器的事务,SQL Server支持分布式事务处理,通过MS DTC(分布式事务协调器)协调各个参与节点的事务状态。 9. **XML支持**: SQL Server内置XML数据类型和XML索引,可以处理XML数据的存储...

    SQL SERVER 2005安装过程中COM+错误解决!

    SQL Server 2005 安装过程中 COM+ 错误是常见的问题之一,COM+ 是 Microsoft 的一项组件对象模型技术,提供了分布式事务处理协调器 (MS DTC) 和消息队列任务等功能。然而,在安装 SQL Server 2005 的过程中,COM+ ...

    sql server 用命令附加数据库

    3. **SQL Server Agent** 和 **MS DTC (Microsoft Distributed Transaction Coordinator)**:用于计划作业和处理分布式事务。 4. **Text and Image Data**:在处理文本和图像数据时需要注意配置选项,如`WITH LOG`和...

    第一章 SQL Server 2000概述

    服务器端包括SQL Server服务,负责数据管理和事务处理;SQL Server Agent,用于计划和执行数据库维护任务;MS DTC,即分布式事务协调器,确保跨多个资源的事务一致性;以及Microsoft Search,提供全文搜索功能。...

    SQL Server管理基础——SQL Server速成最后一课,SQL Server必备工具,数据库安全与备份策略.pdf

    管理员可以通过它来管理SQL Server Agent、分布式事务协调器(DTC)、Microsoft Search和Analysis Services服务。 2. 企业管理器:一个图形界面工具,用于管理和配置SQL Server实例。它允许管理员注册服务器,并执行...

    第一章 SQL Server数据库基础知识.ppt

    * 服务器组件:SQL Server Service、SQL Server agent、MS DTC、MS Search * 客户端组件:企业管理器、查询分析器、SQL Server 管理工具和向导、SQL Server 命令提示工具 * 通信组件:Windows 进程间通信组件、网络...

    SQLServer安全及性能优化

    - **DTC (Distributed Transaction Coordinator)**:协调跨多个资源的分布式事务。如果该服务未被使用,建议关闭以减少安全隐患。 ##### 3. 禁用不使用的协议 - **Shared Memory**:通常仅用于本地连接,不推荐...

Global site tag (gtag.js) - Google Analytics