`
raymond2006k
  • 浏览: 295155 次
  • 性别: 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) 中启动的事务,使事务编程在整个平台上变得简单和高效、看来没别的对象了。

    超级全的C#MSDN

    * 类是C#中的基本构成单元,用于定义对象的行为和状态。 * 类可以包含字段、属性、方法和事件等成员。 * 类可以继承自其他类,实现多态性。 * 类可以实现接口,提供一种方式来实现多继承。 二、创建对象 * 创建...

    MSDN中文版下载

    MSDN(Microsoft Developer Network)是微软为开发者提供的一套完整的开发资源库,它包含了微软各种开发工具、操作系统、编程语言的详细文档和技术资料。对于C++程序员来说,MSDN尤其重要,因为它提供了全面的Visual...

    MSDN for vc6.0

    在实际开发过程中,MSDN for vc6.0还提供了错误代码和调试信息,帮助开发者解决编程过程中遇到的问题。它的搜索引擎允许快速定位特定的类、函数或问题,大大提高了开发效率。同时,MSDN论坛和社区也是开发者交流和...

    VC++6.0MSDN

    在VC++ 6.0开发过程中,MSDN扮演了至关重要的角色,因为它包含了完整的API参考、类库文档、编程指南、示例代码和教程,覆盖了从基础到高级的C++编程和Windows开发知识。 **使用MSDN进行学习和开发:** 1. **API...

    C# 文档msdn.pdf

    【C# 学习文档】 C# 是一种面向对象的编程语言,广泛应用于Windows桌面应用、游戏开发、Web服务和移动应用等多...MSDN的C#文档是学习和查阅C#技术的宝贵资源,涵盖了从入门到精通的全部内容,是开发者必备的参考工具。

    MSDN中文帮助手册

    总结来说,MSDN中文帮助手册是针对Windows开发领域的专业开发人员的指导文档,其内容涵盖了.NET框架中System.Data命名空间内的类和对象,详细讲解了数据库操作、数据表结构定义、约束设置、数据操作方法、异常处理、...

    MSDN.rar_msdn_windows

    该压缩包中的.exe文件可能是一个定制的安装程序,设计用于简化MSDN的安装过程,避免了手动下载和配置的繁琐步骤。这通常会包括选择安装的语言版本、所需的技术文档范围、开发工具等选项,以便于开发者根据自己的需求...

    MSDN2005绿色便携版MSDN

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

    VC++ 6.0 msdn中文版

    **VC++ 6.0 和 MSDN 中文版** Visual C++ 6.0 是微软在1998年发布的一款经典集成开发环境(IDE),主要用于编写基于Microsoft Windows平台的应用程序,尤其是C++语言的程序。它包含了编译器、调试器、资源编辑器...

    msdn-Microsoft C++、C 和汇编程序文档【2022年11月12日最新更新】

    C++通过虚函数和纯虚函数实现多态,允许使用基类指针或引用调用派生类的方法。 4. **模板**: C++模板用于实现泛型编程,可以创建通用的函数和类。函数模板允许创建不依赖于特定类型的操作,而类模板则能生成通用的...

    VB MSDN 中文版

    3. **函数和过程**:掌握Sub过程和Function函数的用法,学习如何定义和调用自定义函数和过程。 4. **事件驱动编程**:VB的一大特色是其事件驱动编程模型,理解控件的事件(如Click、TextChanged等)及其响应方法。 ...

    MSDN 帮助文档(CHM)

    MSDN(Microsoft Developer Network)是微软为开发者提供的一系列技术文档和资源的综合平台,它涵盖了微软的各种开发工具、操作系统、编程语言等技术信息。CHM(Compiled Help Manual)是微软开发的一种帮助文件格式...

    MSDN绿色U盘版-14

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

    vc6.0-MSDN-CHM.rar_C++帮助 chm_MSDN_VC6_leaderqvv_msdn6.0

    MSDN(Microsoft Developer Network)是微软提供的一个全面的技术资源库,包含了大量的软件开发、设计和部署的相关信息。 此CHM文件中,用户可以找到以下关键知识点: 1. **C++基础**:涵盖C++的基本语法、数据...

    MSDN Library

    7. **Windows Store应用**:针对Windows 10和Windows 11的UWP(通用Windows平台)应用开发,MSDN Library提供了详细的文档和教程,帮助开发者创建跨设备的应用。 8. **Web开发技术**:包括ASP.NET、ASP.NET Core、...

    Vc++6.0和MSDN的安装

    MSDN的安装过程可能会稍微复杂一些,因为它包含了大量的文档和样本代码。 在安装MSDN时,可能会遇到选择安装组件的环节,这里可以根据个人需求选择。一般来说,如果你是初学者,可以选择“Visual Studio Library”...

    MSDN6.0.rar

    除了基本的编程技术,MSDN6.0还涵盖了Windows SDK(Software Development Kit)中的其他组件,如ActiveX控件、COM(Component Object Model)技术、ATL(Active Template Library)和MFC(Microsoft Foundation ...

    msdn for vb6.0

    首先,基础语法是VB6.0的核心部分,包括变量声明、数据类型、运算符、流程控制语句(如If...Then、For...Next、While...Wend等)、函数和过程的定义与调用。通过MSDN,你可以详细了解每种语法的用法和示例,确保编程...

    msdn下载地址(2001版,保证能下载)

    1. **文档与教程**:MSDN提供了详尽的技术文档和教程,覆盖了各种编程语言和技术,如C#、.NET Framework、Visual Studio等。 2. **示例代码**:通过MSDN,开发者可以获得大量经过验证的示例代码,这些代码可以帮助...

Global site tag (gtag.js) - Google Analytics