IEnlistmentNotification.Commit(Enlistment) Methode

Definition

Benachrichtigt ein eingetragenes Objekt darüber, dass ein Commit für eine Transaktion ausgeführt wird.

public:
 void Commit(System::Transactions::Enlistment ^ enlistment);
public void Commit (System.Transactions.Enlistment enlistment);
abstract member Commit : System.Transactions.Enlistment -> unit
Public Sub Commit (enlistment As Enlistment)

Parameter

enlistment
Enlistment

Ein Enlistment-Objekt, mit dem eine Antwort an den Transaktions-Manager gesendet wird.

Hinweise

Der Transaktions-Manager ruft diese Methode eines eingetragenen Objekts in der zweiten Phase einer Verpflichtung auf, wenn er alle Teilnehmer anweist, die Transaktion zu commiten.

Der Ressourcen-Manager sollte alle erforderlichen Arbeiten ausführen, um die Transaktion abzuschließen, und dann den TM 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 Aufrufen Done der Methode antwortet, ist der Transaktions-Manager nicht sicher, dass der Ressourcen-Manager den Commit Aufruf 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.

Gilt für: