次の方法で共有


ISinglePhaseNotification インターフェイス

定義

トランザクションに参加するための単一フェーズ コミットの最適化をサポートしているリソース オブジェクトについて説明します。

public interface class ISinglePhaseNotification : System::Transactions::IEnlistmentNotification
public interface ISinglePhaseNotification : System.Transactions.IEnlistmentNotification
type ISinglePhaseNotification = interface
    interface IEnlistmentNotification
Public Interface ISinglePhaseNotification
Implements IEnlistmentNotification
実装

注釈

リソース マネージャーがこのインターフェイスを実装して単一フェーズ コミットの最適化をサポートする場合でも、単一フェーズ コミットを受け取るとは限りません。 トランザクション マネージャーは、代わりに 2 つのフェーズ コミット通知を送信できます。

リソース マネージャーをトランザクションの参加者として参加させるには、クラスのEnlistVolatileメソッドまたはメソッドをEnlistDurableTransaction呼び出します。 具体的には、単一フェーズ コミット EnlistmentOptions が確実に None 実行されるように、パラメーターは等しい必要があります。 誤って設定 EnlistDuringPrepareRequiredされている場合、単一フェーズ コミットは行われません。

インターフェイスは ISinglePhaseNotification インターフェイスから IEnlistmentNotification 派生するため、リソース マネージャーは、2 つのフェーズ コミット通知に対して後者のすべてのメソッドも実装する必要があります。 これは、このリソース・マネージャーで 2 フェーズ・コミットまたは単一フェーズ・コミット最適化のどちらを使用するかに関するトランザクション・マネージャーの選択です。 ただし、このインターフェイスを実装すると、リソース マネージャーは、使用可能なときに最適化を利用できます。

最適化が使用され、トランザクション マネージャーが参加しているリソースのメソッドを呼び出す SinglePhaseCommit 場合、リソース マネージャーは、トランザクションがコミットまたはロールバックされるかどうかをトランザクション マネージャーに通知するために、クラスのさまざまな SinglePhaseEnlistment メソッドを使用してこの呼び出しに応答する必要があります。

メソッド

Commit(Enlistment)

トランザクションのコミット中であることを参加オブジェクトに通知します。

(継承元 IEnlistmentNotification)
InDoubt(Enlistment)

トランザクションのステータスが未決定であることを参加オブジェクトに通知します。

(継承元 IEnlistmentNotification)
Prepare(PreparingEnlistment)

トランザクションのコミットの準備中であることを参加オブジェクトに通知します。

(継承元 IEnlistmentNotification)
Rollback(Enlistment)

トランザクションのロールバック (中止) 中であることを参加オブジェクトに通知します。

(継承元 IEnlistmentNotification)
SinglePhaseCommit(SinglePhaseEnlistment)

単一フェーズ コミットの最適化に対応したリソース マネージャーにおけるコールバックの実装を表します。

適用対象

こちらもご覧ください