CommittableTransaction Klasse

Definition

Beschreibt eine Transaktion, für die ein Commit ausgeführt werden kann.Describes a committable transaction.

public ref class CommittableTransaction sealed : System::Transactions::Transaction, IAsyncResult, IDisposable, System::Runtime::Serialization::ISerializable
public sealed class CommittableTransaction : System.Transactions.Transaction, IAsyncResult, IDisposable, System.Runtime.Serialization.ISerializable
[System.Serializable]
public sealed class CommittableTransaction : System.Transactions.Transaction, IAsyncResult, IDisposable, System.Runtime.Serialization.ISerializable
type CommittableTransaction = class
    inherit Transaction
    interface ISerializable
    interface IDisposable
    interface IAsyncResult
Public NotInheritable Class CommittableTransaction
Inherits Transaction
Implements IAsyncResult, IDisposable, ISerializable
Vererbung
CommittableTransaction
Attribute
Implementiert

Hinweise

Die CommittableTransaction-Klasse ermöglicht es Anwendungen, Transaktionen explizit zu verwenden, anstatt die TransactionScope-Klasse implizit zu verwenden.The CommittableTransaction class provides an explicit way for applications to use a transaction, as opposed to using the TransactionScope class implicitly. 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.Unlike the TransactionScope class, the application writer needs to specifically call the Commit and Rollback methods in order to commit or abort the transaction. Allerdings kann nur der Ersteller einer Transaktion einen Commit für die Transaktion durchsetzen.However, only the creator of a transaction can commit the transaction. Daher können Kopien einer commitfähigen Transaktion, die durch die Transaction.Clone-Methode abgerufen wird, nicht committet werden.Therefore, copies of a committable transaction obtained through the Transaction.Clone method are not committable.

Hinweis

Es wird empfohlen, implizite Transaktionen mit der TransactionScope-Klasse zu erstellen, damit der Ambient-Transaktionskontext automatisch für Sie verwaltet wird.We recommend that you create implicit transactions using the TransactionScope class, so that the ambient transaction context is automatically managed for you. Sie sollten auch die Klassen TransactionScope und DependentTransaction für Anwendungen verwenden, die die Verwendung derselben Transaktion über mehrere Funktionsaufrufe oder mehrere Thread Aufrufe erfordern.You should also use the TransactionScope and DependentTransaction classes for applications that require the use of the same transaction across multiple function calls or multiple thread calls. Weitere Informationen zu diesem Modell finden Sie im Thema Implementieren einer impliziten Transaktion mit Transaktions Bereich .For more information on this model, see the Implementing An Implicit Transaction Using Transaction Scope topic.

Beim Erstellen eines CommittableTransaction wird die Ambient-Transaktion nicht automatisch festgelegt, d. h. die Transaktion, in der der Code ausgeführt wird.Creating a CommittableTransaction does not automatically set the ambient transaction, which is the transaction your code executes in. Sie können die Ambient-Transaktion abrufen oder festlegen, indem Sie die statische Transaction.Current-Eigenschaft des globalen Transaction Objekts aufrufen.You can get or set the ambient transaction by calling the static Transaction.Current property of the global Transaction object. Weitere Informationen zu Ambient-Transaktionen finden Sie im Abschnitt "Verwalten des Transaktions Flusses mithilfe von transaktionscopeoption" im Thema Implementieren einer impliziten Transaktion mit Transaktions Bereich .For more information on ambient transactions, see the " Managing Transaction Flow using TransactionScopeOption" section of the Implementing An Implicit Transaction Using Transaction Scope topic. Wenn die Ambient-Transaktion nicht festgelegt ist, ist jeder Vorgang in einem Ressourcen-Manager nicht Teil dieser Transaktion.If the ambient transaction is not set, any operation on a resource manager is not part of that transaction. Sie müssen die Ambient-Transaktion explizit festlegen und zurücksetzen, um sicherzustellen, dass Ressourcen-Manager im richtigen Transaktionskontext arbeiten.You need to explicitly set and reset the ambient transaction to ensure that resource managers operate under the right transaction context.

Bis für eine CommittableTransaction ein Commit ausgeführt wurde, sind alle mit der Transaktion verbundenen Ressourcen immer noch gesperrt.Until a CommittableTransaction has been committed, all the resources involved with the transaction are still locked.

Ein CommittableTransaction-Objekt kann nicht wiederverwendet werden.A CommittableTransaction object cannot be reused. Nachdem ein Commit oder Rollback ausgeführt wurde, kann er nicht mehr in einer Transaktion verwendet oder als aktueller Ambient-Transaktionskontext festgelegt werden.Once it has been committed or rolled back, it cannot be used again in a transaction or set as the current ambient transaction context.

Konstruktoren

CommittableTransaction()

Initialisiert eine neue Instanz der CommittableTransaction-Klasse.Initializes a new instance of the CommittableTransaction class.

CommittableTransaction(TimeSpan)

Initialisiert eine neue Instanz der CommittableTransaction-Klasse mit dem angegebenen timeout-Wert.Initializes a new instance of the CommittableTransaction class with the specified timeout value.

CommittableTransaction(TransactionOptions)

Initialisiert eine neue Instanz der CommittableTransaction-Klasse mit den angegebenen Transaktionsoptionen.Initializes a new instance of the CommittableTransaction class with the specified transaction options.

