CommittableTransaction 類別

定義

描述可認可的交易。

public ref class CommittableTransaction sealed : System::Transactions::Transaction, IAsyncResult
public sealed class CommittableTransaction : System.Transactions.Transaction, IAsyncResult
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public sealed class CommittableTransaction : System.Transactions.Transaction, IAsyncResult
[System.Serializable]
public sealed class CommittableTransaction : System.Transactions.Transaction, IAsyncResult
type CommittableTransaction = class
    inherit Transaction
    interface IAsyncResult
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
type CommittableTransaction = class
    inherit Transaction
    interface IAsyncResult
[<System.Serializable>]
type CommittableTransaction = class
    inherit Transaction
    interface IAsyncResult
Public NotInheritable Class CommittableTransaction
Inherits Transaction
Implements IAsyncResult
繼承
CommittableTransaction
屬性
實作

備註

CommittableTransaction 類別為應用程式提供使用交易的明確方式,而非隱含地使用 TransactionScope 類別。 與 TransactionScope 類別不同的是,應用程式寫入器需要特別呼叫 CommitRollback 方法,才能認可或中止交易。 不過,只有交易的建立者可以認可交易。 因此,無法認可透過 Transaction.Clone 方法取得的可認可交易複本。

注意

建議您使用 TransactionScope 類別建立隱含交易,以便為您自動管理環境交易內容。 您也應該 TransactionScope 針對需要跨多個函式呼叫或多個線程呼叫使用相同的交易的應用程式使用和 DependentTransaction 類別。 如需此模型的詳細資訊,請參閱 使用交易範圍實作隱含交易 主題。

CommittableTransaction建立 不會自動設定環境交易,這是程式代碼執行所在的交易。 您可以藉由呼叫全域Transaction物件的靜態Transaction.Current屬性來取得或設定環境交易。 For more information on ambient transactions, see the " Managing Transaction Flow using TransactionScopeOption" section of the Implementing An Implicit Transaction Using Transaction Scope topic. 如果未設定環境交易,資源管理員上的任何作業都不屬於該交易的一部分。 您必須明確設定並重設環境交易,以確保資源管理員在正確的交易內容下運作。

CommittableTransaction在認可 之前,所有與交易相關的資源仍會鎖定。

您無法重複使用 CommittableTransaction 物件, 一旦認可或回復之後,就無法在交易中再次使用它,或設定為目前的環境交易內容。

建構函式

CommittableTransaction()

初始化 CommittableTransaction 類別的新執行個體。

CommittableTransaction(TimeSpan)

使用指定的 timeout 值,初始化 CommittableTransaction 類別的新執行個體。

CommittableTransaction(TransactionOptions)

使用指定的交易選項,初始化 CommittableTransaction 類別的新執行個體。

屬性

IsolationLevel

取得交易的隔離等級 (Isolation Level)。

(繼承來源 Transaction)
PromoterType

可唯一識別 byte[] 的格式,其由 Promote 方法在交易升級時傳回。

(繼承來源 Transaction)
TransactionInformation

擷取交易的其他資訊。

(繼承來源 Transaction)

方法

BeginCommit(AsyncCallback, Object)

開始嘗試非同步認可交易。

Clone()

建立交易的複製品 (Clone)。

(繼承來源 Transaction)
Commit()

嘗試認可交易。

DependentClone(DependentCloneOption)

建立交易的相依複製品。

(繼承來源 Transaction)
Dispose()

釋放該物件所持有的資源。

(繼承來源 Transaction)
EndCommit(IAsyncResult)

結束非同步認可交易的嘗試。

EnlistDurable(Guid, IEnlistmentNotification, EnlistmentOptions)

登記支援兩階段交易認可 (Two-Phase Commit) 的長期資源管理員以參與交易。

(繼承來源 Transaction)
EnlistDurable(Guid, ISinglePhaseNotification, EnlistmentOptions)

登記支援單一階段交易認可最佳化的長期資源管理員以參與交易。

(繼承來源 Transaction)
EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification)

使用可提升單一階段登記 (PSPE) 來登記具有內部交易的資源管理員。

(繼承來源 Transaction)
EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid)

使用可提升單一階段登記 (PSPE) 來登記具有內部交易的資源管理員。

(繼承來源 Transaction)
EnlistVolatile(IEnlistmentNotification, EnlistmentOptions)

登錄暫時性資源管理員,支援兩階段交易認可參與交易。

(繼承來源 Transaction)
EnlistVolatile(ISinglePhaseNotification, EnlistmentOptions)

登記支援單一階段交易認可最佳化的暫時性 (Volatile) 資源管理員以參與交易。

(繼承來源 Transaction)
Equals(Object)

判斷這個交易和指定的物件是否相等。

(繼承來源 Transaction)
GetHashCode()

傳回這個執行個體的雜湊碼。

(繼承來源 Transaction)
GetPromotedToken()

byte[]取得升級交易時,方法所傳Promote回的 。

(繼承來源 Transaction)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
PromoteAndEnlistDurable(Guid, IPromotableSinglePhaseNotification, ISinglePhaseNotification, EnlistmentOptions)

提升和登記支援兩階段交易認可 (Two-Phase Commit) 的長期資源管理員以參與異動。

(繼承來源 Transaction)
Rollback()

復原 (中止) 交易。

(繼承來源 Transaction)
Rollback(Exception)

復原 (中止) 交易。

(繼承來源 Transaction)
SetDistributedTransactionIdentifier(IPromotableSinglePhaseNotification, Guid)

設定非 MSDTC Promoter 所產生的分散式異動識別碼。

(繼承來源 Transaction)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)

事件

TransactionCompleted

指出交易已完成。

(繼承來源 Transaction)

明確介面實作

IAsyncResult.AsyncState

取得當做 BeginCommit(AsyncCallback, Object) 方法呼叫之最後一個參數來提供的物件。

IAsyncResult.AsyncWaitHandle

取得 WaitHandle,用來等候非同步作業完成。

IAsyncResult.CompletedSynchronously

取得非同步認可作業是否已同步完成的指示。

IAsyncResult.IsCompleted

取得非同步認可作業是否已完成的指示。

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

取得 SerializationInfo,其中含有序列化這個交易所需的資料。

(繼承來源 Transaction)

擴充方法

ToApmEnd(IAsyncResult)

描述可認可的交易。

ToApmEnd<TResult>(IAsyncResult)

描述可認可的交易。

適用於

執行緒安全性

此型別具備執行緒安全。

另請參閱