Freigeben über


Enlistment.Done Methode

Definition

Gibt an, dass der Transaktionsteilnehmer seine Aufgaben abgeschlossen hat.

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

Hinweise

In der letzten Phase des Transaktionscommittens ruft der Transaktions-Manager entweder die CommitRollback - oder InDoubt -Methode des Teilnehmers auf, je nachdem, ob die Transaktion committet oder zurückgesetzt werden soll. Der Ressourcen-Manager sollte alle erforderlichen Arbeiten ausführen, um die Transaktion abzuschließen, und dann den Transaktions-Manager darüber informieren, dass er abgeschlossen ist, indem er die Done -Methode für den enlistment -Parameter aufruft.

Wenn der Ressourcen-Manager dauerhaft eingetragen wurde, aber nicht durch aufrufende Done Methode antwortet, ist der Transaktions-Manager nicht sicher, dass der Ressourcenmanager den entsprechenden Benachrichtigungsaufruf erhalten hat. Daher wartet der Transaktions-Manager weiterhin auf eine Antwort und verwaltet informationen, die für diese Transaktion relevant sind. Wenn Done nie aufgerufen wird, wird diese Information unbegrenzt im Arbeitsspeicher oder in einer systemweiten Ressource gespeichert. Dies führt dazu, dass Ressourcen nicht zurückgewonnen werden können. Bei einer verteilten Transaktion könnte dies schließlich das MSDTC-Protokoll füllen, das den MSDTC-Prozess anhält. Im Fall einer von verwalteten System.TransactionsTransaktion führt dies zu einer allmählichen und kontinuierlichen Erhöhung des Arbeitsspeicherverbrauchs des Prozesses des Ressourcenmanagers. Daher ist es von entscheidender Bedeutung, dass Sie die Done -Methode aufrufen, sobald Ihr Ressourcen-Manager ihre Vorbereitungsarbeiten abgeschlossen hat.

Eine Einlistung kann die Done -Methode jederzeit aufrufen, bevor sie in der Vorbereitungsphase aufgerufen Prepared wurde. Auf diese Weise gibt die Aufnahme eine schreibgeschützte Stimme ab, was bedeutet, dass sie über die Transaktion abstimmt, aber nicht das endgültige Ergebnis erhalten muss. Beachten Sie, dass der beteiligte Teilnehmer nach dem Aufruf dieser Methode keine weiteren Benachrichtigungen vom Transaktions-Manager erhält.

Gilt für:

Weitere Informationen