Enlistment.Done Metod

Definition

Anger att transaktionsdeltagaren har slutfört sitt arbete.

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

Kommentarer

Under den sista fasen av transaktionsincheckningen anropar transaktionshanteraren antingen Commitdeltagarens , Rollback eller InDoubt -metod, beroende på om transaktionen ska checkas in eller återställas. Resurshanteraren bör utföra allt arbete som krävs för att slutföra transaktionen och sedan informera transaktionshanteraren om att den har slutförts genom att anropa Done metoden på parametern enlistment .

Om resurshanteraren har registrerat sig på rätt sätt, men inte svarar med anropande Done metod, är transaktionshanteraren osäker på att resurshanteraren har tagit emot respektive meddelandeanrop. Därför väntar transaktionshanteraren på ett svar och underhåller information som är relevant för den här transaktionen. Om Done det aldrig anropas sparas den här informationen på obestämd tid i minnet eller i en systemomfattande resurs. Detta resulterar i att resurser inte kan frigöras. När det gäller en distribuerad transaktion kan detta så småningom fylla MSDTC-loggen, vilket stoppar MSDTC-processen. När det gäller en transaktion som hanteras av System.Transactionsresulterar detta i en gradvis och kontinuerlig ökning av minnesförbrukningen för resurshanterarens process. Därför är det viktigt att du anropar Done metoden när resurshanteraren är klar med ditt förberedelsearbete.

En registrering kan anropa Done metoden när som helst innan den anropas Prepared i förberedelsefasen. Genom att göra det lägger värnplikten en skrivskyddad röst, vilket innebär att den röstar för transaktionen men inte behöver få det slutliga resultatet. Observera att när den här metoden har anropats får den registrerade deltagaren inga ytterligare meddelanden från transaktionshanteraren.

Gäller för

Se även