Exporter (0) Imprimer
Développer tout

System.Transactions, espace de noms

Remarque : cet espace de noms est nouveau dans le .NET Framework version 2.0.

L'espace de noms System.Transactions contient des classes qui vous permettent d'écrire vos propres application transactionnelle et gestionnaire de ressources. Plus précisément, vous pouvez créer et participer à une transaction (locale ou distribuée) avec un ou plusieurs participants.

RemarqueImportant :

Vous pouvez créer des applications à l'aide de cet espace de noms uniquement sous les plates-formes Windows 2000, Windows XP et Windows 2003. La création d'une transaction sous les plates-formes Windows 98 et Windows ME lèvent un PlatformNotSupportedException.

L'infrastructure System.Transactions rend la programmation transactionnelle simple et efficace dans toute la plate-forme en prenant en charge les transactions lancées dans SQL Server, ADO.NET, MSMQ et MSDTC (Microsoft Distributed Transaction Coordinator). Elle fournit à la fois un modèle de programmation explicite basé sur la classe Transaction et un modèle de programmation implicite utilisant la classe TransactionScope, dans lequel les transactions sont gérées automatiquement par l'infrastructure. Il est fortement recommandé d'utiliser le modèle implicite plus facile pour le développement. Pour commencer, consultez la rubrique Implémentation d'une transaction implicite à l'aide de la portée de transaction. Pour plus d'informations sur l'écriture d'une application transactionnelle, consultez Writing a Transactional Application.

System.Transactions fournit également des types qui vous permettent d'implémenter un gestionnaire de ressources. Le gestionnaire de transactions natif de l'infrastructure System.Transactions permet aux ressources non rémanentes ou à une inscription de ressource durable unique de valider ou de restaurer de manière efficace. Pour plus d'informations sur l'implémentation d'un gestionnaire de ressources, consultez Implémentation d'un gestionnaire de ressources.

Le gestionnaire de transactions fait également remonter de façon transparente les transactions locales aux transactions distribuées en effectuant une coordination 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. L'infrastructure System.Transactions fournit des performances améliorées de deux manières principales.

  • Dynamic Escalation, qui signifie que l'infrastructure System.Transactions n'engage le MSDTC que lorsqu'il est réellement requis pour une transaction. Ce domaine est traité en détail à la rubrique Hiérarchisation de gestion des transactions.

  • Promotable Enlistments (inscriptions pouvant être promues), qui autorisent une ressource telle qu'une base de données à prendre possession de la transaction si c'est la seule entité qui participe à la transaction. Par la suite, si nécessaire, l'infrastructure System.Transactions peut encore faire remonter la gestion de la transaction à MSDTC. Cela réduit encore la possibilité d'utiliser MSDTC. Ce domaine est traité en détail à la rubrique Optimisation à l'aide de la validation à phase unique et de la notification à phase unique pouvant être promue.

System.Transactions définit trois niveaux d'approbation qui restreignent l'accès sur les types de ressources qu'il expose. Plus précisément, l'assembly System.Transactions peut être appelé par un code d'un niveau de confiance partiel car il a été marqué avec l'attribut AllowPartiallyTrustedCallers (APTCA). Cet attribut supprime essentiellement le LinkDemand implicite pour le jeu d'autorisations FullTrust qui sinon est placé automatiquement dans chaque méthode publiquement accessible dans chaque type. Toutefois, certains types et membres requièrent encore des autorisations plus fortes.

La liste ci-après répertorie les types et les membres qui ne peuvent pas être appelés par un code d'un niveau de confiance partiel parce qu'ils sont décorés avec l'attribut de sécurité déclarative suivant :

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

System.Transactions.Transaction.EnlistDurable

System.Transactions.Transaction.EnlistPromotableSinglePhase

System.Transactions.TransactionInterop

System.Transactions.TransactionManager.DistributedTransactionStarted

System.Transactions.TransactionManager.HostCurrentTransactionCallback

System.Transactions.TransactionManager.Reenlist

System.Transactions.TransactionManager.RecoveryComplete

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)

Pour plus d'informations sur les différents niveaux d'approbation, consultez Niveaux de confiance de sécurité lors de l'accès à des ressources.

Core Development Technologies\Data Access\Transaction Processing\

Pour plus d'informations sur l'utilisation de l'espace de noms System.Transactions, vous pouvez consulter la documentation conceptuelle Traitement des transactions, section « Core Development Technologies\Data Access\Transaction Processing ». Plus précisément, vous pouvez rechercher des d'informations supplémentaires dans les rubriques suivantes.

Fonctions proposées par System.Transactions

Writing a Transactional Application

