IEnlistmentNotification.Commit(Enlistment) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
告知登記的物件正在認可交易。
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 方法。