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

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 über 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 mithilfe 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. Außerdem sollten Sie die- TransactionScope Klasse DependentTransaction und die-Klasse 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 CommittableTransaction eines 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. Die Ambient-Transaktion kann durch Aufrufen der statischen Transaction.Current -Eigenschaft des globalen Transaction -Objekts aufgerufen oder festgelegt werden.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 ein CommittableTransaction Commit für 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() 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 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 asynchronen Commit für die Transaktion auszuführen.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, einen Commit für die Transaktion auszuführen.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)

Beendet einen Versuch, einen asynchronen Commit für die Transaktion auszuführen.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 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.

(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 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.

(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 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.

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

Bestimmt, ob diese Transaktion und das angegebene Objekt übereinstimmen.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 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.

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

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

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

Führt einen Rollback für die Transaktion aus (bricht diese ab).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 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 IAsyncResult.AsyncWaitHandle IAsyncResult.AsyncWaitHandle IAsyncResult.AsyncWaitHandle

Ruft eine WaitHandle-Klasse auf, die für das Warten auf den Abschluss eines asynchronen Vorgangs verwendet wird.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 ab, 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 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) 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