次の方法で共有


IEnlistmentNotification.Rollback(Enlistment) メソッド

定義

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

public:
 void Rollback(System::Transactions::Enlistment ^ enlistment);
public void Rollback (System.Transactions.Enlistment enlistment);
abstract member Rollback : System.Transactions.Enlistment -> unit
Public Sub Rollback (enlistment As Enlistment)

パラメーター

enlistment
Enlistment

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

注釈

トランザクション マネージャーは、1 つ以上のトランザクション参加者がトランザクションをコミットできないためにトランザクションがロールバック (中止) されるときに、参加オブジェクトのこのメソッドを呼び出します。

リソース マネージャーは、トランザクションを完了するために必要な作業を実行し、 パラメーターで メソッドを呼び出 Done して完了したことを TM に通知する enlistment 必要があります。

リソース マネージャーが永続的に参加しているが、 メソッドを呼び出して応答しない場合、トランザクション マネージャーはリソース マネージャーが呼び出 Done しを Rollback 受信したかどうか不明です。 そのため、トランザクション マネージャーは応答を待機し続け、このトランザクションに関連する情報を保持します。 が呼び出されない場合 Done 、この情報はメモリまたはシステム全体のリソースに無期限に保持されます。 これにより、リソースを再利用できなくなります。 分散トランザクションの場合、最終的に MSDTC ログがいっぱいになり、MSDTC プロセスが停止する可能性があります。 によって管理される System.Transactionsトランザクションの場合、これにより、リソース マネージャーのプロセスのメモリ消費量が段階的かつ継続的に増加します。 そのため、リソース マネージャーが準備作業を Done 完了したら、 メソッドを呼び出す必要があります。

適用対象