熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

MS SQL Server:事務處理概念和 MS DTC 概述 (簡述)

2022-06-13   來源: SQL Server 

  引言
  
  編寫應用程序是很難的隨著時間的推移我們不斷發掘允許建立大型應用程序的概念和技術模塊化或者說將應用程序構建成獨立的模塊使我們得以由簡單的部分構建復雜的系統並使軟件得到重復使用面向對象概念和 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® 和 Microsoft Windows NT® 操作系統的事務管理軟件
  
  將事務概念與 COM 必需的創新相結合傳統的事務系統要求具有很高的安裝和管理技巧而集成 MS DTC 與 Microsoft 操作系統的難點是自動實現安裝管理和使用許多概念和技術必須針對新的客戶/服務器面向對象和可視化管理環境重新創造
  
  在第一版中MS DTC 使用了一個資源管理器Microsoft SQL Server®它還使用了幾個事務處理監視器包括 Encina®Top End 和 TUXEDO®MS DTC 實現 OLE 事務接口所有 OLE 事務接口都是公用的因此任何資源管理器都可以變成 OLE 事務資源管理器將來Microsoft 和其它軟件公司將增加其它事務資源管理器比如分布式對象系統事務文件系統事務隊列系統及業務流程管理系統

From:http://tw.wingwit.com/Article/program/SQLServer/201311/22019.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.