Enlistment.Done 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示交易參與者已完成其工作。
public:
void Done();
public void Done();
member this.Done : unit -> unit
Public Sub Done ()
備註
在交易提交的最後階段,交易管理器會呼叫CommitRollbackInDoubt參與者的方法,視交易是要提交還是回滾而定。 資源管理器應執行完成交易所需的工作,然後透過呼叫 Done 參數上的方法 enlistment 通知交易管理器已完成。
若資源管理器已持續登錄,但未以呼叫 Done 方法回應,則交易管理器不確定該資源管理器是否已收到相應的通知呼叫。 因此,交易管理器會持續等待回應,並保存與本交易相關的資訊。 若 Done 從未被呼叫,該資訊將無限期保存在記憶體或系統整體資源中。 這導致資源無法回收。 在分散式交易中,這最終可能填滿 MSDTC 日誌,導致 MSDTC 程序中止。 若交易由 管理 System.Transactions,會導致資源管理器程序的記憶體消耗逐漸且持續增加。 因此,當您的資源經理完成您的準備工作後,務必致電該 Done 服務。
徵兵可以在方法尚未進入準備階段前的任何時間Done呼叫該Prepared方法。 透過此,登錄即投出唯讀投票,意即它對交易投承諾,但不必收到最終結果。 請注意,呼叫此方法後,被列入的參與者不會再收到交易管理器的通知。