Partager via


Exemple System.Transactions

Mis à jour : 5 décembre 2005

L'exemple System.Transactions montre comment contrôler les transactions à l'aide des API managées situées dans l'espace de noms System.Transactions. La classe System.Transactions.TransactionScope est notamment utilisée pour établir la limite d'une transaction de sorte que les chiffres de stock ne soient pas modifiés tant que le stock n'est pas suffisant pour répondre à la demande et, si le stock est suffisant, que le transfert du stock d'un emplacement à un autre s'effectue de manière atomique. L'inscription automatique dans une transaction distribuée s'effectue en enregistrant les modifications apportées au stock dans une base de données d'audit stockée sur un serveur séparé.\

Vous devez installer cet exemple en deux parties sur deux ordinateurs physiques différents : un serveur d'exemples principal et un serveur d'audit.

Répertoire d'installation : lecteur:\Program Files\Microsoft SQL Server\90\Samples\Engine\Programmability\CLR\Transaction\

Scénario

Jane travaille au service Développement de la société Adventure Works Cycles. Elle est chargée d'assurer le suivi des mouvements de stock d'un emplacement à un autre, dans une optique de cohérence des transactions, et de participer à l'audit de toutes les modifications de stock.

Langages

Transact-SQL, Visual C# et Visual Basic.

Fonctionnalités

L'exemple System.Transactions utilise les fonctionnalités suivantes de SQL Server.

Domaine d'application Fonctionnalités

Global

CLR (Common Language Runtime), Transactions, Transactions distribuées, ADO .NET, MSDTC

Configuration requise

Avant d'exécuter cet exemple, assurez-vous que les logiciels suivants sont installés sur votre ordinateur :

  • Microsoft SQL Server 2005 ou Microsoft SQL Server 2005 Express Edition (SQL Server Express). Vous pouvez obtenir SQL Server Express gratuitement à partir du site Web SQL Server 2005 Express Edition Documentation et exemples.
  • Base de données AdventureWorks fournie avec SQL Server 2005 et également disponible sur le site Web du SQL Server Developer Center (Centre des développeurs SQL Server).
  • Les exemples du moteur de base de données SQL Server 2005. Ces exemples accompagnent SQL Server 2005. Vous pouvez télécharger la dernière version des exemples sur le site Web du SQL Server Developer Center (Centre des développeurs SQL Server).
  • Le Kit de développement .NET Framework SDK 2.0 ou Microsoft Visual Studio 2005. Vous pouvez vous procurer gratuitement le Kit de développement .NET Framework SDK. Consultez Installation du SDK .NET Framework.
  • Microsoft Distributed Transaction Coordinator (MSDTC). MSDTC doit être configuré pour autoriser les connexions entrantes et sortantes des clients. Vous devez installer et configurer MSDTC sur les deux serveurs utilisés dans cet exemple. Pour plus d'informations, consultez la documentation des Services de composants.

Avant d'exécuter cet exemple, configurez les composants suivants :

  • Si le Pare-feu Windows est activé sur un des serveurs, configurez-le sur les deux serveurs pour autoriser les connexions SQL Server et MSDTC. Pour plus d'informations, consultez la documentation du Pare-feu Windows.
  • Utilisez l'outil SQL Server Configuration de la surface d'exposition pour activer l'accès distant pour SQL Server 2005 sur le serveur d'audit.

Génération de l'exemple

Si vous n'avez pas encore créé le fichier de clé de nom fort ExternalSampleKey.snk, vous devez le générer en suivant les instructions ci-après.

Pour générer un fichier de clé de nom fort

  1. Ouvrez une invite de commandes Microsoft Visual Studio 2005. Cliquez sur Démarrer, pointez successivement sur Tous les programmes, sur Microsoft Visual Studio 2005 et sur Outils Visual Studio, puis cliquez sur Invite de commandes de Visual Studio 2005.

    - ou -

    Ouvrez une invite de commandes de Microsoft .NET Framework. Cliquez sur Démarrer, pointez sur Tous les programmes et sur Kit de développement Microsoft .NET Framework SDK 2.0, puis cliquez sur Invite de commandes du Kit de développement SDK.

  2. À l'invite de commandes, utilisez la commande cd (Change Directory) pour remplacer le dossier actif de la fenêtre d'invite de commandes par le dossier Samples.

    ms345266.note(fr-fr,SQL.90).gifRemarque :
    Pour déterminer le dossier dans lequel se trouvent les exemples, cliquez sur Démarrer, pointez successivement sur Tous les programmes, Microsoft SQL Server 2005 et Documentation et didacticiels, puis cliquez sur Répertoire Samples. Si l'emplacement d'installation par défaut a été utilisé, les exemples se trouvent dans <system_drive>:\Program Files\Microsoft SQL Server\90\Samples.
  3. À l'invite de commandes, exécutez la commande suivante pour générer le fichier de clé :

    sn -k ExternalSampleKey.snk

    ms345266.note(fr-fr,SQL.90).gifImportant :
    Pour plus d'informations sur la paire de clés de nom fort, consultez l'article de sécurité concernant les noms forts et la sécurité dans .NET Framework, dans le Centre de développement .NET sur MSDN.

