Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les transactions lient plusieurs tâches ensemble. Par exemple, imaginez qu'une application effectue deux tâches. Tout d’abord, il crée une table dans une base de données. Ensuite, il appelle un objet spécialisé pour collecter, mettre en forme et insérer des données dans la nouvelle table. Ces deux tâches sont liées et même interdépendantes, de sorte que vous souhaitez éviter de créer une table, sauf si vous pouvez la remplir avec des données. L’exécution des deux tâches dans le cadre d’une transaction unique renforce le lien entre elles. Si la seconde tâche échoue, la première est restaurée à un point intervenant avant la création de la nouvelle table.
Pour garantir un comportement prévisible, toutes les transactions doivent posséder les propriétés ACID de base (atomiques, cohérentes, isolées et durables). Ces propriétés renforcent le rôle des transactions fondamentales en tant que propositions tout-ou-rien. Pour plus d’informations sur ACID, consultez propriétés ACID. En résumé, ACID garantit qu’un ensemble de tâches associées réussissent ou échouent en tant qu’unité. Dans la terminologie du traitement des transactions, une transaction est soit confirmée, soit annulée. Pour qu’une transaction soit validée, tous les participants doivent garantir que toute modification apportée aux données sera permanente. Ces modifications doivent persister même en cas de panne du système ou de tout autre événement imprévu. Si même un seul participant ne parvient pas à faire cette garantie, l’intégralité de la transaction échoue. Toutes les modifications apportées aux données au sein de l'étendue de la transaction sont restaurées à un point spécifique.
Une transaction peut être limitée à une ressource de données unique, telle qu’une base de données ou une file d’attente de messages. Dans ce scénario, la transaction locale est gérée par le Gestionnaire de transactions fourni par System.Transactions , ce qui génère un gain de performances. Contrôlées par la ressource de données, ces transactions sont efficaces et faciles à gérer.
Les transactions peuvent également s’étendre sur plusieurs ressources de données. Les transactions distribuées vous permettent d’incorporer plusieurs opérations distinctes sur différents systèmes dans une seule passe ou action d’échec. Dans ce scénario, les transactions sont coordonnées par microsoft Distributed Transaction Coordinator (MSDTC) qui réside dans chaque système.
Lorsque vous développez une application transactionnelle à l’aide des classes fournies par System.Transactions, vous n’avez pas besoin de vous soucier du type de transactions dont vous avez besoin ou du gestionnaire de transactions impliqué. L’infrastructure System.Transactions les gère automatiquement pour vous.
Lorsque vous créez une transaction, vous pouvez spécifier le niveau d’isolation qui s’applique à la transaction. Le niveau d’isolation, défini par l’énumération IsolationLevel, détermine le niveau d’accès que d’autres transactions auront aux données affectées par votre transaction.
Vous pouvez créer des transactions à l’aide d’ADO.NET, System.EnterpriseServices ou du nouveau modèle de programmation transactionnelle fourni par l’espace de noms System.Transactions. La rubrique Fonctionnalités fournies par System.Transactions décrit les fonctionnalités que vous pouvez utiliser pour écrire une application transactionnelle à l’aide de l’espace System.Transactions de noms.