本節說明如何使用 命名空間所提供的 System.Transactions 功能來撰寫您自己的交易應用程式和資源管理員。 具體來說,本節涵蓋如何創建及參與涉及一位或多位參與者的交易(本機或分散式)。
System.Transactions 概觀
命名空間中 System.Transactions 類別所提供的基礎結構,藉由支援在 SQL Server、ADO.NET、消息佇列(MSMQ)和Microsoft分散式交易協調器 (MSDTC) 中起始的交易,讓交易程式設計變得簡單且有效率。 命名空間 System.Transactions 會根據 Transaction 類別提供明確的程序設計模型,以及使用 TransactionScope 類別的隱含程序設計模型,其中交易會自動由基礎結構管理。 如需如何使用這兩種模型建立交易式應用程式的詳細資訊,請參閱 撰寫交易式應用程式。
System.Transactions命名空間也提供類型,讓您實作資源管理員。 資源管理員負責管理交易中使用的持久性或易失性數據,同時與交易管理員合作,確保應用程式的原子性和隔離性。 基礎結構所提供的 System.Transactions 交易管理員支援涉及多個變動性資源或單一永久性資源的交易。 如需實施資源管理器的詳細資訊,請參閱 實施資源管理器。
交易管理員也會透過與像 DTC 這樣的磁碟型交易管理員協調,將本機交易透明地升級為分散式交易,當額外的持久性資源管理員加入交易時。 基礎結構提供增強的效能有兩種主要方式 System.Transactions 。
動態擴展可以確保當交易跨越多個分散式資源時,System.Transactions 基礎結構僅會與 MSDTC 互動。 如需瞭解更多關於動態升級的資訊。 請參閱 交易管理升級 主題。
Promotable 登記,可讓資源,例如資料庫,取得交易的擁有權,如果它是參與交易的唯一實體。 稍後,如有需要,System.Transactions 基礎結構仍可將交易的管理提升至 MSDTC。 這會進一步降低使用 MSDTC 的機會。 涵蓋在主題使用單一階段認可和可晉升單一階段通知進行優化中的可晉升徵募將進行深入探討。
命名空間 System.Transactions 會定義三種信任層級 - AllowPartiallyTrustedCallers (APTCA)、DistributedTransactionPermission(DTP) 和完全信任 ,以限制存取其公開的資源類型。 如需各種信任層級的詳細資訊,請參閱 存取資源中的安全性信任層級。
本節中
撰寫交易式應用程式
System.Transactions命名空間提供兩個模型來建立交易式應用程式。 使用交易範圍實作隱含交易 描述命名空間如何使用 System.Transactions 類別建立隱含交易 TransactionScope 。
使用 CommitableTransaction 實作明確交易 描述命名空間如何 System.Transactions 支援使用 CommittableTransaction 類別建立明確交易。
如需有關撰寫交易式應用程式的其他主題,請參閱 撰寫交易式應用程式。
實作資源管理器
若要實作可以參與交易的資源管理程式,請參閱 資源管理程式的實作。 本節涵蓋資源登記、認可交易、失敗后復原,以及優化最佳做法。