设为首页 收藏本站
查看: 531|回复: 0

[经验分享] MS SQL Server:事务处理概念和 MS DTC 概述 (简述)

[复制链接]

尚未签到

发表于 2016-11-8 07:46:01 | 显示全部楼层 |阅读模式
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 和其它软件公司将增加其它事务资源管理器,比如分布式对象系统、事务文件系统、事务队列系统及业务流程管理系统。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-297093-1-1.html 上篇帖子: 数据库2012-04-05 14:53 sql server 2005查看鎖定及解鎖 下篇帖子: SQL Server 数据挖掘系列(一)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表