次の方法で共有


IEnlistmentNotification.Commit(Enlistment) メソッド

定義

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

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

パラメーター

enlistment
Enlistment

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

注釈

トランザクション マネージャーは、コミットメントの 2 番目のフェーズで、すべての参加者にトランザクションのコミットを指示するときに、参加オブジェクトのこのメソッドを呼び出します。

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

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

適用対象