Freigeben über


IEnlistmentNotification.Prepare(PreparingEnlistment) Methode

Definition

Benachrichtigt ein aufgelistetes Objekt, dass eine Transaktion für die Verpflichtung vorbereitet wird.

public:
 void Prepare(System::Transactions::PreparingEnlistment ^ preparingEnlistment);
public void Prepare(System.Transactions.PreparingEnlistment preparingEnlistment);
abstract member Prepare : System.Transactions.PreparingEnlistment -> unit
Public Sub Prepare (preparingEnlistment As PreparingEnlistment)

Parameter

preparingEnlistment
PreparingEnlistment

Ein PreparingEnlistment Objekt, das zum Senden einer Antwort an den Transaktions-Manager verwendet wird.

Hinweise

Der Transaktions-Manager ruft diese Methode eines aufgelisteten Ressourcen-Managers während der Phase 1 einer Verpflichtung auf, wenn teilnehmer gefragt werden, ob sie die Transaktion übernehmen können.

Wenn Sie einen dauerhaften Ressourcen-Manager implementieren, sollten Sie ihren Vorbereitungsdatensatz während dieser Phase protokollieren. Der Datensatz sollte alle erforderlichen Informationen enthalten, um die Wiederherstellung durchzuführen. Dies schließt die RecoveryInformation() Eigenschaft ein, die während der Wiederherstellung an den Transaktions-Manager in der Reenlist Methode übergeben wird. Weitere Informationen zur Wiederherstellung finden Sie unter Ausführen der Wiederherstellung.

Der Ressourcenmanager sollte alle Arbeiten abschließen, die abgeschlossen werden müssen, bevor die Prepared Methode des preparingEnlistment Parameters aufgerufen wird, um seine Stimme für die Verpflichtung anzugeben. Sie sollten sicherstellen, dass dies erreicht wird, bevor Sie eine Phase 2-Benachrichtigung wie Commit, Rollback oder Zweifel erhalten. Dies liegt daran, dass Phase 2-Benachrichtigungen inline im selben Thread auftreten können, der die Prepared Methode in Phase 1 aufgerufen hat. Daher sollten Sie nach dem Prepared Aufruf keine Arbeiten ausführen (z.B. das Freigeben von Sperren), die Sie vor dem Empfang der Phase 2-Benachrichtigungen abgeschlossen haben möchten.

Sie können auch die Methode des preparingEnlistment Parameters aufrufen, um eine Abstimmung für den Rollback anzugeben.

Wenn Sie möchten, dass das Objekt nur den Fortschritt der Transaktion beobachtet und reagiert, ohne daran teilzunehmen, sollte die Implementierung dieser Methode die Done Methode des preparingEnlistment Parameters aufrufen, wenn sie die Arbeit abgeschlossen hat. Auf diese Weise würde Ihr Ressourcenmanager keine Phase 2-Benachrichtigung erhalten.

Gilt für: