System.Transactions Namespace

L'espace de noms System.Transactions contient des classes qui vous permettent d'écrire vos propres application transactionnelle et gestionnaire de ressources. The System.Transactions namespace contains classes that allow you to write your own transactional application and resource manager. Plus précisément, vous pouvez créer et participer à une transaction (locale ou distribuée) avec un ou plusieurs participants. Specifically, you can create and participate in a transaction (local or distributed) with one or multiple participants.

Classes

CommittableTransaction

Décrit une transaction validable.Describes a committable transaction.

DependentTransaction

Décrit un clone d'une transaction qui garantit que la transaction ne peut pas être validée tant que l'application n'a pas fini son travail sur la transaction.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. Cette classe ne peut pas être héritée.This class cannot be inherited.

DistributedTransactionPermission

Autorisation qui est demandée par System.Transactions lorsque la gestion d'une transaction est remontée au MSDTC.The permission that is demanded by System.Transactions when management of a transaction is escalated to MSDTC. Cette classe ne peut pas être héritée.This class cannot be inherited.

DistributedTransactionPermissionAttribute

Permet d’appliquer les actions de sécurité de DistributedTransactionPermission au code à l’aide de la sécurité déclarative.Allows security actions for DistributedTransactionPermission to be applied to code using declarative security. Cette classe ne peut pas être héritée.This class cannot be inherited.

Enlistment

Facilite la communication entre un participant de transaction inscrit et le gestionnaire de transactions pendant la phase finale de la transaction.Facilitates communication between an enlisted transaction participant and the transaction manager during the final phase of the transaction.

PreparingEnlistment

Facilite la communication entre un participant de transaction inscrit et le Gestionnaire de transactions pendant la phase de préparation de la transaction.Facilitates communication between an enlisted transaction participant and the transaction manager during the Prepare phase of the transaction.

SinglePhaseEnlistment

Fournit un jeu des rappels qui facilite la communication entre un participant inscrit pour une validation à phase unique et le gestionnaire de transactions lorsque la notification SinglePhaseCommit(SinglePhaseEnlistment) est reçue.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

Représente une transaction non racine qui peut être déléguée.Represents a non-rooted transaction that can be delegated. Cette classe ne peut pas être héritée.This class cannot be inherited.

Transaction

Représente une transaction.Represents a transaction.

TransactionAbortedException

Exception qui est levée lorsqu'une opération est tentée sur une transaction qui a déjà été restaurée ou lorsqu'une tentative est faite pour valider la transaction et que la transaction est abandonnée.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

Fournit des données pour les événements de transaction suivants : DistributedTransactionStarted, TransactionCompleted.Provides data for the following transaction events: DistributedTransactionStarted, TransactionCompleted.

TransactionException

Exception qui est levée lorsque vous essayez de faire du travail sur une transaction qui ne peut pas accepter de nouveau travail.The exception that is thrown when you attempt to do work on a transaction that cannot accept new work.

TransactionInDoubtException

Exception qui est levée lorsqu'une opération est tentée sur une transaction qui est dans le doute ou lorsqu'une tentative est faite pour valider la transaction et que la transaction devient InDoubt.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

Fournit des informations supplémentaires sur une transaction.Provides additional information regarding a transaction.

TransactionInterop

Facilite l'interaction entre System.Transactions et les composants qui ont été écrits précédemment pour interagir avec MSDTC, COM+ ou System.EnterpriseServices.Facilitates interaction between System.Transactions and components that were previously written to interact with MSDTC, COM+, or System.EnterpriseServices. Cette classe ne peut pas être héritée.This class cannot be inherited.

TransactionManager

Contient les méthodes utilisées pour la gestion de la transaction.Contains methods used for transaction management. Cette classe ne peut pas être héritée.This class cannot be inherited.

TransactionManagerCommunicationException

Exception levée lorsqu'un gestionnaire de ressources ne peut pas communiquer avec le gestionnaire de transactions.The exception that is thrown when a resource manager cannot communicate with the transaction manager.

TransactionPromotionException

