System.Transactions Namespace

Der System.Transactions-Namespace enthält Klassen, mit denen eigene Transaktionsanwendungen und Ressourcen-Manager geschrieben werden können. The System.Transactions namespace contains classes that allow you to write your own transactional application and resource manager. Insbesondere können Sie eine Transaktion erstellen und an einer Transaktion (lokal oder verteilt) mit einem oder mehreren Teilnehmern teilnehmen. Specifically, you can create and participate in a transaction (local or distributed) with one or multiple participants.

Klassen

CommittableTransaction

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

DependentTransaction

Beschreibt einen Klon einer Transaktion und gewährleistet, dass kein Commit der Transaktion ausgeführt werden kann, solange die Anwendung bezüglich der Transaktion noch aktiv ist.Describes a clone of a transaction providing guarantee that the transaction cannot be committed until the application comes to rest regarding work on the transaction. Diese Klasse kann nicht vererbt werden.This class cannot be inherited.

DistributedTransactionPermission

Die Berechtigung, die von System.Transactions gefordert wird, wenn die Verwaltung einer Transaktion an MSDTC eskaliert wird.The permission that is demanded by System.Transactions when management of a transaction is escalated to MSDTC. Diese Klasse kann nicht vererbt werden.This class cannot be inherited.

DistributedTransactionPermissionAttribute

Ermöglicht, dass Sicherheitsaktionen für DistributedTransactionPermission unter Verwendung deklarativer Sicherheit auf Code angewendet werden.Allows security actions for DistributedTransactionPermission to be applied to code using declarative security. Diese Klasse kann nicht vererbt werden.This class cannot be inherited.

Enlistment

Erleichtert die Kommunikation zwischen einem eingetragenen Transaktionsteilnehmer und dem Transaktions-Manager während der letzten Phase der Transaktion.Facilitates communication between an enlisted transaction participant and the transaction manager during the final phase of the transaction.

PreparingEnlistment

Erleichtert die Kommunikation zwischen einem eingetragenen Transaktionsteilnehmer und dem Transaktions-Manager in der Vorbereitungsphase der Transaktion.Facilitates communication between an enlisted transaction participant and the transaction manager during the Prepare phase of the transaction.

SinglePhaseEnlistment

Stellt eine Reihe von Rückrufen bereit, die die Kommunikation zwischen einem für einen Einphasencommit eingetragenen Teilnehmer und dem Transaktions-Manager fördern, wenn die SinglePhaseCommit(SinglePhaseEnlistment)-Benachrichtigung empfangen wird.Provides a set of callbacks that facilitate communication between a participant enlisted for Single Phase Commit and the transaction manager when the SinglePhaseCommit(SinglePhaseEnlistment) notification is received.

SubordinateTransaction

Stellt eine Transaktion dar, die keine Stammtransaktion ist, aber delegiert werden kann.Represents a non-rooted transaction that can be delegated. Diese Klasse kann nicht vererbt werden.This class cannot be inherited.

Transaction

Stellt eine Transaktion dar.Represents a transaction.

TransactionAbortedException

Die Ausnahme, die ausgelöst wird, wenn ein Vorgang für eine Transaktion ausgeführt wird, für die bereits ein Rollback ausgeführt wurde, oder wenn versucht wird, einen Commit der Transaktion auszuführen und die Transaktion abgebrochen wird.The exception that is thrown when an operation is attempted on a transaction that has already been rolled back, or an attempt is made to commit the transaction and the transaction aborts.

TransactionEventArgs

Stellt Daten für die folgenden Transaktionsereignisse bereit: DistributedTransactionStarted, TransactionCompleted.Provides data for the following transaction events: DistributedTransactionStarted, TransactionCompleted.

TransactionException

Die Ausnahme, die ausgelöst wird, wenn Sie Vorgänge für eine Transaktion ausführen, die keine weiteren Aktionen akzeptieren kann.The exception that is thrown when you attempt to do work on a transaction that cannot accept new work.

TransactionInDoubtException

Die Ausnahme, die ausgelöst wird, wenn ein Vorgang für eine Transaktion ausgeführt wird, die zweifelhaft ist, oder wenn versucht wird, die Transaktion auszuführen und die Transaktion den Status InDoubt annimmt.The exception that is thrown when an operation is attempted on a transaction that is in doubt, or an attempt is made to commit the transaction and the transaction becomes InDoubt.

TransactionInformation

