次の方法で共有


IEnlistmentNotification.Prepare(PreparingEnlistment) メソッド

定義

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

public:
 void Prepare(System::Transactions::PreparingEnlistment ^ preparingEnlistment);
public void Prepare (System.Transactions.PreparingEnlistment preparingEnlistment);
abstract member Prepare : System.Transactions.PreparingEnlistment -> unit
Public Sub Prepare (preparingEnlistment As PreparingEnlistment)

パラメーター

preparingEnlistment
PreparingEnlistment

トランザクション マネージャーに応答を送信するために使用する PreparingEnlistment オブジェクト。

注釈

トランザクション マネージャーは、コミットメントのフェーズ 1 の間に参加しているリソース マネージャーのこのメソッドを呼び出します。このメソッドは、参加者にトランザクションをコミットできるかどうかを尋ねます。

永続リソース マネージャーを実装する場合は、このフェーズ中に準備レコードをログに記録する必要があります。 レコードには、回復を実行するために必要なすべての情報が含まれている必要があります。 これには、 RecoveryInformation プロパティが含まれます。このプロパティは、復旧中に メソッドのトランザクション マネージャーに Reenlist 渡されます。 回復の詳細については、「回復の実行」を参照してください。

リソース マネージャーは、 パラメーターの メソッドpreparingEnlistmentを呼び出してコミットメントの投票をPrepared示す前に完了する必要があるすべての作業を完了する必要があります。 コミット、ロールバック、疑わしいなどのフェーズ 2 の通知を受け取る前に、これを行う必要があります。 これは、フェーズ 2 の通知は、フェーズ 1 で メソッドを呼び出 Prepared したのと同じスレッドでインラインで発生する可能性があるためです。 このため、フェーズ 2 の通知を受け取る前に既に完了したと考えられる作業 (ロックの解除など) は、Prepared 呼び出しの後には実行できません。

パラメーターの メソッドを呼び出して、 preparingEnlistment ロールバックの投票を示すこともできます。

オブジェクトが単にトランザクションの進行状況を観察し、それに参加せずに反応できるようにする場合、このメソッドの実装では、処理が完了したときに パラメーターの preparingEnlistment メソッドを呼び出すDone必要があります。 これにより、リソース マネージャーはフェーズ 2 の通知を受け取りません。

適用対象