Exception levée lorsqu'une promotion échoue.The exception that is thrown when a promotion fails.

TransactionScope

Rend un bloc de code transactionnel.Makes a code block transactional. Cette classe ne peut pas être héritée.This class cannot be inherited.

Structures

TransactionOptions

Contient des informations supplémentaires qui spécifie les comportements de transaction.Contains additional information that specifies transaction behaviors.

Interfaces

IDtcTransaction

Décrit une transaction DTC.Describes a DTC transaction.

IEnlistmentNotification

Décrit une interface qu’un gestionnaire de ressources devrait implémenter pour fournir au gestionnaire des transactions des rappels de notification de validation à deux phases lors de l’inscription pour participation.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

Décrit un objet qui agit comme un délégué de validation pour une transaction non distribuée interne à un gestionnaire de ressources.Describes an object that acts as a commit delegate for a non-distributed transaction internal to a resource manager.

ISimpleTransactionSuperior

Représente une transaction qui n'est pas une transaction de racine, mais peut être remontée pour être gérée par le MSDTC.Represents a transaction that is not a root transaction, but can be escalated to be managed by the MSDTC.

ISinglePhaseNotification

Décrit un objet de ressource qui prend en charge l’optimisation de la validation en une phase dans une transaction.Describes a resource object that supports single phase commit optimization to participate in a transaction.

ITransactionPromoter

Décrit une transaction déléguée pour une transaction existante qui peut être remontée pour être gérée par le MSDTC, si nécessaire.Describes a delegated transaction for an existing transaction that can be escalated to be managed by the MSDTC when needed.

Énumérations

DependentCloneOption

Contrôle le type de transaction dépendante à créer.Controls what kind of dependent transaction to create.

EnlistmentOptions

Détermine si l'objet doit être inscrit pendant la phase de préparation.Determines whether the object should be enlisted during the prepare phase.

EnterpriseServicesInteropOption

Spécifie comment les transactions distribuées interagissent avec les transactions COM+.Specifies how distributed transactions interact with COM+ transactions.

IsolationLevel

Spécifie le niveau d'isolement d'une transaction.Specifies the isolation level of a transaction.

TransactionScopeAsyncFlowOption

Spécifie si le flux de transaction entre les continuations de thread est activé pour TransactionScope.Specifies whether transaction flow across thread continuations is enabled for TransactionScope.

TransactionScopeOption

Fournit des options supplémentaires pour créer une portée de transaction.Provides additional options for creating a transaction scope.

TransactionStatus

Décrit l'état en cours d'une transaction distribuée.Describes the current status of a distributed transaction.

Délégués

HostCurrentTransactionCallback

Fournit un mécanisme à l'environnement d'hébergement pour qu'il fournisse sa propre notion par défaut de Current.Provides a mechanism for the hosting environment to supply its own default notion of Current.

TransactionCompletedEventHandler

Représente la méthode qui gère l'événement TransactionCompleted d'une classe Transaction.Represents the method that handles the TransactionCompleted event of a Transaction class.

TransactionStartedEventHandler

Représente la méthode destinée à gérer l’événement DistributedTransactionStarted d’une classe TransactionManager.Represents the method that will handle the DistributedTransactionStarted event of a TransactionManager class.

Remarques

Le System.Transactions infrastructure rend la programmation transactionnelle simple et efficace tout au long de la plateforme en prenant en charge les transactions lancées dans SQL Server, ADO.NET, MSMQ et Microsoft Distributed Transaction Coordinator (MSDTC).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). Il fournit à la fois un modèle de programmation explicit basé sur le Transaction classe, mais aussi un modèle de programmation implicite à l’aide du TransactionScope (classe), dans lequel les transactions sont gérées automatiquement par l’infrastructure.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. Il est recommandé d’utiliser le modèle implicite plus simple pour le développement.It is highly recommended that you use the easier implicit model for development. Pour commencer, consultez le implémentant un implicite à l’aide de Transaction étendue de Transaction rubrique.To get started, see the Implementing An Implicit Transaction Using Transaction Scope topic. Pour plus d’informations sur l’écriture d’une application transactionnelle, consultez écriture d’une Application transactionnelle.For more information on writing a transactional application, see Writing A Transactional Application.

