CommittableTransaction クラス

定義

コミットできるトランザクションを示します。Describes a committable transaction.

public ref class CommittableTransaction sealed : System::Transactions::Transaction, IAsyncResult, IDisposable, System::Runtime::Serialization::ISerializable
[System.Serializable]
public sealed class CommittableTransaction : System.Transactions.Transaction, IAsyncResult, IDisposable, System.Runtime.Serialization.ISerializable
type CommittableTransaction = class
    inherit Transaction
    interface ISerializable
    interface IDisposable
    interface IAsyncResult
Public NotInheritable Class CommittableTransaction
Inherits Transaction
Implements IAsyncResult, IDisposable, ISerializable
継承
CommittableTransaction
属性
実装

注釈

CommittableTransaction クラスは、TransactionScope クラスが暗黙的に使用されるのと対照的に、アプリケーションがトランザクションを明示的に使用する方法を提供します。The CommittableTransaction class provides an explicit way for applications to use a transaction, as opposed to using the TransactionScope class implicitly. TransactionScope クラスとは異なり、アプリケーション作成者はトランザクションをコミットまたは中止するために、具体的に Commit メソッドまたは Rollback メソッドを呼び出す必要があります。Unlike the TransactionScope class, the application writer needs to specifically call the Commit and Rollback methods in order to commit or abort the transaction. ただし、トランザクションをコミットできるのは、トランザクションの作成者だけです。However, only the creator of a transaction can commit the transaction. したがって、メソッドをTransaction.Clone通じて取得されたコミットできるトランザクションのコピーは、コミットできません。Therefore, copies of a committable transaction obtained through the Transaction.Clone method are not committable.

注意

アンビエントトランザクションコンテキストが自動的に管理されるTransactionScopeように、クラスを使用して暗黙のトランザクションを作成することをお勧めします。We recommend that you create implicit transactions using the TransactionScope class, so that the ambient transaction context is automatically managed for you. また、複数の関数TransactionScope呼び出しDependentTransactionまたは複数のスレッド呼び出しで同じトランザクションを使用する必要があるアプリケーションの場合は、クラスとクラスを使用する必要があります。You should also use the TransactionScope and DependentTransaction classes for applications that require the use of the same transaction across multiple function calls or multiple thread calls. このモデルの詳細については、「トランザクションスコープを使用した暗黙的なトランザクションの実装」を参照してください。For more information on this model, see the Implementing An Implicit Transaction Using Transaction Scope topic.

CommittableTransaction作成しても、コードが実行されるトランザクションであるアンビエントトランザクションは自動的には設定されません。Creating a CommittableTransaction does not automatically set the ambient transaction, which is the transaction your code executes in. アンビエントトランザクションを取得または設定するには、グローバルTransaction.Current Transactionオブジェクトの静的プロパティを呼び出します。You can get or set the ambient transaction by calling the static Transaction.Current property of the global Transaction object. アンビエントトランザクションの詳細については、「トランザクションスコープを使用した暗黙のトランザクションの実装」の「TransactionScopeOption を使用したトランザクションフローの管理」セクションを参照してください。For more information on ambient transactions, see the " Managing Transaction Flow using TransactionScopeOption" section of the Implementing An Implicit Transaction Using Transaction Scope topic. アンビエントトランザクションが設定されていない場合、リソースマネージャーでのすべての操作は、そのトランザクションの一部ではありません。If the ambient transaction is not set, any operation on a resource manager is not part of that transaction. リソースマネージャーが適切なトランザクションコンテキストで動作するようにするには、アンビエントトランザクションを明示的に設定してリセットする必要があります。You need to explicitly set and reset the ambient transaction to ensure that resource managers operate under the right transaction context.

CommittableTransactionがコミットされるまで、そのトランザクションに関連するすべてのリソースがロックされたままになります。Until a CommittableTransaction has been committed, all the resources involved with the transaction are still locked.

CommittableTransaction オブジェクトは再利用できません。A CommittableTransaction object cannot be reused. コミットまたはロールバックが完了すると、トランザクションで再び使用したり、現在のアンビエントトランザクションコンテキストとして設定したりすることはできません。Once it has been committed or rolled back, it cannot be used again in a transaction or set as the current ambient transaction context.

コンストラクター

CommittableTransaction()

CommittableTransaction クラスの新しいインスタンスを初期化します。Initializes a new instance of the CommittableTransaction class.

CommittableTransaction(TimeSpan)

指定した timeout 値を使用して、CommittableTransaction クラスの新しいインスタンスを初期化します。Initializes a new instance of the CommittableTransaction class with the specified timeout value.

CommittableTransaction(TransactionOptions)

指定したトランザクション オプションを使用して、CommittableTransaction クラスの新しいインスタンスを初期化します。Initializes a new instance of the CommittableTransaction class with the specified transaction options.

プロパティ

IsolationLevel

トランザクションの分離レベルを取得します。Gets the isolation level of the transaction.

(継承元 Transaction)
PromoterType

トランザクションを昇格するときに、Promote メソッドで返される byte[] の形式を一意に識別します。Uniquely identifies the format of the byte[] returned by the Promote method when the transaction is promoted.

(継承元 Transaction)
TransactionInformation

トランザクションの追加情報を取得します。Retrieves additional information about a transaction.

