應用程式演進為獨立元件 (COM/元件物件模型) 部署於分散節點,帶來錯誤隔離與一致性保證的雙重挑戰。交易 (Transaction) 提供「全有或全無」的原子性執行單位,簡化錯誤處理並實現自動化故障恢復。
核心邏輯: 多方獨立實體必須達成一致 → 任何一方不同意即失敗 → 全體同意後不可逆執行。
| 角色 | 術語 | 對應實體 |
|---|---|---|
| 交易管理器 | Transaction Manager (TM) | MS DTC 服務 |
| 資源管理器 | Resource Manager (RM) | SQL Server、訊息佇列、檔案系統等 |
| 應用程式 | Application | 呼叫 TM 開始/提交/中止交易 |
' 概念性 VB/COM 程式碼
Dim tx As Object
Set tx = CreateObject("Microsoft.Transaction.Server") ' 或 GetObjectContext
tx.BeginTransaction
' 操作資源管理器 (如 SQL Server via ADO)
cn.Execute "UPDATE Accounts SET Balance = Balance - 100 WHERE ID = 1"
cn.Execute "UPDATE Accounts SET Balance = Balance + 100 WHERE ID = 2"
If AllOK Then
tx.Commit
Else
tx.Abort
End If
TransactionScope 簡化隱含交易管理MS DTC 為分散式應用提供標準化交易協調基礎設施,實現「兩階段提交」確保跨資源管理器的一致性。雖現代架構趨向微服務、最終一致性 (Saga 模式),但強一致性交易在金融、庫存、訂單等核心業務仍不可或缺,理解其原理對架構決策至關重要。