System.Transactions fournit également des types qui vous permettent d’implémenter un gestionnaire de ressources.System.Transactions also provides types for you to implement a resource manager. Le Gestionnaire de transactions natif pour le System.Transactions infrastructure permet les ressources volatiles ou une inscription de ressource durable unique de valider ou restaurer de manière efficace.The transaction manager native to the System.Transactions infrastructure allows volatile resources or a single durable resource enlistment to commit or roll back efficiently. Pour plus d’informations sur l’implémentation d’un gestionnaire de ressources, consultez implémentation d’un gestionnaire de ressources.For more information on implementing a resource manager, see Implementing A Resource Manager.

Le Gestionnaire de transactions augmente également en toute transparence les transactions locales aux transactions distribuées en coordonnant via un gestionnaire de transactions sur disque tel que DTC, lorsqu’un gestionnaire de ressources durables supplémentaire s’inscrit auprès d’une transaction.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. L'infrastructure System.Transactions offre deux façons principales d'obtenir des performances améliorées.There are two key ways that the System.Transactions infrastructure provides enhanced performance.

  • La remontée dynamique, ce qui signifie que le System.Transactions infrastructure n’engage le MSDTC que lorsqu’il est réellement requis pour une transaction.Dynamic Escalation, which means that the System.Transactions infrastructure only engages the MSDTC when it is actually required for a transaction. Cette zone est couvert en détail dans le Transaction Management Escalation rubrique.This area is covered in depth in the Transaction Management Escalation topic.

  • Les inscriptions pouvant être promues, qui permettent à une ressource, telle qu’une base de données, de prendre possession de la transaction, s’il s’agit de la seule entité participant à la transaction.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. Ensuite, si nécessaire, le System.Transactions infrastructure peut remonter la gestion de la transaction MSDTC.Later, if needed, the System.Transactions infrastructure can still escalate the management of the transaction to MSDTC. Cela réduit encore la nécessité d'utiliser le MSDTC.This further reduces the chance of using the MSDTC. Cette zone est couvert en détail dans le optimisation à l’aide de validation à Phase unique et la Notification de Phase unique pouvant être promue rubrique.This area is covered in depth in the Optimization Using Single Phase Commit and Promotable Single Phase Notification topic.

System.Transactions définit trois niveaux de confiance qui limitent l’accès sur les types de ressources qu’il expose.System.Transactions defines three levels of trust that restrict access on the types of resources it exposes. Plus précisément, le System.Transactions assembly peut être appelé par du code partiellement fiable, car il a été marqué avec la 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). Cet attribut supprime le champ LinkDemand implicite pour le jeu d'autorisations FullTrust, qui est habituellement automatiquement placé sur les méthodes accessibles publiquement de chaque type.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. Toutefois, certains types et membres requièrent encore des autorisations plus élevées.However, some types and members still require stronger permissions.

Voici une liste de types et membres qui ne sont pas partiellement pouvant être appelés par le code fiable, car elles sont décorées avec l’attribut de sécurité déclarative suivant :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)

Pour plus d’informations sur les différents niveaux de confiance, consultez niveaux de confiance de sécurité dans l’accès aux ressources.For more information on the various trust levels, see Security Trust Levels in Accessing Resources.

Core Development Access\Transaction Access\Transaction ProcessingCore Development Technologies\Data Access\Transaction Processing\

Pour plus d’informations sur l’utilisation de la System.Transactions espace de noms, vous pouvez consulter la documentation conceptuelle Transaction Processing, situé sous le « Core développement Access\Transaction Access\Transaction traitement\section « » dans la documentation.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. Plus précisément, vous trouverez plus d’informations dans les rubriques suivantes.Specifically, you can find more information in the following topics.

Fonctionnalités fournies par System.TransactionsFeatures Provided By System.Transactions

Implémentation d’un gestionnaire de ressourcesImplementing A Resource Manager