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

分布式事务基本定义和过程(引用自MSDN)

阅读更多
此文档对分布式事务,两阶段协议描述简洁而完整,对于准确理解分布式事务的基本原理和过程很有帮助。

(引用自 MSDN 分布式事务(数据库引擎))

分布式事务(数据库引擎)
分布式事务跨越两个或多个称为资源管理器的服务器。称为事务管理器的服务器组件必须在资源管理器之间协调事务管理。如果分布式事务由 Microsoft 分布式事务处理协调器 (MS DTC) 之类的事务管理器或其他支持 Open Group XA 分布式事务处理规范的事务管理器来协调,则在这样的分布式事务中,每个 SQL Server 数据库引擎实例都可以作为资源管理器来运行。有关详细信息,请参阅 MS DTC 文档。

跨越两个或多个数据库的单个数据库引擎实例中的事务实际上是分布式事务。该实例对分布式事务进行内部管理;对于用户而言,其操作就像本地事务一样。

对于应用程序而言,管理分布式事务很像管理本地事务。当事务结束时,应用程序会请求提交或回滚事务。不同的是,分布式提交必须由事务管理器管理,以尽量避免出现因网络故障而导致事务由某些资源管理器成功提交,但由另一些资源管理器回滚的情况。通过分两个阶段(准备阶段和提交阶段)管理提交进程可避免这种情况,这称为两阶段提交 (2PC)。

准备阶段
当事务管理器收到提交请求时,它会向该事务涉及的所有资源管理器发送准备命令。然后,每个资源管理器将尽力使该事务持久,并且所有保存该事务日志映像的缓冲区将被刷新到磁盘中。当每个资源管理器完成准备阶段时,它会向事务管理器返回准备成功或准备失败的消息。

提交阶段
如果事务管理器从所有资源管理器收到准备成功的消息,它将向每个资源管理器发送一个提交命令。然后,资源管理器就可以完成提交。如果所有资源管理器都报告提交成功,那么事务管理器就会向应用程序发送一个成功通知。如果任一资源管理器报告准备失败,那么事务管理器将向每个资源管理器发送一个回滚命令,并向应用程序表明提交失败。

数据库引擎应用程序可以通过 Transact-SQL 或数据库 API 来管理分布式事务。
0
0
分享到:
评论

相关推荐

    Transaction 分布式事物的应用举例

    自定义事物类,以及 System....System.Transactions 基础结构通过支持在 SQL Server、ADO.NET、MSMQ 和 Microsoft 分布式事务协调器 (MSDTC) 中启动的事务,使事务编程在整个平台上变得简单和高效、看来没别的对象了。

    MSDN2005绿色便携版MSDN

    首先声明,这份资源是amo_xoo的毛哥.NET 2.0便携参考(绿色MSDN) 2.0 彻底版,但他那个分了9个包,下载起来很不方便,所以就引用过来,方便大家下载。 微软MSDN在线库虽然全,但有时不方便上网,而MSDN Library安装...

    MSDN绿色U盘版-14

     本绿色版依照MSDN August 2001 Edition制作,应该说这基本上是适合VC++6.0的最后一个版本了,后面版本的MSDN都是.NET平台的了。本绿色版包含了Windows SDK(MSDN 2001中的,含DirectX9),Windows DDK (2003 DDK...

    MSDN绿色U盘版-8

     本绿色版依照MSDN August 2001 Edition制作,应该说这基本上是适合VC++6.0的最后一个版本了,后面版本的MSDN都是.NET平台的了。本绿色版包含了Windows SDK(MSDN 2001中的,含DirectX9),Windows DDK (2003 DDK...

    MSDN绿色U盘版-9

     本绿色版依照MSDN August 2001 Edition制作,应该说这基本上是适合VC++6.0的最后一个版本了,后面版本的MSDN都是.NET平台的了。本绿色版包含了Windows SDK(MSDN 2001中的,含DirectX9),Windows DDK (2003 DDK...

    MSDN绿色U盘版-15

     本绿色版依照MSDN August 2001 Edition制作,应该说这基本上是适合VC++6.0的最后一个版本了,后面版本的MSDN都是.NET平台的了。本绿色版包含了Windows SDK(MSDN 2001中的,含DirectX9),Windows DDK (2003 DDK...

    MSDN绿色U盘版-3

     本绿色版依照MSDN August 2001 Edition制作,应该说这基本上是适合VC++6.0的最后一个版本了,后面版本的MSDN都是.NET平台的了。本绿色版包含了Windows SDK(MSDN 2001中的,含DirectX9),Windows DDK (2003 ...

    C#基础回顾:C#语言规范[本部分转自MSDN] .doc

    C#基础回顾:C#语言规范[本部分转自MSDN] .doc

    MSDN绿色U盘版-16

     本绿色版依照MSDN August 2001 Edition制作,应该说这基本上是适合VC++6.0的最后一个版本了,后面版本的MSDN都是.NET平台的了。本绿色版包含了Windows SDK(MSDN 2001中的,含DirectX9),Windows DDK (2003 DDK...

    MSDN绿色U盘版-5

     本绿色版依照MSDN August 2001 Edition制作,应该说这基本上是适合VC++6.0的最后一个版本了,后面版本的MSDN都是.NET平台的了。本绿色版包含了Windows SDK(MSDN 2001中的,含DirectX9),Windows DDK (2003 ...

    MSDN帮助文档中文.zip

    最新MSDN帮助文档中文版 离线包,自己存储使用 最新MSDN帮助文档中文版 离线包,自己存储使用 最新MSDN帮助文档中文版 离线包,自己存储使用 小白方便查看

    MSDN绿色U盘版-1(共17包)

     本绿色版依照MSDN August 2001 Edition制作,应该说这基本上是适合VC++6.0的最后一个版本了,后面版本的MSDN都是.NET平台的了。本绿色版包含了Windows SDK(MSDN 2001中的,含DirectX9),Windows DDK (2003 ...

    MSDN离线库更新至20201102

    适用于Visual Studio 2019的MSDN Library离线库,更新至20201102。 1. 首先在VS中,勾选单个组件安装好Help Viewer 2.3。 2. 在VS界面中,“帮助”-“添加和删除帮助内容”,启动Help Viewer 2.3 3. 在“管理内容”...

    MSDN-library-vchelp.rar_MSDN library chm_MSDN-library_msdn_msdn

    vc++6.0 MSDN Library chm

    [MSDN].msdn_oct_2001

    [MSDN].msdn_oct_2001 适用于vc++6.0,最后一个版本。分成7个文件上传

    VC++ 6.0 msdn中文版

    中文版msdn,需然小了点,不过对入门都来说是不错的选择....

    MSDN绿色U盘版-17(完,共17包)

     本绿色版依照MSDN August 2001 Edition制作,应该说这基本上是适合VC++6.0的最后一个版本了,后面版本的MSDN都是.NET平台的了。本绿色版包含了Windows SDK(MSDN 2001中的,含DirectX9),Windows DDK (2003 ...

    MSDN2005绿色便携版

    首先声明,这份资源是amo_xoo的毛哥.NET 2.0便携参考(绿色MSDN) 2.0 彻底版,但他那个分了9个包,下载起来很不方便,所以就引用过来,方便大家下载。 微软MSDN在线库虽然全,但有时不方便上网,而MSDN Library安装...

    MSDN绿色U盘版-12

     本绿色版依照MSDN August 2001 Edition制作,应该说这基本上是适合VC++6.0的最后一个版本了,后 <br>面版本的MSDN都是.NET平台的了。本绿色版包含了Windows SDK(MSDN 2001中的,含DirectX9),Windows ...

    [MSDN杂志] MSDN Magazine 2017年01月刊

    MSDN Magazine 介绍有关桌面系统、Internet 和即将推出的设备的最新且全面的微软技术。作为面向开发人员的 MSDN 资源系列的必要组成部分,MSDN Magazine 可以为您每天遇到的实际问题提供解决方案。无论构建 Web 服务...

Global site tag (gtag.js) - Google Analytics