(継承元 Transaction)

メソッド

BeginCommit(AsyncCallback, Object)

非同期的にトランザクションをコミットする試みを開始します。Begins an attempt to commit the transaction asynchronously.

BeginCommitInternal(AsyncCallback) (継承元 Transaction)
Clone()

トランザクションの複製を作成します。Creates a clone of the transaction.

(継承元 Transaction)
Commit()

トランザクションをコミットしようとします。Attempts to commit the transaction.

DependentClone(DependentCloneOption)

トランザクションの依存する複製を作成します。Creates a dependent clone of the transaction.

(継承元 Transaction)
Dispose()

オブジェクトによって保持されているリソースを解放します。Releases the resources that are held by the object.

(継承元 Transaction)
EndCommit(IAsyncResult)

非同期的にトランザクションをコミットする試みを終了します。Ends an attempt to commit the transaction asynchronously.

EndCommitInternal(IAsyncResult) (継承元 Transaction)
EnlistDurable(Guid, IEnlistmentNotification, EnlistmentOptions)

2 フェーズ コミットをサポートし、トランザクションに参加する永続的リソース マネージャーを参加させます。Enlists a durable resource manager that supports two phase commit to participate in a transaction.

(継承元 Transaction)
EnlistDurable(Guid, ISinglePhaseNotification, EnlistmentOptions)

単一フェーズ コミットの最適化をサポートし、トランザクションに参加する永続的リソース マネージャーを参加させます。Enlists a durable resource manager that supports single phase commit optimization to participate in a transaction.

(継承元 Transaction)
EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification)

昇格可能な単一フェーズの参加リスト (PSPE) を使用して、内部トランザクションを持つリソース マネージャーを参加させます。Enlists a resource manager that has an internal transaction using a promotable single phase enlistment (PSPE).

(継承元 Transaction)
EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid)

昇格可能な単一フェーズの参加リスト (PSPE) を使用して、内部トランザクションを持つリソース マネージャーを参加させます。Enlists a resource manager that has an internal transaction using a promotable single phase enlistment (PSPE).

(継承元 Transaction)
EnlistVolatile(IEnlistmentNotification, EnlistmentOptions)

トランザクションに参加する 2 フェーズ コミットをサポートしている揮発性リソース マネージャーを参加させます。Enlists a volatile resource manager that supports two phase commit to participate in a transaction.

(継承元 Transaction)
EnlistVolatile(ISinglePhaseNotification, EnlistmentOptions)

単一フェーズ コミットの最適化をサポートし、トランザクションに参加する揮発性リソース マネージャーを参加させます。Enlists a volatile resource manager that supports single phase commit optimization to participate in a transaction.

(継承元 Transaction)
Equals(Object)

このトランザクションと指定したオブジェクトが等しいかどうかを判断します。Determines whether this transaction and the specified object are equal.

(継承元 Transaction)
GetHashCode()

このインスタンスのハッシュ コードを返します。Returns the hash code for this instance.

(継承元 Transaction)
GetPromotedToken()

トランザクションを昇格するときに、Promote メソッドで返される byte[] を取得します。Gets the byte[] returned by the Promote method when the transaction is promoted.

(継承元 Transaction)
GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
PromoteAndEnlistDurable(Guid, IPromotableSinglePhaseNotification, ISinglePhaseNotification, EnlistmentOptions)

2 フェーズ コミットをサポートし、トランザクションに参加する永続的リソース マネージャーを昇格および参加させます。Promotes and enlists a durable resource manager that supports two phase commit to participate in a transaction.

(継承元 Transaction)
Rollback()

トランザクションをロールバック (中止) します。Rolls back (aborts) the transaction.

(継承元 Transaction)
Rollback(Exception)

トランザクションをロールバック (中止) します。Rolls back (aborts) the transaction.

(継承元 Transaction)
SetDistributedTransactionIdentifier(IPromotableSinglePhaseNotification, Guid)

MSDTC でないプロモーターによって生成される分散トランザクションの識別子を設定します。Sets the distributed transaction identifier generated by the non-MSDTC promoter.

(継承元 Transaction)
ToString()

現在のオブジェクトを表す string を返します。Returns a string that represents the current object.

(継承元 Object)

イベント

TransactionCompleted

トランザクションが完了したことを示します。Indicates that the transaction is completed.

(継承元 Transaction)

明示的なインターフェイスの実装

IAsyncResult.AsyncState

BeginCommit(AsyncCallback, Object) メソッド呼び出しの最後のパラメーターに指定されたオブジェクトを取得します。Gets the object provided as the last parameter of the BeginCommit(AsyncCallback, Object) method call.

IAsyncResult.AsyncWaitHandle

非同期操作が完了するまで待機するために使用する WaitHandle を取得します。Gets a WaitHandle that is used to wait for an asynchronous operation to complete.

IAsyncResult.CompletedSynchronously

非同期のコミット操作が同期的に完了したかどうかを示す値を取得します。Gets an indication of whether the asynchronous commit operation completed synchronously.

IAsyncResult.IsCompleted

非同期のコミット操作が完了したかどうかを示す値を取得します。Gets an indication whether the asynchronous commit operation has completed.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

適用対象

スレッド セーフ

この型はスレッド セーフです。This type is thread safe.

こちらもご覧ください