首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

基於 DTC 的分散式事務管理模型(上):三大角色與事務提升機制

     編輯:關於.NET

WCF 並非自行建構事務基礎設施,而是充分利用 Windows 現有事務架構。Windows 事務模型中有三大核心角色:

  • 應用/服務/元件:事務的發起者、傳播者與最終提交者。
  • 資源管理器 (RM):管理具體事務資源(資料庫、MSMQ 等),分持久化與易失性兩類,負責操作資源、登記事務管理器、回報本地結果。
  • 事務管理器 (TM):核心協調者,提供事務開始、提交、回滾服務。Windows 提供三種 TM:

三種事務管理器

1. 輕量級事務管理器 (LTM)

效能最高,負載最小。管轄範圍僅限單一 AppDomain,且僅允許登記一個持久化資源(目前僅 SQL Server 2005/2008 支援)。跨 AppDomain 或第二個持久化資源登入時,事務提升離開 LTM。

2. 核心事務管理器 (KTM)

Vista 引入,用於將檔案系統 (TxF) 與登錄檔 (TxR) 納入事務範疇。運行於核心模式,同樣限制單一持久化資源。

3. 分散式事務協調器 (DTC)

管理跨邊界(AppDomain、行程、機器、網路)的分散式事務,採 OleTx 或 WS-AT 協議協調所有參與者。每台機器唯一一個 DTC,跨機器時雙方 DTC 協作。

事務提升機制

系統動態選擇最適合的 TM:預設用 LTM;涉及核心資源提升至 KTM;出現以下情況提升至 DTC:

  • 涉及多個 LTM 資源或非 LTM 支援資源(如 Oracle、SQL 2000)。
  • 事務跨 AppDomain 封送(如服務間呼叫傳播事務)。

WCF 解決的正是服務間事務流轉與多資源協作,故底層仰賴 DTC 分散式事務實作。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved