Aracılığıyla paylaş


Enlistment.Done Yöntem

Tanım

İşlem katılımcısının çalışmasını tamamladığını gösterir.

public:
 void Done();
public void Done ();
member this.Done : unit -> unit
Public Sub Done ()

Açıklamalar

İşlem işlemenin son aşaması sırasında işlem yöneticisi, işlemin işlenip işlenmeyeceğine veya InDoubt geri alınıp alınmayacağına bağlı olarak katılımcının veya Rollback yöntemini çağırırCommit. Kaynak yöneticisi işlemi tamamlamak için gereken tüm işleri gerçekleştirmeli ve ardından parametresinde enlistment yöntemini çağırarak işlem yöneticisine Done tamamlandığını bildirmelidir.

Kaynak yöneticisi kalıcı olarak listelenmişse ancak yöntemini çağırarak Done yanıt vermiyorsa, işlem yöneticisi kaynak yöneticisinin ilgili bildirim çağrısını aldığından emin değildir. Bu nedenle, işlem yöneticisi yanıt beklemeye devam eder ve bu işlemle ilgili bilgileri tutar. Hiçbir zaman çağrılmazsa Done , bu bilgi parçası bellekte veya sistem genelindeki bir kaynakta süresiz olarak tutulur. Bu, kaynakların geri alınamamasına neden olur. Dağıtılmış işlem söz konusu olduğunda, bu işlem sonunda MSDTC işlemini durduran MSDTC günlüğünü doldurabilir. tarafından System.Transactionsyönetilen bir işlem söz konusu olduğunda, bu durum kaynak yöneticisinin işleminin bellek tüketiminde aşamalı ve sürekli bir artışa neden olur. Bu nedenle, kaynak yöneticiniz hazırlama çalışmanızı tamamladıktan sonra yöntemini çağırmanız Done çok önemlidir.

Bir liste, hazırlama aşamasında çağrılmadan önce yöntemini her zaman çağırabilir Done Prepared . Bunu yaptığınızda, liste salt okunur bir oy verir; başka bir deyişle işlem üzerinde işleme oy verir, ancak nihai sonucu alması gerekmez. Bu yöntem çağrıldıktan sonra, listeye alınan katılımcının işlem yöneticisinden başka bildirim almadığını unutmayın.

Şunlara uygulanır

Ayrıca bkz.