Stellt zusätzliche Informationen zu einer Transaktion bereit.Provides additional information regarding a transaction.

TransactionInterop

Erleichtert die Interaktion zwischen System.Transactions und Komponenten, die geschrieben wurden, um mit MSDTC, COM+ oder System.EnterpriseServices zu interagieren.Facilitates interaction between System.Transactions and components that were previously written to interact with MSDTC, COM+, or System.EnterpriseServices. Diese Klasse kann nicht vererbt werden.This class cannot be inherited.

TransactionManager

Enthält zum Verwalten von Transaktionen verwendete Methoden.Contains methods used for transaction management. Diese Klasse kann nicht vererbt werden.This class cannot be inherited.

TransactionManagerCommunicationException

Diese Ausnahme wird ausgelöst, wenn die Kommunikation zwischen Ressourcen-Manager und Transaktions-Manager nicht möglich ist.The exception that is thrown when a resource manager cannot communicate with the transaction manager.

TransactionPromotionException

Die Ausnahme, die ausgelöst wird, wenn eine Heraufstufung fehlschlägt.The exception that is thrown when a promotion fails.

TransactionScope

Ändert einen Codeblock in transaktional.Makes a code block transactional. Diese Klasse kann nicht vererbt werden.This class cannot be inherited.

Strukturen

TransactionOptions

Enthält zusätzliche Informationen, die das Transaktionsverhalten bestimmen.Contains additional information that specifies transaction behaviors.

Schnittstellen

IDtcTransaction

Beschreibt eine DTC-Transaktion.Describes a DTC transaction.

IEnlistmentNotification

Beschreibt eine Schnittstelle, die ein Ressourcen-Manager implementieren sollte, um beim Eintragen für die Teilnahme Zweiphasencommit-Benachrichtigungsrückrufe für den Transaktions-Manager bereitzustellen.Describes an interface that a resource manager should implement to provide two phase commit notification callbacks for the transaction manager upon enlisting for participation.

IPromotableSinglePhaseNotification

Beschreibt ein Objekt, das als Commit-Delegat für eine nicht verteilte Transaktion in einem Ressourcen-Manager fungiert.Describes an object that acts as a commit delegate for a non-distributed transaction internal to a resource manager.

ISimpleTransactionSuperior

Stellt eine Transaktion dar, bei der es sich um keine Stammtransaktion handelt, deren Verwaltung jedoch an MSDTC eskaliert werden kann.Represents a transaction that is not a root transaction, but can be escalated to be managed by the MSDTC.

ISinglePhaseNotification

Beschreibt ein Ressourcenobjekt, das die Einphasencommit-Optimierung für die Einbeziehung in eine Transaktion unterstützt.Describes a resource object that supports single phase commit optimization to participate in a transaction.

ITransactionPromoter

Beschreibt eine delegierte Transaktion für eine vorhandene Transaktion, deren Verwaltung bei Bedarf an MSDTC eskaliert werden kann.Describes a delegated transaction for an existing transaction that can be escalated to be managed by the MSDTC when needed.

Enumerationen

DependentCloneOption

Steuert, welche Art von abhängiger Transaktion erstellt werden soll.Controls what kind of dependent transaction to create.

EnlistmentOptions

Bestimmt, ob das Objekt während der Vorbereitungsphase eingetragen werden soll.Determines whether the object should be enlisted during the prepare phase.

EnterpriseServicesInteropOption

Gibt an, wie verteilte Transaktionen mit COM+-Transaktionen interagieren.Specifies how distributed transactions interact with COM+ transactions.

IsolationLevel

Gibt die Isolationsebene einer Transaktion an.Specifies the isolation level of a transaction.

TransactionScopeAsyncFlowOption

Gibt an, ob Transaktionsfluss über Thread Fortsetzungen für TransactionScope aktiviert ist.Specifies whether transaction flow across thread continuations is enabled for TransactionScope.

TransactionScopeOption

Stellt zusätzliche Optionen für das Erstellen eines Transaktionsbereichs bereit.Provides additional options for creating a transaction scope.

TransactionStatus

Beschreibt den aktuellen Status einer verteilten Transaktion.Describes the current status of a distributed transaction.

Delegaten

HostCurrentTransactionCallback

Stellt für die Hostumgebung einen Mechanismus zur Verfügung, mit der sie ihr Standardkonzept von Current bereitstellen kann.Provides a mechanism for the hosting environment to supply its own default notion of Current.