Pour générer l'exemple System.Transactions

  1. Modifiez le fichier CS\Transaction\InventoryMover.cs en changeant la valeur de la constante de chaîne auditConnectionString de sorte qu'elle indique le nom du serveur qui stockera les informations d'audit pour cet exemple. Ce serveur doit être un ordinateur physique différent de celui que vous utiliserez pour installer la partie principale de cet exemple. Configurez un compte de test avec l'authentification SQL Server sur le serveur d'audit, puis modifiez la constante de chaîne auditConnectionString de sorte qu'elle spécifie le nom d'utilisateur et le mot de passe que vous avez définis pour ce compte.

  2. Compilez l'exemple au moyen de Visual Studio 2005 et de la solution Visual Studio fournie, ou à l'aide de Microsoft MSBuild disponible dans le Kit de développement logiciel .NET Framework SDK 2.0. À une invite de commandes, exécutez une commande présentant l'aspect suivant :

    msbuild /nologo /verbosity:quiet /property:Configuration=Debug CS\Transaction.sln

  3. Assurez-vous que la base de données AdventureWorks est installée.

  4. Si vous n'avez pas installé les exemples pour le moteur SQL Server à l'emplacement par défaut, modifiez le chemin d'accès dans la partie CREATE ASSEMBLY des scripts qui se trouvent dans les fichiers Scripts\InstallCS.sql et Scripts\InstallVB.sql de façon à désigner l'emplacement où vous avez installé ces exemples.

  5. Si vous n'êtes pas un administrateur de l'instance de SQL Server que vous utilisez, demandez à un administrateur de vous accorder l'autorisation CreateAssembly pour effectuer l'installation.

  6. Ouvrez le fichier scripts\installCS.sql or scripts\installVB.sql, selon que vous avez compilé le projet Visual C# ou le projet Visual Basic, dans Microsoft Management Studio. Exécutez le script contenu dans le fichier lorsque vous êtes connecté au serveur d'exemples principal, ou exécutez une commande présentant l'aspect suivant dans une fenêtre d'invite de commandes sur le serveur d'exemples principal :

    sqlcmd -E -I -i Scripts\InstallCS.sql

  7. Ouvrez le fichier scripts\installDB.sql dans Microsoft Management Studio. Exécutez le script contenu dans le fichier lorsque vous êtes connecté au serveur d'audit, ou exécutez une commande présentant l'aspect suivant dans une fenêtre d'invite de commandes sur le serveur d'audit :

    sqlcmd -E -I -i Scripts\InstallDB.sql

Exécution de l'exemple

Pour exécuter l'exemple System.Transactions

  1. Ouvrez le fichier scripts\test.sql dans Management Studio. Exécutez le script contenu dans le fichier ou exécutez la commande suivante dans une fenêtre d'invite de commandes :

    sqlcmd -E -I -i Scripts\test.sql

Suppression de l'exemple

Pour supprimer l'exemple System.Transactions

  1. Ouvrez le fichier scripts\cleanup.sql dans Management Studio. Exécutez le script contenu dans le fichier situé sur le serveur d'exemples principal ou exécutez la commande suivante dans une fenêtre d'invite de commandes sur le serveur d'exemples principal :

    sqlcmd -E -I -i Scripts\cleanup.sql

  2. Ouvrez le fichier scripts\cleanup.sql dans Management Studio. Exécutez le script contenu dans le fichier situé sur le serveur d'audit ou exécutez la commande suivante dans une fenêtre d'invite de commandes sur le serveur d'audit :

    sqlcmd -E -I -i Scripts\cleanupDB.sql

Commentaires

Pour que cet exemple fonctionne correctement, le CLR pour SQL Server 2005 ou SQL Server Express doit être activé.

Les exemples sont fournis à titre éducatif uniquement. Ils ne sont pas destinés à être utilisés dans un environnement de production et n'ont pas été testés à cet usage. Microsoft ne fournit aucun support technique pour ces exemples. Les exemples d'applications et les assemblys ne doivent pas être utilisés avec votre base de données SQL Server de production ou votre serveur de rapports, ou y être connectés, sans l'autorisation de l'administrateur système.