CommittableTransaction CommittableTransaction CommittableTransaction CommittableTransaction Class

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
[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
CommittableTransactionCommittableTransactionCommittableTransactionCommittableTransaction
Attribute
Implementiert

Beispiele

Das folgende Beispiel erstellt zwei neue Instanzen der CommittableTransaction, ein Commit ausgeführt, und werden.The following sample creates two new instances of CommittableTransaction, commits and rolls back them respectively.

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 die Transaktion einen Commit ausführen.However, only the creator of a transaction can commit the transaction. Aus diesem Grund abgerufenes Kopien der Transaktion ein Commit ausgeführt werden, die Clone Methode sind nicht commitfähig.Therefore, copies of a committable transaction, obtained through the Clone method are not committable.

Hinweis

Es wird empfohlen, die Erstellung impliziter Transaktionen mithilfe der TransactionScope Klasse, sodass die 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. Verwenden Sie außerdem die TransactionScope und DependentTransaction -Klasse für Anwendungen, die die Verwendung der gleichen Transaktion über mehrere Funktionsaufrufe oder mehrere threadaufrufe hinweg erforderlich.You should also use the TransactionScope and DependentTransaction class 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 unter den Implementing An Implicit Transaction mithilfe von Transaktion Scope Thema.For more information on this model, see the Implementing An Implicit Transaction Using Transaction Scope topic.

Erstellen einer CommittableTransaction die Ambiente-Transaktion wird Ihr Code ausgeführt, in wird die Transaktion wird nicht automatisch festgelegt.Creating a CommittableTransaction does not automatically set the ambient transaction, which is the transaction your code executes in. Können Sie abrufen oder festlegen die Ambiente-Transaktion durch Aufrufen der statischen Transaction.Current Eigenschaft des globalen Transaction Objekt.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 Transaktionsflusses mit TransactionScopeOption" die Implementing An Implicit Transaction mithilfe von Transaktion Scope Thema.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 Ambiente-Transaktion nicht festgelegt ist, wird jeder Vorgang auf 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 explizit festlegen und Zurücksetzen der ambient-Transaktions um sicherzustellen, dass die Ressourcen-Manager im richtigen Transaktionskontext ausgeführt werden.You need to explicitly set and reset the ambient transaction to ensure that resource managers operate under the right transaction context.

Bis eine CommittableTransaction wurde Commit ausgeführt wurde, sind weiterhin alle an der Transaktion beteiligten Ressourcen 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. Sobald sie ein Commit oder Rollback ausgeführt wurde, nicht erneut verwendet werden, in einer Transaktion oder als der aktuelle Kontext der ambient-Transaktion festgelegt.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() CommittableTransaction() CommittableTransaction() CommittableTransaction()

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

CommittableTransaction(TimeSpan) CommittableTransaction(TimeSpan) CommittableTransaction(TimeSpan) 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) CommittableTransaction(TransactionOptions) CommittableTransaction(TransactionOptions) CommittableTransaction(TransactionOptions)

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

Methoden

BeginCommit(AsyncCallback, Object) BeginCommit(AsyncCallback, Object) BeginCommit(AsyncCallback, Object) BeginCommit(AsyncCallback, Object)

Versucht, einen asynchron Commit der Transaktion.Begins an attempt to commit the transaction asynchronously.

BeginCommitInternal(AsyncCallback) BeginCommitInternal(AsyncCallback) BeginCommitInternal(AsyncCallback) BeginCommitInternal(AsyncCallback) Inherited from Transaction
Clone() Clone() Clone() Clone()

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

(Inherited from Transaction)
Commit() Commit() Commit() Commit()

Versucht, die Transaktion ein Commit ausgeführt.Attempts to commit the transaction.

DependentClone(DependentCloneOption) DependentClone(DependentCloneOption) DependentClone(DependentCloneOption) DependentClone(DependentCloneOption)

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

(Inherited from Transaction)
Dispose() Dispose() Dispose() Dispose()

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

(Inherited from Transaction)
EndCommit(IAsyncResult) EndCommit(IAsyncResult) EndCommit(IAsyncResult) EndCommit(IAsyncResult)

Versuch, die asynchron die Transaktion ein commit wird beendet.Ends an attempt to commit the transaction asynchronously.

EndCommitInternal(IAsyncResult) EndCommitInternal(IAsyncResult) EndCommitInternal(IAsyncResult) EndCommitInternal(IAsyncResult) Inherited from Transaction
EnlistDurable(Guid, IEnlistmentNotification, EnlistmentOptions) EnlistDurable(Guid, IEnlistmentNotification, EnlistmentOptions) EnlistDurable(Guid, IEnlistmentNotification, EnlistmentOptions) EnlistDurable(Guid, IEnlistmentNotification, EnlistmentOptions)

Trägt einen permanenten Ressourcen-Manager, der Zweiphasencommit zur Teilnahme an einer Transaktion unterstützt.Enlists a durable resource manager that supports two phase commit to participate in a transaction.