TransactionCompletedEventHandler

Stellt die Methode dar, die das TransactionCompleted-Ereignis einer Transaction-Klasse behandelt.Represents the method that handles the TransactionCompleted event of a Transaction class.

TransactionStartedEventHandler

Stellt die Methode dar, die das DistributedTransactionStarted-Ereignis einer TransactionManager-Klasse behandelt.Represents the method that will handle the DistributedTransactionStarted event of a TransactionManager class.

Hinweise

Die System.Transactions Infrastruktur erleichtern die transaktionsprogrammierung einfach und effizient in der gesamten Plattform durch die Unterstützung von SQL Server, ADO.NET, MSMQ und den Microsoft Distributed Transaction Coordinator (MSDTC) gestartete Transaktionen.The System.Transactions infrastructure makes transactional programming simple and efficient throughout the platform by supporting transactions initiated in SQL Server, ADO.NET, MSMQ, and the Microsoft Distributed Transaction Coordinator (MSDTC). Es bietet sowohl ein explizites Programmiermodell, das auf der Grundlage der Transaction -Klasse als auch ein implizites Programmiermodell der TransactionScope -Klasse, in dem Transaktionen automatisch von der Infrastruktur verwaltet werden.It provides both an explicit programming model based on the Transaction class, as well as an implicit programming model using the TransactionScope class, in which transactions are automatically managed by the infrastructure. Es wird dringend empfohlen, dass Sie das einfachere implizite Modell für die Entwicklung verwenden.It is highly recommended that you use the easier implicit model for development. Informationen zum Einstieg finden Sie unter den Implementing An Implicit Transaction mithilfe von Transaktion Scope Thema.To get started, see the Implementing An Implicit Transaction Using Transaction Scope topic. Weitere Informationen zum Erstellen einer transaktionsanwendung, finden Sie unter Writing A Transactional Application.For more information on writing a transactional application, see Writing A Transactional Application.

System.Transactions stellt auch Typen zur Implementierung eines Ressourcen-Managers bereit.System.Transactions also provides types for you to implement a resource manager. Der Transaktions-Manager in der System.Transactions -Infrastruktur ermöglicht, flüchtige Ressourcen oder eine einzelne dauerhafte Ressource eine Eintragung für einen commit oder Rollback effizient.The transaction manager native to the System.Transactions infrastructure allows volatile resources or a single durable resource enlistment to commit or roll back efficiently. Weitere Informationen zum Implementieren eines Ressourcen-Managers finden Sie unter Implementing A Resource Manager.For more information on implementing a resource manager, see Implementing A Resource Manager.

Der Transaktions-Manager eskaliert ebenfalls transparent lokale Transaktionen zu verteilten Transaktionen durch Koordination mit einem datenträgerbasierten Transaktions-Manager wie DTC, wenn ein zusätzlicher dauerhafter Ressourcen-Manager mit einer Transaktion selbst eingetragen wird.The transaction manager also transparently escalates local transactions to distributed transactions by coordinating through a disk-based transaction manager like the DTC, when an additional durable resource manager enlists itself with a transaction. Es gibt zwei grundlegende Methoden, mit der System.Transactions-Infrastruktur eine verbesserte Leistung zu erreichen.There are two key ways that the System.Transactions infrastructure provides enhanced performance.

  • Dynamische Eskalation: Dies bedeutet, dass die System.Transactions -Infrastruktur nur MSDTC verwendet, wenn es tatsächlich für eine Transaktion erforderlich ist.Dynamic Escalation, which means that the System.Transactions infrastructure only engages the MSDTC when it is actually required for a transaction. Dieser Bereich wird ausführlich in die Eskalation der Transaktionsverwaltung Thema.This area is covered in depth in the Transaction Management Escalation topic.

  • Erweiterbare Eintragungen: Ermöglichen es einer Ressource (z.B. einer Datenbank), Eigentümer der Transaktion zu werden, wenn sie die einzige Entität ist, die an der Transaktion teilnimmt.Promotable Enlistments, which allows a resource, such as a database, to take ownership of the transaction if it is the only entity participating in the transaction. Später bei Bedarf die System.Transactions -Infrastruktur kann die Verwaltung der Transaktion an MSDTC eskalieren.Later, if needed, the System.Transactions infrastructure can still escalate the management of the transaction to MSDTC. Auch dies reduziert die Zahl der Fälle, in denen MSDTC verwendet wird.This further reduces the chance of using the MSDTC. Dieser Bereich wird ausführlich in die Optimization Using Single Phase Commit und Promotable Single Phase Notification Thema.This area is covered in depth in the Optimization Using Single Phase Commit and Promotable Single Phase Notification topic.

