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.
Important |
|---|
Vous pouvez créer des applications à l'aide de cet espace de noms uniquement sous les plateformes Windows 2000, Windows XP et Windows 2003. La création d'une transaction sous les plateformes Windows 98 et Windows ME lèvent une exception PlatformNotSupportedException. |
L'infrastructure System.Transactions rend la programmation transactionnelle simple et efficace dans toute la plateforme 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 simple pour le développement. Pour commencer, consultez la rubrique Implementing An Implicit Transaction Using Transaction Scope. 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 Implementing A Resource Manager.
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 Transaction Management Escalation.
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 Optimization Using Single Phase Commit and Promotable Single Phase Notification.
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 de confiance, consultez Security Trust Levels in Accessing Resources.
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 Transaction Processing, dans la section « Core Development Technologies\Data Access\Transaction Processing\ » section. Plus précisément, vous pouvez rechercher des d'informations supplémentaires dans les rubriques suivantes.
Features Provided By System.Transactions
Writing A Transactional Application
Implementing A Resource Manager
|
| Classe | Description |
|---|
 | CommittableTransaction | Décrit une transaction validable. |
 | 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. Cette classe ne peut pas être héritée. |
 | DistributedTransactionPermission | Autorisation 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. |
 | DistributedTransactionPermissionAttribute | Autorise 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. |
 | Enlistment | Facilite la communication entre un participant de transaction inscrit et le gestionnaire de transactions pendant la phase finale de la 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. |
 | 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 est reçue. |
 | SubordinateTransaction | Représente une transaction non associée à une racine qui peut être déléguée. Cette classe ne peut pas être héritée. |
 | Transaction | Représente une 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. |
 | TransactionEventArgs | Fournit des données pour les événements de transaction suivants : 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. |
 | 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. |
 | TransactionInformation | Fournit des informations supplémentaires sur une 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. Cette classe ne peut pas être héritée. |
 | TransactionManager | Contient des méthodes utilisées pour la gestion des transactions. Cette classe ne peut pas être héritée. |
 | TransactionManagerCommunicationException | Exception levée lorsqu'un gestionnaire de ressources ne peut pas communiquer avec le gestionnaire de transactions. |
 | TransactionPromotionException | Exception levée lorsqu'une promotion échoue. |
 | TransactionScope | Rend un bloc de code transactionnel. Cette classe ne peut pas être héritée. |
|
| Structure | Description |
|---|
 | TransactionOptions | Contient des informations supplémentaires qui spécifient les comportements de transaction. |
|
| Interface | Description |
|---|
 | IDtcTransaction | Décrit une transaction DTC. |
 | IEnlistmentNotification | Dé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. |
 | IPromotableSinglePhaseNotification | Décrit un objet qui sert de délégué de validation pour une transaction non distribuée interne à un gestionnaire de ressources. |
 | 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. |
 | ISinglePhaseNotification | Décrit un objet de ressource qui prend en charge l'optimisation de la validation à phase unique pour participer à une 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. |