(Inherited from Transaction)
EnlistDurable(Guid, ISinglePhaseNotification, EnlistmentOptions) EnlistDurable(Guid, ISinglePhaseNotification, EnlistmentOptions) EnlistDurable(Guid, ISinglePhaseNotification, EnlistmentOptions) EnlistDurable(Guid, ISinglePhaseNotification, EnlistmentOptions)

Trägt einen permanenten Ressourcen-Manager, der Einphasencommit-Optimierung zur Teilnahme an einer Transaktion unterstützt.Enlists a durable resource manager that supports single phase commit optimization to participate in a transaction.

(Inherited from Transaction)
EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification) EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification) EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification) 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).

(Inherited from Transaction)
EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid) EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid) EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid) 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).

(Inherited from Transaction)
EnlistVolatile(IEnlistmentNotification, EnlistmentOptions) EnlistVolatile(IEnlistmentNotification, EnlistmentOptions) EnlistVolatile(IEnlistmentNotification, EnlistmentOptions) 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.

(Inherited from Transaction)
EnlistVolatile(ISinglePhaseNotification, EnlistmentOptions) EnlistVolatile(ISinglePhaseNotification, EnlistmentOptions) EnlistVolatile(ISinglePhaseNotification, EnlistmentOptions) EnlistVolatile(ISinglePhaseNotification, EnlistmentOptions)

Trägt einen flüchtigen Ressourcen-Manager, der Einphasencommit-Optimierung zur Teilnahme an einer Transaktion unterstützt.Enlists a volatile resource manager that supports single phase commit optimization to participate in a transaction.

(Inherited from Transaction)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

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

(Inherited from Transaction)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

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

(Inherited from Transaction)
GetPromotedToken() GetPromotedToken() GetPromotedToken() 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.

(Inherited from Transaction)
GetType() GetType() GetType() GetType()

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

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
PromoteAndEnlistDurable(Guid, IPromotableSinglePhaseNotification, ISinglePhaseNotification, EnlistmentOptions) PromoteAndEnlistDurable(Guid, IPromotableSinglePhaseNotification, ISinglePhaseNotification, EnlistmentOptions) PromoteAndEnlistDurable(Guid, IPromotableSinglePhaseNotification, ISinglePhaseNotification, EnlistmentOptions) PromoteAndEnlistDurable(Guid, IPromotableSinglePhaseNotification, ISinglePhaseNotification, EnlistmentOptions)

Stuft ein, und trägt einen permanenten Ressourcen-Manager, der Zweiphasencommit zur Teilnahme an einer Transaktion unterstützt.Promotes and enlists a durable resource manager that supports two phase commit to participate in a transaction.

(Inherited from Transaction)
Rollback() Rollback() Rollback() Rollback()

Rollback (abgebrochen) der Transaktion.Rolls back (aborts) the transaction.

(Inherited from Transaction)
Rollback(Exception) Rollback(Exception) Rollback(Exception) Rollback(Exception)

Rollback (abgebrochen) der Transaktion.Rolls back (aborts) the transaction.

(Inherited from Transaction)
SetDistributedTransactionIdentifier(IPromotableSinglePhaseNotification, Guid) SetDistributedTransactionIdentifier(IPromotableSinglePhaseNotification, Guid) SetDistributedTransactionIdentifier(IPromotableSinglePhaseNotification, Guid) 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.

(Inherited from Transaction)
ToString() ToString() ToString() ToString()

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

(Inherited from Object)

Explizite Schnittstellenimplementierungen

IAsyncResult.AsyncState IAsyncResult.AsyncState IAsyncResult.AsyncState IAsyncResult.AsyncState

Ruft das Objekt, das als letzten Parameters des der BeginCommit(AsyncCallback, Object) Methodenaufruf.Gets the object provided as the last parameter of the BeginCommit(AsyncCallback, Object) method call.

IAsyncResult.AsyncWaitHandle IAsyncResult.AsyncWaitHandle IAsyncResult.AsyncWaitHandle 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 IAsyncResult.CompletedSynchronously IAsyncResult.CompletedSynchronously IAsyncResult.CompletedSynchronously

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

IAsyncResult.IsCompleted IAsyncResult.IsCompleted IAsyncResult.IsCompleted IAsyncResult.IsCompleted

Ruft einen Wert ab, ob der asynchrone Commitvorgang abgeschlossen wurde.Gets an indication whether the asynchronous commit operation has completed.

ISerializable.GetObjectData(SerializationInfo, StreamingContext) ISerializable.GetObjectData(SerializationInfo, StreamingContext) ISerializable.GetObjectData(SerializationInfo, StreamingContext) ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Eigenschaften

IsolationLevel IsolationLevel IsolationLevel IsolationLevel

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

(Inherited from Transaction)
PromoterType PromoterType PromoterType 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.

(Inherited from Transaction)
TransactionInformation TransactionInformation TransactionInformation TransactionInformation

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

(Inherited from Transaction)

Ereignisse

TransactionCompleted TransactionCompleted TransactionCompleted TransactionCompleted

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

(Inherited from Transaction)

Gilt für:

Threadsicherheit

Dieser Typ ist threadsicher.This type is thread safe.

Siehe auch