Teilen über


CommittableTransaction Klasse

Definition

Beschreibt eine Transaktion, für die ein Commit ausgeführt werden kann.

public ref class CommittableTransaction sealed : System::Transactions::Transaction, IAsyncResult
public sealed class CommittableTransaction : System.Transactions.Transaction, IAsyncResult
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public sealed class CommittableTransaction : System.Transactions.Transaction, IAsyncResult
[System.Serializable]
public sealed class CommittableTransaction : System.Transactions.Transaction, IAsyncResult
type CommittableTransaction = class
    inherit Transaction
    interface IAsyncResult
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
type CommittableTransaction = class
    inherit Transaction
    interface IAsyncResult
[<System.Serializable>]
type CommittableTransaction = class
    inherit Transaction
    interface IAsyncResult
Public NotInheritable Class CommittableTransaction
Inherits Transaction
Implements IAsyncResult
Vererbung
CommittableTransaction
Attribute
Implementiert

Hinweise

Die CommittableTransaction-Klasse ermöglicht es Anwendungen, Transaktionen explizit zu verwenden, anstatt die TransactionScope-Klasse implizit zu verwenden. Im Unterschied zur TransactionScope-Klasse muss der Autor der Anwendung die Commit-Methode bzw. die Rollback-Methode aufrufen, um einen Commit der Transaktion auszuführen oder um sie abzubrechen. Allerdings kann nur der Ersteller einer Transaktion ein Commit für die Transaktion ausführen. Daher sind Kopien einer commitfähigen Transaktion, die über die Transaction.Clone -Methode abgerufen wurde, nicht commitfähig.

Hinweis

Es wird empfohlen, implizite Transaktionen mithilfe der TransactionScope -Klasse zu erstellen, damit der Umgebungstransaktionskontext automatisch für Sie verwaltet wird. Sie sollten auch die TransactionScope Klassen und DependentTransaction für Anwendungen verwenden, die die Verwendung derselben Transaktion über mehrere Funktionsaufrufe oder mehrere Threadaufrufe erfordern. Weitere Informationen zu diesem Modell finden Sie im Thema Implementieren einer impliziten Transaktion mithilfe des Transaktionsbereichs .

Beim Erstellen einer CommittableTransaction wird nicht automatisch die Ambient-Transaktion festgelegt, d. h. die Transaktion, in der Ihr Code ausgeführt wird. Sie können die Ambient-Transaktion abrufen oder festlegen, indem Sie die statische Transaction.Current Eigenschaft des globalen Transaction Objekts aufrufen. Weitere Informationen zu Ambient-Transaktionen finden Sie im Abschnitt "Verwalten des Transaktionsflusses mit TransactionScopeOption" des Themas Implementieren einer impliziten Transaktion mithilfe des Transaktionsbereichs . Wenn die Ambient-Transaktion nicht festgelegt ist, ist jeder Vorgang für einen Ressourcen-Manager nicht Teil dieser Transaktion. Sie müssen die Ambient-Transaktion explizit festlegen und zurücksetzen, um sicherzustellen, dass Ressourcenmanager unter dem richtigen Transaktionskontext arbeiten.

Bis ein CommittableTransaction Commit ausgeführt wurde, sind alle Ressourcen, die an der Transaktion beteiligt sind, weiterhin gesperrt.

Ein CommittableTransaction-Objekt kann nicht wiederverwendet werden. Nachdem ein Commit ausgeführt oder ein Rollback ausgeführt wurde, kann es nicht mehr in einer Transaktion verwendet oder als aktueller Umgebungstransaktionskontext festgelegt werden.

Konstruktoren

CommittableTransaction()

Initialisiert eine neue Instanz der CommittableTransaction-Klasse.

CommittableTransaction(TimeSpan)

Initialisiert eine neue Instanz der CommittableTransaction-Klasse mit dem angegebenen timeout-Wert.

CommittableTransaction(TransactionOptions)

Initialisiert eine neue Instanz der CommittableTransaction-Klasse mit den angegebenen Transaktionsoptionen.

Eigenschaften

IsolationLevel

Ruft die Isolationsstufe der Transaktion ab.

(Geerbt von Transaction)
PromoterType

Bestimmt eindeutig das Format des von der "Promote"-Methode zurückgegebenen byte[] -Elements, wenn die Transaktion heraufgestuft wird.

(Geerbt von Transaction)
TransactionInformation

Ruft zusätzliche Informationen zu einer Transaktion ab.

(Geerbt von Transaction)

Methoden

BeginCommit(AsyncCallback, Object)

