Enlistment.Done Metoda

Definicja

Wskazuje, że uczestnik transakcji wykonał swoją pracę.

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

Uwagi

W ostatniej fazie zatwierdzenia transakcji menedżer transakcji wywołuje metodę Commitlub InDoubt metodę Rollback uczestnika, w zależności od tego, czy transakcja ma zostać zatwierdzona, czy wycofana. Menedżer zasobów powinien wykonać każdą pracę niezbędną do zakończenia transakcji, a następnie poinformować menedżera transakcji o zakończeniu, wywołując metodę Done w parametrze enlistment .

Jeśli menedżer zasobów jest trwale wymieniony, ale nie odpowiada za pomocą metody wywołującej Done , menedżer transakcji nie jest pewien, że menedżer zasobów otrzymał odpowiednie wywołanie powiadomień. W związku z tym menedżer transakcji czeka na odpowiedź i utrzymuje informacje istotne dla tej transakcji. Jeśli Done nigdy nie jest wywoływana, ta część informacji jest przechowywana w pamięci przez czas nieokreślony lub w zasobie obejmującym cały system. Powoduje to, że zasoby nie mogą zostać odzyskane. W przypadku transakcji rozproszonej może to ostatecznie wypełnić dziennik MSDTC, który zatrzymuje proces MSDTC. W przypadku transakcji zarządzanej przez System.Transactionsprogram powoduje to stopniowy i ciągły wzrost zużycia pamięci procesu menedżera zasobów. W związku z tym ważne jest, aby wywołać metodę po zakończeniu Done pracy przy przygotowaniu menedżera zasobów.

Rejestracja może wywołać metodę Done w dowolnym momencie, zanim wywołana Prepared w fazie przygotowywania. W ten sposób rejestracja rzutuje głos tylko do odczytu, co oznacza, że głosuje za zatwierdzeniem transakcji, ale nie musi otrzymywać końcowego wyniku. Należy pamiętać, że po wywołaniu tej metody uczestnik na liście nie otrzymuje żadnych dalszych powiadomień od menedżera transakcji.

Dotyczy

Zobacz też