System.Transactions definiert drei Vertrauensebenen, die Zugriff auf die Typen von Ressourcen zu beschränken, die sie verfügbar macht.System.Transactions defines three levels of trust that restrict access on the types of resources it exposes. Insbesondere die System.Transactions Assembly kann von teilweise vertrauenswürdigem Code aufgerufen werden, da er mit gekennzeichnet wurde die AllowPartiallyTrustedCallers -Attribut (APTCA).Specifically, the System.Transactions assembly can be called by partially trusted code as it has been marked with the AllowPartiallyTrustedCallers attribute (APTCA). Dieses Attribut entfernt im Wesentlichen die implizite LinkDemand für den FullTrust-Berechtigungssatz, die andernfalls für jede öffentlich zugängliche Methode jeden Typs eingerichtet ist.This attribute essentially removes the implicit LinkDemand for the FullTrust permission set that is otherwise automatically placed on each publicly accessible method in each type. Für einige Typen und Member sind allerdings weiterhin stärkere Berechtigungen erforderlich.However, some types and members still require stronger permissions.

Im folgenden wird eine Liste von Typen und Member nicht durch aufgerufen werden teilweise vertrauenswürdigen Code, da sie mit dem folgenden Attribut für die deklarative Sicherheit ausgestattet sind:The following is a list of types and members that are not callable by partially trusted code because they are decorated with the following declarative security attribute:

PermissionSetAttribute(SecurityAction.LinkDemand, Name := "FullTrust")

System.Transactions.Transaction.EnlistDurableSystem.Transactions.Transaction.EnlistDurable

System.Transactions.Transaction.EnlistPromotableSinglePhaseSystem.Transactions.Transaction.EnlistPromotableSinglePhase

System.Transactions.TransactionInteropSystem.Transactions.TransactionInterop

System.Transactions.TransactionManager.DistributedTransactionStartedSystem.Transactions.TransactionManager.DistributedTransactionStarted

System.Transactions.TransactionManager.HostCurrentTransactionCallbackSystem.Transactions.TransactionManager.HostCurrentTransactionCallback

System.Transactions.TransactionManager.ReenlistSystem.Transactions.TransactionManager.Reenlist

System.Transactions.TransactionManager.RecoveryCompleteSystem.Transactions.TransactionManager.RecoveryComplete

System.Transactions.TransactionScope.TransactionScope (System.Transactions.Transaction,System.TimeSpan,System.Transactions.EnterpriseServicesInteropOption)System.Transactions.TransactionScope.TransactionScope (System.Transactions.Transaction,System.TimeSpan,System.Transactions.EnterpriseServicesInteropOption)

M:System.Transactions.TransactionScope.TransactionScope(System.Transactions.TransactionScopeOption,System.Transactions.TransactionOptions,System.Transactions.EnterpriseServicesInteropOption)M:System.Transactions.TransactionScope.TransactionScope(System.Transactions.TransactionScopeOption,System.Transactions.TransactionOptions,System.Transactions.EnterpriseServicesInteropOption)

Weitere Informationen zu den verschiedenen Vertrauensebenen, finden Sie unter Security Trust Levels in Accessing Resources.For more information on the various trust levels, see Security Trust Levels in Accessing Resources.

Core-Entwicklung Technologies\Data Access\Transaction Processing\Core Development Technologies\Data Access\Transaction Processing\

Weitere Informationen zur Verwendung der System.Transactions -Namespace finden Sie die Dokumentation Transaction Processingbefindet sich unter der "Core-Entwicklung Technologies\Data Access\Transaction Verarbeitung\"im Abschnitt der Dokumentation.For more information on how to use the System.Transactions namespace, you can consult the conceptual documentation Transaction Processing, located under the "Core Development Technologies\Data Access\Transaction Processing\" section in the documentation. Insbesondere können Sie in den folgenden Themen Weitere Informationen finden.Specifically, you can find more information in the following topics.

Von System.Transactions bereitgestellte FunktionenFeatures Provided By System.Transactions

Implementieren eines Resource ManagerImplementing A Resource Manager