Versucht, einen asynchronen Commit für die Transaktion auszuführen.

Clone()

Erstellt einen Klon der Transaktion.

(Geerbt von Transaction)
Commit()

Versucht, einen Commit für die Transaktion auszuführen.

DependentClone(DependentCloneOption)

Erstellt einen abhängigen Klon der Transaktion.

(Geerbt von Transaction)
Dispose()

Gibt alle vom Objekt reservierten Ressourcen frei.

(Geerbt von Transaction)
EndCommit(IAsyncResult)

Beendet einen Versuch, einen asynchronen Commit für die Transaktion auszuführen.

EnlistDurable(Guid, IEnlistmentNotification, EnlistmentOptions)

Trägt einen permanenten Ressourcen-Manager ein, der das Zwei-Phasen-Commit unterstützt und an einer Transaktion beteiligt sein soll.

(Geerbt von Transaction)
EnlistDurable(Guid, ISinglePhaseNotification, EnlistmentOptions)

Trägt einen permanenten Ressourcen-Manager ein, der das Optimieren eines Ein-Phasen-Commits unterstützt und an einer Transaktion beteiligt sein soll.

(Geerbt von Transaction)
EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid)

Trägt einen Ressourcen-Manager mit einer internen Transaktion mithilfe einer heraufstufbaren Einphaseneintragung (PSPE) ein.

(Geerbt von Transaction)
EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification)

Trägt einen Ressourcen-Manager mit einer internen Transaktion mithilfe einer heraufstufbaren Einphaseneintragung (PSPE) ein.

(Geerbt von Transaction)
EnlistVolatile(IEnlistmentNotification, EnlistmentOptions)

Trägt einen flüchtigen Ressourcen-Manager, der den Zweiphasencommit zur Teilnahme an einer Transaktion unterstützt, in die Liste ein.

(Geerbt von Transaction)
EnlistVolatile(ISinglePhaseNotification, EnlistmentOptions)

Trägt einen flüchtigen Ressourcen-Manager ein, der das Optimieren eines Ein-Phasen-Commits unterstützt und an einer Transaktion beteiligt sein soll.

(Geerbt von Transaction)
Equals(Object)

Bestimmt, ob diese Transaktion und das angegebene Objekt übereinstimmen.

(Geerbt von Transaction)
GetHashCode()

Gibt den Hashcode für diese Instanz zurück.

(Geerbt von Transaction)
GetPromotedToken()

Ruft den ab, der byte[] von der Promote -Methode zurückgegeben wird, wenn die Transaktion heraufgestuft wird.

(Geerbt von Transaction)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
PromoteAndEnlistDurable(Guid, IPromotableSinglePhaseNotification, ISinglePhaseNotification, EnlistmentOptions)

Stuft einen permanenten Ressourcen-Manager höher, der das Zwei-Phasen-Commit unterstützt und an einer Transaktion beteiligt sein soll, oder trägt diesen ein.

(Geerbt von Transaction)
Rollback()

Führt einen Rollback für die Transaktion aus (bricht diese ab).

(Geerbt von Transaction)
Rollback(Exception)

Führt einen Rollback für die Transaktion aus (bricht diese ab).

(Geerbt von Transaction)
SetDistributedTransactionIdentifier(IPromotableSinglePhaseNotification, Guid)

Legt den Bezeichner der verteilten Transaktion fest, der vom Nicht-MSDTC-Promoter generiert wird.

(Geerbt von Transaction)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Ereignisse

TransactionCompleted

Gibt an, dass die Transaktion abgeschlossen ist.

(Geerbt von Transaction)

Explizite Schnittstellenimplementierungen

IAsyncResult.AsyncState

Ruft das Objekt ab, das als letzter Parameter des BeginCommit(AsyncCallback, Object)-Methodenaufrufs bereitgestellt wurde.

IAsyncResult.AsyncWaitHandle

Ruft einen WaitHandle ab, der verwendet wird, um auf den Abschluss eines asynchronen Vorgangs zu warten.

IAsyncResult.CompletedSynchronously

Ruft eine Angabe darüber ab, ob der asynchrone Commitvorgang synchron abgeschlossen wurde.

IAsyncResult.IsCompleted

Ruft eine Angabe darüber ab, ob der asynchrone Commitvorgang abgeschlossen wurde.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Ruft SerializationInfo mit den Daten ab, die für das Serialisieren dieser Transaktion erforderlich sind.

(Geerbt von Transaction)

Gilt für:

Threadsicherheit

Dieser Typ ist threadsicher.

Weitere Informationen