Enlistment.Done メソッド
アセンブリ: System.Transactions (system.transactions.dll 内)


トランザクションのコミットの最終フェーズで、トランザクションがコミットされるかロールバックされるかに応じて、トランザクション マネージャは参加要素の Commit メソッド、Rollback メソッド、または InDoubt メソッドを呼び出します。リソース マネージャは、トランザクションを完了するために必要なすべての作業を実行し、次に enlistment パラメータで Done メソッドを呼び出すことにより、作業が完了したことをトランザクション マネージャに知らせる必要があります。
リソース マネージャが永続的に参加しているのに Done メソッドの呼び出しによって応答しない場合、トランザクション マネージャはリソース マネージャが個々の通知の呼び出しを受け取ったかどうかを判断できません。このため、トランザクション マネージャは応答を待ち続け、このトランザクションに関する情報を保持します。Done が呼び出されない場合、この情報はメモリまたはシステム全体のリソース内にいつまでも保持されます。この結果、リソースを再要求できなくなります。分散トランザクションの場合、最終的には Microsoft 分散トランザクション コーディネータ (MSDTC: Microsoft Distributed Transaction Coordinator) のログがいっぱいになり、MSDTC プロセスが中断する可能性があります。System.Transactions によって管理されるトランザクションの場合、リソース マネージャのプロセスによるメモリ使用量が徐々に増加し続けます。このような理由から、リソース マネージャで準備作業が終了したら Done メソッドを呼び出すことが重要です。
参加リストは、準備フェーズで Prepared を呼び出す前に、いつでも Done メソッドを呼び出すことができます。これにより、参加リストは読み取り専用の決定を行います。これは、トランザクションはコミットするが、最終結果を受け取る必要がないことを意味します。このメソッドの呼び出し後、登録されている参加要素は、トランザクション マネージャからさらに通知を受け取ることはありません。

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- Enlistment.Done メソッドのページへのリンク