Enlistment.Done Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Wskazuje, że uczestnik transakcji zakończył swoją pracę.
public:
void Done();
public void Done();
member this.Done : unit -> unit
Public Sub Done ()
Uwagi
W ostatniej fazie zatwierdzania transakcji menedżer transakcji wywołuje metodę Commitlub , Rollback w InDoubt 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, że zakończył, wywołując metodę Done w parametrze enlistment .
Jeśli menedżer zasobów zarejestrował się trwale, 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 powiadomienia. 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 przez czas nieokreślony w pamięci 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 przed wywołaniem Prepared jej w fazie przygotowywania. W ten sposób rejestracja rzutuje głos tylko do odczytu, co oznacza, że głosuje zatwierdzenie transakcji, ale nie musi otrzymać końcowego wyniku. Należy pamiętać, że po wywołaniu tej metody uczestnik z listy nie otrzymuje żadnych dalszych powiadomień od menedżera transakcji.