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

SOA 架構下的分散式事務控制需求與應用場景

     編輯:關於.NET

在 SOA 系統中,服務是基本功能單元,業務活動常跨越多個服務邊界,需協調多服務間資源操作,這屬於短暫運行服務協作範疇,事務即是核心解決方案。

一、 事務與 ACID 四大特性

事務將相關操作捆綁為不可分割單元:全做或全不做。四大特性:

  • 原子性:操作要麼全執行,要麼全不執行。
  • 一致性:資料僅在一致性狀態間轉換,失敗則回滾至原狀態。
  • 隔離性:中間狀態對外不可見,透過鎖機制實現。
  • 持久性:提交後對持久化資源的修改永久生效。

事務源自 DBMS,現擴展至 MSMQ、NTFS、登錄檔等資源。

二、 顯式事務控制的侷限:僅限單一資源

T-SQL BEGIN/COMMIT/ROLLBACK TRANSACTION 與 ADO.NET DbTransaction 僅能控制單一資料庫連線下的操作,稱為本地事務。SOA 環境下,服務操作常需存取多資源、跨服務呼叫,必須引入分散式事務。

三、 三大典型分散式事務應用場景

  1. 單一服務存取多個事務資源:如同時操作兩台 SQL Server、或 SQL Server + Oracle、或同資料庫不同連線。
  2. 跨服務呼叫納入同一事務:服務 A 呼叫服務 B,事務隨呼叫傳播,服務 B 存取的資源自動加入。
  3. 多資源與多服務混合:形成樹狀拓撲,事務發起者與提交者為同一節點(客戶端或首個服務)。

Windows 提供 DTC 基礎架構支援上述場景,下一篇將詳細介紹 DTC 分散式事務運作機制。

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