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 物件,用來傳送回應給交易管理員。

備註

當交易管理員指示所有參與者認可交易時,會在承諾用量的第二個階段中呼叫已登錄物件的這個方法。

資源管理員應該執行完成交易所需的任何工作,然後透過在 參數上 enlistment 呼叫 Done 方法來通知 TM 已完成。

如果資源管理員已永久登記,但未透過呼叫 Done 方法來回應,交易管理員不確定資源管理員已 Commit 收到呼叫。 因此,交易管理員會持續等候回應,並維護與此交易相關的資訊。 如果 Done 從未呼叫,這項資訊會無限期地保留在記憶體或全系統資源中。 這會導致資源無法回收。 在分散式交易的情況下,這最終可能會填入 MSDTC 記錄檔,以停止 MSDTC 程式。 在 所 System.Transactions 管理的交易案例中,這會導致資源管理員進程的記憶體耗用量逐漸增加且持續增加。 因此,當您的資源管理員完成準備工作時,請務必呼叫 Done 方法。

適用於