Partager via


Readme_ShoppingCart

Mis à jour : 5 décembre 2005

L'exemple ShoppingCart utilise l'identificateur de groupe de conversations pour gérer l'état d'une application simple de panier d'achat virtuel. L'application utilise l'exemple ServiceBrokerInterface.

Par défaut, l'exemple d'application Shopping Cart est installé dans le dossier C:\Program Files\Microsoft SQL Server\100\Samples\Engine\\ServiceBroker\ShoppingCart. Si le dossier exemple n'est pas présent, consultez Installation des exemples.

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.

Génération et installation de l'exemple

  1. Dans Visual Studio 2005, ouvrez ShoppingCartCS.sln.

  2. Générez la solution en appuyant sur F6 ou en sélectionnant Générer la solution dans le menu Générer.

  3. Dans une fenêtre d'invite de commandes, recherchez le dossier Scripts, puis exécutez la commande suivante :

    install all
    

    Le script d'installation installe les objets SQL Server pour l'application, y compris la procédure stockée CLR (Common Language Runtime) qui implémente le service ShoppingCartService.

Exécution de l'exemple

  1. Exécutez l'application ShoppingCartClient.exe à partir du répertoire de l'exemple. Pour simplifier, le client traite une commande chaque fois qu'il s'exécute.

  2. Cliquez sur Create Order pour créer une commande. Ajoutez des articles dans le panier d'achat en les sélectionnant dans la liste Item, puis en cliquant sur le bouton Add Item.

  3. Cliquez sur l'onglet Service Broker Trace à tout moment pour afficher un résumé des messages Service Broker envoyés et reçus.

  4. Les tables ShoppingList et StateTable de la base de données ssb_ShoppingCart gèrent l'état de l'application. La procédure stockée CLR met à jour les tables en fonction des messages provenant du client. Vous pouvez utiliser Management Studio ou sqlcmd pour examiner ces tables.

Suppression de l'exemple

  1. Dans une fenêtre d'invite de commandes, recherchez le dossier Scripts, puis exécutez la commande suivante :

    uninstall all
    
  2. Le script de désinstallation supprime les objets SQL Server de l'application.

Configuration requise

Cet exemple nécessite Visual Studio 2005. Comme l'exemple utilise des fonctionnalités CLR qui n'étaient pas disponibles dans les versions précédentes, les versions de Visual Studio antérieures à 2005 ne peuvent pas le générer.

Montre ce qui suit

Généralement, les applications Service Broker stockent l'état dans la base de données qui héberge le service. Lorsque des messages arrivent, l'application charge l'état à partir de la base de données, puis traite les messages.

La classe Service de l'exemple d'interface Service Broker fournit un moyen commode de gérer l'état. Cet exemple montre comment utiliser la classe Service pour gérer l'état.

Pour gérer l'état à l'aide de la classe Service, vous mettez en œuvre deux méthodes dans votre application et une procédure stockée dans SQL Server, comme l'explique le tableau suivant :

Élément Signature Description

Procédure stockée

CREATE PROCEDURE name (@cgid uniqueidentifier)

Retourne l'état de l'application. Les ensembles de résultats retournés par cette procédure doivent contenir l'identificateur de groupe de conversations.

Méthode publique

public override bool LoadState(System.Data.Sql.SqlReader reader)

Lit les ensembles de résultats fournis par la procédure stockée pour restaurer l'état. Cette procédure stockée doit enregistrer l'identificateur de groupe de conversations dans la classe, car l'interface Service Broker ne fournit pas l'identificateur à la méthode SaveState.

Méthode publique

public override void SaveState()

Enregistre l'état dans la base de données.

Cette rubrique décrit dans ses grandes lignes le processus de restauration de l'état. Pour voir l'exemple complet, consultez ShoppingCartService.cs.

La procédure stockée doit accepter un identificateur de groupe de conversations et retourner deux ensembles de résultats. Le premier ensemble de résultats contient l'identificateur de groupe de conversations lui-même. Le second ensemble de résultats contient l'état spécifique à l'application. Il n'existe pas de nom fixe pour cette procédure stockée. C'est vous qui indiquez le nom de la procédure stockée, en définissant la propriété AppLoaderProcName. L'interface Service Broker appelle simplement la procédure stockée indiquée.

La méthode LoadState restaure l'état de l'application. Le processus exact suivi par l'application dépend de l'état requis par l'application. La méthode admet comme paramètre une instance de System.Data.Sql.SqlReader. L'objet SqlReader contient les ensembles de résultats retournés par la procédure stockée. En général, les implémentations de la méthode LoadState mettent à jour la propriété State de la classe Service, enregistrent l'identificateur de groupe de conversations dans un champ privé, puis enregistrent l'état spécifique à l'application dans les structures de données appropriées. Par exemple, le ShoppingCartService stocke les informations sur les articles, les quantités et les prix dans une instance privée de la classe ShoppingCart.

Après avoir appelé LoadState, l'infrastructure Service Broker distribue le message. Notez que si vous utilisez l'infrastructure de distribution de messages basée sur les attributs, vous pouvez distribuer les messages en fonction de la propriété State en plus du nom du type de message. Dans les méthodes qui traitent les messages, vous pouvez lire ou mettre à jour les structures de données créées dans LoadState.

Lorsque la méthode de traitement des messages a fini de s'exécuter, l'infrastructure Service Broker appelle la méthode SaveState. La méthode SaveState utilise la propriété Connection de la classe Service pour créer un objet SqlCommand qu'elle utilise ensuite pour mettre à jour l'état stocké dans la base de données. Par exemple, le ShoppingCartService supprime le contenu enregistré du panier d'achat, puis insère le contenu actuel du panier d'achat dans la base de données.

Historique des modifications

Version Historique

5 décembre 2005

Contenu modifié :
  • Instructions modifiées concernant la génération d'un fichier de clé, notamment le nom et l'emplacement du fichier de clé.