Transaktionen

Eine Transaktion ist ein Objekt, das eine logische Arbeitseinheit definiert. Die Transaktion ist aktiv, solange ein Handle auf die Transaktion verweist und als aktiv betrachtet wird, wenn die Transaktion noch nicht zugesichert oder zurückgesetzt wurde. Wenn eine Transaktion erstellt wird und alle Handles dafür geschlossen wurden, bevor ein Commit oder Rollback eintritt, wird die Transaktion zurückgesetzt.

Berücksichtigen Sie den Fall eines Transaktionsclients im Benutzermodus, der eine Transaktion zum Bereich seiner Vorgänge erstellt, und führt dann Aktualisierungen für einen oder mehrere Ressourcenmanager aus. Folgendes tritt auf:

  1. Der Client ruft die CreateTransaction--Funktion auf, um die Transaktion zu erstellen und erhält ein Handle für diese Transaktion als Rückgabewert.

    Die Transaktion kann von einer beliebigen Anzahl von Prozessen geöffnet oder geerbt werden. Jeder Prozess ist somit an der Transaktion beteiligt. Der Fehler eines dieser Prozesse führt dazu, dass die Transaktion abgebrochen wird.

    Diese Transaktion ist möglicherweise noch nicht dauerhaft. Nur Transaktionen, die den vorbereiteten Zustand erreicht haben, müssen bei Systemfehlern wiederhergestellt werden, wenn die Transaktion die angenommene Abbruchprotokollierung verwendet.

  2. Der Client muss eine Transaktion explizit an den Ressourcen-Manager übergeben.

  3. Der Client führt alle Transaktionsvorgänge mit einem oder mehreren RMs aus, z. B. transaktionsierte Dateisysteme.

  4. Der Client ruft die CommitTransaction--Funktion auf.

  5. Der Ressourcenmanager erhält Benachrichtigungen von KTM, um seine Daten vorzubereiten und zu übernehmen.

Transaktionen und Threads

Transaktionen sind nicht mit Threads identisch. Mehrere Threads oder Prozesse können Teil einer einzelnen Transaktion sein. Umgekehrt kann ein Thread Teil mehrerer verschiedener Transaktionen zu unterschiedlichen Zeiten sein.

Transaktionsfunktionen

Die folgenden Funktionen werden mit Transaktionen verwendet.

Funktion Beschreibung
CommitTransaction- Fordert an, dass die angegebene Transaktion zugesichert wird.
CommitTransactionAsync- Fordert an, dass die angegebene Transaktion zugesichert wird.
CreateTransaction- Erstellt ein neues Transaktionsobjekt.
GetTransactionInformation- Gibt die angeforderten Informationen zur angegebenen Transaktion zurück.
OpenTransaction- Öffnet eine vorhandene Transaktion.
RollbackTransaction- Fordert an, dass die angegebene Transaktion zurückgesetzt werden soll.
RollbackTransactionAsync- Fordert an, dass die angegebene Transaktion zurückgesetzt werden soll. Diese Funktion gibt asynchron zurück.
SetTransactionInformation- Legt die Transaktionsinformationen für die angegebene Transaktion fest.