Implémentation d'un gestionnaire de ressources

 ClasseDescription
Classe publiqueCommittableTransactionDécrit une transaction validable.
Classe publiqueDependentTransactionDé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. Cette classe ne peut pas être héritée.
Classe publiqueDistributedTransactionPermissionAutorisation qui est demandée par System.Transactions lorsque la gestion d'une transaction est remontée au MSDTC. Cette classe ne peut pas être héritée.
Classe publiqueDistributedTransactionPermissionAttributeAutorise les actions de sécurité pour que DistributedTransactionPermission s'applique au code à l'aide de la sécurité déclarative. Cette classe ne peut pas être héritée.
Classe publiqueEnlistmentFacilite la communication entre un participant de transaction inscrit et le gestionnaire de transactions pendant la phase finale de la transaction.
Classe publiquePreparingEnlistmentFacilite la communication entre un participant de transaction inscrit et le gestionnaire de transactions pendant la phase de préparation de la transaction.
Classe publiqueSinglePhaseEnlistmentFournit 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 est reçue.
Classe publiqueSubordinateTransactionReprésente une transaction non associée à une racine qui peut être déléguée. Cette classe ne peut pas être héritée.
Classe publiqueTransactionReprésente une transaction.
Classe publiqueTransactionAbortedExceptionException 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.
Classe publiqueTransactionEventArgsFournit des données pour les événements de transaction suivants : DistributedTransactionStarted, TransactionCompleted.
Classe publiqueTransactionExceptionException qui est levée lorsque vous essayez de faire du travail sur une transaction qui ne peut pas accepter de nouveau travail.
Classe publiqueTransactionInDoubtExceptionException 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.
Classe publiqueTransactionInformationFournit des informations supplémentaires sur une transaction.
Classe publiqueTransactionInteropFacilite l'interaction entre System.Transactions et les composants qui ont été écrits précédemment pour interagir avec MSDTC, COM+ ou System.EnterpriseServices. Cette classe ne peut pas être héritée.
Classe publiqueTransactionManagerContient des méthodes utilisées pour la gestion des transactions. Cette classe ne peut pas être héritée.
Classe publiqueTransactionManagerCommunicationExceptionException qui est levée lorsqu'un gestionnaire de ressources ne peut pas communiquer avec le gestionnaire de transactions.
Classe publiqueTransactionPromotionExceptionException levée en cas d'échec de promotion.
Classe publiqueTransactionScopeRend un bloc de code transactionnel. Cette classe ne peut pas être héritée.

 InterfaceDescription
Interface publiqueIDtcTransactionDécrit une transaction DTC.
Interface publiqueIEnlistmentNotificationDécrit une interface qu'un gestionnaire de ressources doit implémenter pour fournir des rappels de notification de validation à deux phases pour le gestionnaire de transactions lors de l'inscription pour participation.
Interface publiqueIPromotableSinglePhaseNotificationDécrit un objet qui sert de délégué de validation pour une transaction non distribuée interne à un gestionnaire de ressources.
Interface publiqueISimpleTransactionSuperiorReprésente une transaction qui n'est pas une transaction de racine, mais peut être remontée pour être gérée par le MSDTC.
Interface publiqueISinglePhaseNotificationDécrit un objet de ressource qui prend en charge l'optimisation de la validation à phase unique pour participer à une transaction.
Interface publiqueITransactionPromoterDé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.

 StructureDescription
Structure publiqueTransactionOptionsContient des informations supplémentaires qui spécifient les comportements de transaction.

 DéléguéDescription
Délégué publicHostCurrentTransactionCallbackFournit un mécanisme à l'environnement d'hébergement pour qu'il fournisse sa propre notion par défaut de Current.
Délégué publicTransactionCompletedEventHandlerReprésente la méthode qui gère l'événement TransactionCompleted d'une classe Transaction.
Délégué publicTransactionStartedEventHandlerReprésente la méthode qui gérera l'événement DistributedTransactionStarted d'une classe TransactionManager.

 ÉnumérationDescription
Énumération publiqueDependentCloneOptionContrôle le type de transaction dépendante à créer.
Énumération publiqueEnlistmentOptionsDétermine si l'objet doit être inscrit pendant la phase de préparation.
Énumération publiqueEnterpriseServicesInteropOptionSpécifie comment les transactions distribuées interagissent avec les transactions COM+.
Énumération publiqueIsolationLevelSpécifie le niveau d'isolation d'une transaction.
Énumération publiqueTransactionScopeOptionFournit des options supplémentaires pour créer une portée de transaction.
Énumération publiqueTransactionStatusDécrit l'état en cours d'une transaction distribuée.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft