Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ein Transaktions-Manager (TM) ist eine Instanz eines Protokolls. In KTM geben die TM-Objekte das Protokoll und einige der Funktionen der TM an. Es gibt in der Regel viele TM-Objekte auf einem bestimmten Knoten. Ressourcenmanager (RMs) müssen einem bestimmten TM zugeordnet sein. Es gibt drei Arten von TMs:
- Eine veränderliche TM, die kein Protokoll enthält.
- Eine normale TM, die über ein Protokoll verfügt und verwendet wird, um die Transaktionen einer oder mehrerer RMs zu koordinieren.
- Ein überlegener Transaktionsmanager.
Veränderliche Transaktionsmanager
Eine veränderliche TM ist eine TM für schreibgeschützte oder veränderliche RMs. Es verfügt nicht über ein Protokoll und behält den Status der Transaktionen über Systemneustarts hinweg nicht bei.
Transaktionsmanager
TMs verfügen über ein Protokoll, einen oder mehrere dauerhafte oder veränderliche RMs oder beides. Die TM behält den Status einer Transaktion bei allen Systemneustarts bei, bis die Transaktionen abgeschlossen sind. Es wird ein angenommenes Abbruchmodell verwendet, sodass Transaktionen, die aktiv waren, aber nicht vorbereitet wurden, wenn das TM-Objekt heruntergefahren wird, zurückgesetzt werden. Wenn Sie eine TM zum ersten Mal öffnen, müssen Sie die TM wiederherstellen, indem Sie die RecoverTransactionManager--Funktion aufrufen.
Überlegene Transaktionsmanager
Eine überlegene TM ist eine TM für andere TMs. Es koordiniert Transaktionen. Außerdem werden TRANSACTION_NOTIFY_PREPARE Benachrichtigungen an den Kernel Transaction Manager (KTM) gesendet. Ein Beispiel für eine überlegene TM ist der Microsoft Distributed Transaction Coordinator (DTC). Diese Fähigkeit kommt mit einer zusätzlichen Wiederherstellungszeitverantwortung zusammen. Während der Wiederherstellung muss der RM zuerst die OpenEnlistment--Funktion aufrufen, um die Liste erneut zu öffnen. Sie muss auch das Ergebnis der Transaktion liefern (oder erneut liefern), wenn die Transaktion zugesichert wurde; es ist frei, ein Ergebnis zu liefern, indem entweder die CommitTransaction--Funktion oder die RollbackTransaction--Funktion aufgerufen wird. Diese Verpflichtung endet erst, wenn sie ein zugeordnetes TRANSACTION_NOTIFY_COMMIT_COMPLETE oder TRANSACTION_NOTIFY_ROLLBACK_COMPLETE Benachrichtigungsereignis erhalten hat. Wenn eine überlegene TM diese Vorgänge zur Wiederherstellungszeit nicht durchführt, bereinigt die KTM alle Transaktionen, die bis zum Ende der Wiederherstellungsphase keine Ergebnisse erhalten haben. Dies kann jedoch zu inkonsistenten Transaktionsergebnissen führen.
Transaktions-Manager-Funktionen
Die folgenden Funktionen werden mit Transaktionsmanagern verwendet.
Funktion | Beschreibung |
---|---|
CreateTransactionManager- | Erstellt ein neues Transaktions-Manager -Objekt (TM) und gibt ein Handle mit dem angegebenen Zugriff zurück. |
GetCurrentClockTransactionManager | Ruft einen virtuellen Uhrwert von einem Transaktions-Manager ab. |
GetTransactionManagerId- | Ruft einen Bezeichner für den angegebenen Transaktions-Manager ab. |
OpenTransactionManager- | Öffnet einen vorhandenen Transaktionsmanager. |
RecoverTransactionManager- | Stellt den Status eines Transaktionsmanagers aus der Protokolldatei wieder her. |
RollforwardTransactionManager | Stellt den Status eines Transaktionsmanagers aus seiner Protokolldatei auf den angegebenen virtuellen Uhrwert wieder her. |