Język

Enlistment.Done Metoda

Definicja

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.

Dotyczy

Zobacz też