Eigenschaften

IsolationLevel

Ruft die Isolationsstufe der Transaktion ab.Gets the isolation level of the transaction.

(Geerbt von Transaction)
PromoterType

Bestimmt eindeutig das Format des von der „Promote“-Methode zurückgegebenen byte[], wenn die Transaktion heraufgestuft wird.Uniquely identifies the format of the byte[] returned by the Promote method when the transaction is promoted.

(Geerbt von Transaction)
TransactionInformation

Ruft zusätzliche Informationen zu einer Transaktion ab.Retrieves additional information about a transaction.

(Geerbt von Transaction)

Methoden

BeginCommit(AsyncCallback, Object)

Versucht, einen asynchronen Commit für die Transaktion auszuführen.Begins an attempt to commit the transaction asynchronously.

BeginCommitInternal(AsyncCallback) (Geerbt von Transaction)
Clone()

Erstellt einen Klon der Transaktion.Creates a clone of the transaction.

(Geerbt von Transaction)
Commit()

Versucht, einen Commit für die Transaktion auszuführen.Attempts to commit the transaction.

DependentClone(DependentCloneOption)

Erstellt einen abhängigen Klon der Transaktion.Creates a dependent clone of the transaction.

(Geerbt von Transaction)
Dispose()

Gibt alle vom Objekt reservierten Ressourcen frei.Releases the resources that are held by the object.

(Geerbt von Transaction)
EndCommit(IAsyncResult)

Beendet einen Versuch, einen asynchronen Commit für die Transaktion auszuführen.Ends an attempt to commit the transaction asynchronously.

EndCommitInternal(IAsyncResult) (Geerbt von Transaction)
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.Enlists a durable resource manager that supports two phase commit to participate in a transaction.

(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.Enlists a durable resource manager that supports single phase commit optimization to participate in a transaction.

(Geerbt von Transaction)
EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification)

Trägt einen Ressourcen-Manager mit einer internen Transaktion mithilfe einer heraufstufbaren Einphaseneintragung (PSPE) ein.Enlists a resource manager that has an internal transaction using a promotable single phase enlistment (PSPE).

(Geerbt von Transaction)
EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid)

Trägt einen Ressourcen-Manager mit einer internen Transaktion mithilfe einer heraufstufbaren Einphaseneintragung (PSPE) ein.Enlists a resource manager that has an internal transaction using a promotable single phase enlistment (PSPE).

(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.Enlists a volatile resource manager that supports two phase commit to participate in a transaction.

(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.Enlists a volatile resource manager that supports single phase commit optimization to participate in a transaction.

(Geerbt von Transaction)
Equals(Object)

Bestimmt, ob diese Transaktion und das angegebene Objekt übereinstimmen.Determines whether this transaction and the specified object are equal.

(Geerbt von Transaction)
GetHashCode()

Gibt den Hashcode für diese Instanz zurück.Returns the hash code for this instance.

(Geerbt von Transaction)
GetPromotedToken()

Erhält das von der Promote-Methode zurückgegebene byte[], wenn die Transaktion heraufgestuft wird.Gets the byte[] returned by the Promote method when the transaction is promoted.

(Geerbt von Transaction)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current 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.Promotes and enlists a durable resource manager that supports two phase commit to participate in a transaction.

(Geerbt von Transaction)
Rollback()

Führt einen Rollback für die Transaktion aus (bricht diese ab).Rolls back (aborts) the transaction.

(Geerbt von Transaction)
Rollback(Exception)

Führt einen Rollback für die Transaktion aus (bricht diese ab).Rolls back (aborts) the transaction.

(Geerbt von Transaction)
SetDistributedTransactionIdentifier(IPromotableSinglePhaseNotification, Guid)

Legt den Bezeichner der verteilten Transaktion fest, der vom Nicht-MSDTC-Promoter generiert wird.Sets the distributed transaction identifier generated by the non-MSDTC promoter.

(Geerbt von Transaction)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)

Ereignisse

TransactionCompleted

Gibt an, dass die Transaktion abgeschlossen ist.Indicates that the transaction is completed.

(Geerbt von Transaction)

Explizite Schnittstellenimplementierungen

IAsyncResult.AsyncState

Ruft das Objekt ab, das als letzter Parameter des BeginCommit(AsyncCallback, Object)-Methodenaufrufs bereitgestellt wurde.Gets the object provided as the last parameter of the BeginCommit(AsyncCallback, Object) method call.

IAsyncResult.AsyncWaitHandle

Ruft einen WaitHandle ab, der verwendet wird, um auf den Abschluss eines asynchronen Vorgangs zu warten.Gets a WaitHandle that is used to wait for an asynchronous operation to complete.

IAsyncResult.CompletedSynchronously

Ruft eine Angabe darüber ab, ob der asynchrone Commitvorgang synchron abgeschlossen wurde.Gets an indication of whether the asynchronous commit operation completed synchronously.

IAsyncResult.IsCompleted

Ruft eine Angabe darüber ab, ob der asynchrone Commitvorgang abgeschlossen wurde.Gets an indication whether the asynchronous commit operation has completed.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Gilt für:

Threadsicherheit

Dieser Typ ist threadsicher.This type is thread safe.

Siehe auch