Partager via


Exemple Sales Orders pour la réplication de fusion

Mis à jour : 14 avril 2006

Ce fichier Lisez-moi explique en détail comment installer et exécuter l'exemple Sales Orders. Il décrit également les problèmes connus liés à cet exemple.

Scénario

Cet exemple illustre une topologie de réplication de fusion permettant de remettre des données à des utilisateurs mobiles. Il fait en outre la démonstration des fonctionnalités de programmabilité de la réplication de fusion dans SQL Server 2005. Cet exemple est une application Windows Forms qui utilise les technologies d'accès aux données Microsoft standard et la réplication de fusion pour permettre à un représentant d'assurer la maintenance de ses propres données locales tout en effectuant des synchronisations périodiques avec son bureau principal. Cet exemple est pris en charge pour les Abonnés qui exécutent toutes les éditions de SQL Server 2005. La publication prend également en charge les Abonnés SQL Server Compact Edition. Pour plus d'informations sur le scénario de cet exemple, consultez Sales Orders Sample Scenario.

Langages

  • C#
  • Transact-SQL

Fonctionnalités

L'exemple Sales Orders montre les fonctionnalités suivantes de la réplication de fusion :

  • Objets RMO (Replication Management Objects).
  • Filtrage des lignes paramétrable.
  • Partitions précalculées.
  • Captures instantanées partitionnées à la demande du client.
  • Optimisation des performances basée sur les types d'articles.
  • Abonnés SQL Server Compact Edition et Express Edition.
  • Gestion automatique de plages d'identités.
  • Gestionnaires de logique métier.
  • Synchronisation Web (facultative).

Pour plus d'informations sur la façon dont ces fonctionnalités de la réplication sont illustrées dans l'exemple, consultez Sales Orders Sample Implementation Details.

Configuration requise

Avant d'exécuter cet exemple, vérifiez que le logiciel suivant est installé :

  • SQL Server 2005 Service Pack 1 (SP1), notamment les composants suivants dont l'installation est facultative :
    • SQL Server Database Services (y compris la réplication)
    • Composants de connectivité client
    • Modèles de programmation
    • Outils de développement [y compris le kit de développement logiciel (SDK)]
    • Exemple de base de données OLTP AdventureWorks. Cette base de données exemple incluse dans SQL Server 2005 est également disponible sur la page Web du SQL Server Developer Center. (Centre des développeurs SQL Server).
    • Exemples du SQL Server 2005. Ces exemples sont intégrés à SQL Server 2005 et sont également disponibles sur la page Web du SQL Server Developer Center (Centre des développeurs SQL Server). Pour plus d'informations, consultez Installation des exemples.
  • Le Kit de développement .NET Framework SDK 2.0 ou Microsoft Visual Studio 2005. Vous pouvez obtenir gratuitement le Kit de développement .NET Framework SDK. Pour plus d'informations, consultez Installation du SDK .NET Framework.
    ms160955.note(fr-fr,SQL.90).gifRemarque :
    Pour générer la capture instantanée initiale, vous devez appliquer le SP1 de SQL Server 2005 sur le serveur de publication. Pour utiliser cet exemple sur un serveur de publication SQL Server 2005 sans appliquer le SP1, vous devez tout d'abord supprimer et recréer la contrainte de clé étrangère FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID sur la table SalesOrderHeader sans utiliser la clause ON DELETE CASCADE.

Autorisations requises

Les autorisations nécessaires pour configurer et exécuter l'exemple Sales Orders sont basées sur les exigences de la sécurité de la réplication :

  • Pour exécuter InstallSalesOrdersSample.bat, qui configure la réplication, crée la publication AdvWorksSalesOrders et génère la capture instantanée initiale, votre compte Windows doit être membre du rôle serveur fixe sysadmin sur le serveur de publication.
  • L'exemple Sales Orders effectue diverses tâches de moteur de base de données et de réplication, notamment en créant la base de données AdventureWorksLocal et l'abonnement local, et en exécutant l'Agent de fusion pour initialiser, réinitialiser ou synchroniser l'abonnement. Pour vous permettre d'exécuter le fichier exécutable de l'exemple (SalesOrders.exe) sur l'Abonné, votre compte Windows doit avoir au moins les autorisations CREATE DATABASE sur l'Abonné.
    ms160955.note(fr-fr,SQL.90).gifRemarque :
    Lorsque la base de données locale et l'abonnement existent, votre compte Windows doit être au moins membre du rôle de base de données fixe db_owner dans la base de données AdventureWorksLocal sur l'Abonné pour exécuter l'application.
  • Pour initialiser l'abonnement et effectuer la synchronisation avec le serveur de publication, le compte Windows utilisé pour se connecter au serveur de publication (ou au serveur Web à l'aide de la synchronisation Web) doit répondre aux critères suivants :
    • disposer d'une connexion valide sur le serveur de publication, associée à un utilisateur dans la base de données de publication ;
    • disposer d'une connexion valide sur le distributeur, associée à un utilisateur dans la base de données de distribution (de l'utilisateur invité) ;
    • être membre de la liste d'accès à la publication pour la publication AdvWorksSalesOrders.

Génération et configuration de l'exemple

Pour générer l'exemple de projet et configurer la topologie de la réplication, procédez de la façon suivante :

  • Sur le serveur de publication, exécutez le script d'installation de la réplication.
  • (Facultatif) Configurez le serveur IIS (Internet Information Services) pour prendre en charge la synchronisation Web de la réplication de fusion. Si vous ne le faites pas, vous ne pourrez pas utiliser la fonctionnalité de synchronisation Web de l'exemple.
  • Sur l'Abonné, modifiez les paramètres de configuration dans le fichier app.config de l'exemple.
  • Sur l'Abonné, générez l'exemple à l'aide de Visual Studio 2005 ou du Kit de développement (SDK) .NET Framework 2.0.
  • Sur l'Abonné, placez une copie de l'assembly BusinessLogic.dll dans le répertoire C:\Program Files\Microsoft SQL Server\90\COM. Si vous comptez utiliser la synchronisation Web, vous devez aussi placer une copie de BusinessLogic.dll dans le répertoire C:\Program Files\Microsoft SQL Server\90\COM du serveur Web.

Pour configurer l'exemple Sales Orders sur le serveur de publication

  1. Vérifiez que la base de données exemple AdventureWorks a été installée et qu'elle est attachée. Si cette base de données n'est pas attachée, consultez Installation des exemples de bases de données AdventureWorks et des autres exemples dans la documentation en ligne de SQL Server.

  2. Vérifiez que les exemples pour le moteur de base de données SQL Server ont été installés.

    Pour plus d'informations, consultez Installation des exemples.

  3. Vérifiez que l'Agent SQL Server s'exécute. Vous pouvez démarrer ce service et afficher son état à partir de l'Explorateur d'objets dans SQL Server Management Studio.

  4. Naviguez jusqu'à l'emplacement de l'installation des scripts de l'exemple Sales Orders. Cet emplacement est par défaut C:\Program Files\Microsoft SQL Server\90\Samples\Replication\Merge\SalesOrders\Scripts.

  5. (Facultatif) Configurez le protocole SSL (Secure Sockets Layer) sur le serveur de publication ou le serveur utilisé pour la synchronisation Web. SSL est requis pour les communications entre le serveur IIS et tous les Abonnés. Pour configurer SSL, spécifiez le certificat de serveur qu'utilisera le serveur IIS.

  6. Exécutez InstallSalesOrdersSample.bat et, quand vous êtes invité à le faire, entrez le nom d'utilisateur (sous la forme « DOMAINE\nom » en respectant la casse) et le mot de passe du compte Windows sous lequel le travail de l'Agent de capture instantanée sera exécuté. Ceci appelle sqlcmd.exe pour exécuter CreateAdvWorksSalesOrdersPublication.sql, qui effectue les actions suivantes :

    • Il vérifie que la réplication a été configurée sur le serveur local et, dans la négative, il le configure comme serveur de publication avec un serveur de distribution local utilisant la base de données de distribution.
    • Il supprime et recrée les procédures stockées et les fonctions définies par l'utilisateur employées pour accéder aux données sur le client.
    • Il supprime et recrée la publication AdvWorksSalesOrders.
    • Il ajoute des articles à la publication.
    • Il inscrit le gestionnaire de logique métier sur le serveur de distribution.
    • Il lance le travail de l'Agent de capture instantanée pour générer la capture instantanée initiale.

    Le fichier de commandes peut aussi configurer automatiquement un répertoire virtuel sur le serveur de publication pour prendre en charge la synchronisation Web. Si vous choisissez de ne pas configurer le répertoire virtuel sur le serveur de publication durant l'installation ou si vous comptez utiliser un serveur Web séparé, vous devez exécuter l'Assistant Configuration de la synchronisation Web avant d'utiliser les fonctionnalités de synchronisation Web de l'exemple.

  7. (Facultatif) Exécutez l'Assistant Configuration de la synchronisation Web pour configurer un serveur IIS de façon à prendre en charge la synchronisation Web. Sautez cette étape si InstallSalesOrdersSample.bat a créé le répertoire virtuel ou si vous ne prévoyez pas d'utiliser la synchronisation Web. Pour plus d'informations sur l'utilisation de cet Assistant, consultez Procédure : Configurer IIS pour la synchronisation Web.

  8. Avant de continuer, vérifiez que le travail de l'Agent de capture instantanée pour la publication AdvWorksSalesOrders est terminé. Vous pouvez afficher l'état de ce travail à l'aide du moniteur de réplication. Pour plus d'informations sur l'affichage de l'état d'un travail d'Agent de capture instantanée à l'aide du moniteur de réplication, consultez la rubrique Procédure : afficher des informations et effectuer des tâches pour les agents associés à une publication (moniteur de réplication) dans la documentation en ligne de SQL Server.

Pour générer et configurer l'exemple Sales Orders sur l'Abonné

  1. À partir de l'invite de commandes, accédez au répertoire d'installation des exemples SQL Server 2005. L'emplacement par défaut est C:\Program Files\Microsoft SQL Server\90\Samples.

  2. Exécutez la commande suivante à partir d'une invite de commandes .NET Framework ou Microsoft Visual Studio 2005 :

    sn -k SampleKey.snk

    ms160955.note(fr-fr,SQL.90).gifRemarque :
    Vous pouvez ignorer cette étape si cette clé a été créée précédemment pour être utilisée avec un autre exemple.
  3. Accédez à l'emplacement d'installation pour la solution de l'exemple Sales Orders dans Microsoft Visual C#. Cet emplacement est par défaut C:\Program Files\Microsoft SQL Server\90\Samples\Replication\Merge\SalesOrders\CS.

  4. Ouvrez le fichier de solution SalesOrders.sln dans Visual Studio 2005.

  5. Générez le projet.

  6. Dans le dossier de sortie de projet, modifiez le fichier SalesOrders.exe.config et procédez aux remplacements suivants :

    • Remplacez la valeur de la clé Subscriber par le nom du serveur local.
    • Remplacez la valeur de la clé Publisher par le nom du serveur que vous avez configuré comme serveur de publication.
    • (Facultatif) Remplacez la valeur de la clé WebSynchronizationUrl si vous comptez utiliser la synchronisation Web pour vous connecter au serveur de publication. Ceci peut aussi s'effectuer au moment de l'exécution.
    • (Facultatif) Utilisez la clé SyncWhenConnectedInterval pour définir l'intervalle en secondes entre les synchronisations si vous comptez utiliser la fonctionnalité de synchronisation lors de la connexion.
    ms160955.note(fr-fr,SQL.90).gifRemarque :
    La réplication n'autorise pas localhost comme nom de serveur.
  7. Placez une copie de l'assembly BusinessLogic.dll dans le répertoire C:\Program Files\Microsoft SQL Server\90\COM.

  8. (Facultatif) Si vous comptez utiliser la synchronisation Web, placez une copie de l'assembly BusinessLogic.dll dans le répertoire C:\Program Files\Microsoft SQL Server\90\COM du serveur Web.

Exécution de l'exemple

Pour exécuter l'exemple Sales Orders et synchroniser les données

  1. Vérifiez que les connexions distantes sont activées sur le serveur de publication et sur l'Abonné (TCP/IP ou canaux nommés) et que le service SQL Server Agent s'exécute.

  2. (Facultatif) Sur l'Abonné, testez la connexion de synchronisation Web en vous connectant au serveur Web en mode diagnostic et en suivant les instructions de la section relative à la configuration des certificats clients au niveau de l'Abonné dans How to: Configure Web Synchronization for Merge Replication (Replication Transact-SQL Programming).

    ms160955.note(fr-fr,SQL.90).gifRemarque :
    Si une erreur HTTP se produit lors de l'utilisation de la synchronisation Web, ouvrez Internet Explorer puis, dans le menu Outils, sélectionnez Options Internet, Connexions et Paramètres réseau. Vérifiez que l'option Détecter automatiquement les paramètres de connexion est désactivée.
  3. Démarrez SalesOrders.exe depuis Visual Studio 2005 ou à partir de l'invite de commandes. Lorsque l'application s'exécute pour la première fois, la base de données d'abonnement et l'abonnement sont créés et l'Agent de fusion démarre pour initialiser l'abonnement.

  4. Une fois les données de l'abonnement initialisées, le formulaire Sales Orders est chargé et affiche une liste des commandes existantes appartenant au représentant « adventure-works\garrett1 ».

  5. À l'aide du formulaire Sales Orders, vous pouvez apporter les modifications suivantes aux données des ventes :

    • Modifier les informations des commandes client.
    • Ajouter un nouvel élément à une commande client.
    • Supprimer un élément d'une commande client.
    • Modifier la quantité commandée pour un élément d'une commande client.
  6. Sélectionnez une méthode de synchronisation dans le menu Synchronize pour synchroniser l'abonnement.

  7. (Facultatif) Activez la case à cocher Synchronize When Connected pour synchroniser l'abonnement automatiquement. Définissez l'intervalle de synchronisation pour la synchronisation en arrière-plan à l'aide de la clé SyncWhenConnectedInterval dans le fichier app.config.

    ms160955.note(fr-fr,SQL.90).gifRemarque :
    La fonctionnalité Synchronize When Connected n'est pas disponible lorsqu'elle est exécutée sur des plateformes Microsoft . Pour plus d'informations, consultez Sales Orders Sample Implementation Details.

Pour utiliser les options de synchronisation avancées de l'exemple Sales Orders

  1. À partir de l'élément Advanced du menu Synchronize, choisissez l'une des options suivantes :

    • (Facultatif) Sélectionnez une option de réinitialisation pour réinitialiser l'abonnement.
    • (Facultatif) Sélectionnez Options de synchronisation Web et fournissez l'URL Internet et les informations d'identification de l'authentification Windows utilisées pour accéder au serveur Web via une connexion HTTPS sécurisée. Pour utiliser cette option, vous devez préalablement avoir configuré un serveur IIS pour la synchronisation Web.
      ms160955.note(fr-fr,SQL.90).gifRemarque :
      La synchronisation en téléchargement seul (upload ou download) n'est pas prise en charge avec la synchronisation Web. Lorsque la synchronisation Web est activée, l'élément de menu Only Upload Data est désactivé.
    • (Facultatif) Sélectionnez Get Subscription Status pour afficher les résultats des sessions les plus récentes de l'Agent de fusion.

Suppression de l'exemple

Utilisez la procédure suivante pour supprimer l'exemple Sales Orders.

Pour supprimer seulement l'abonnement

  1. Sur l'Abonné, exécutez le script Transact-SQL suivant pour supprimer l'abonnement par extraction de données (pull).

    -- This batch is executed at the Subscriber to remove 
    -- the Sales Orders sample subscription.
    DECLARE @publisher AS sysname;
    
    -- change this value to the name of the Publisher server.
    SET @publisher = N'PUBSERVER'; 
    
    USE [AdventureWorksLocal]
    EXEC sp_dropmergepullsubscription 
      @publisher = @publisher, 
      @publisher_db = N'AdventureWorks',
      @publication = N'AdvWorksSalesOrders';
    GO
    
  2. Sur le serveur de publication, exécutez le script Transact-SQL suivant pour annuler l'inscription de l'abonnement par extraction de données (pull).

    -- This batch is executed at the Publisher to remove 
    -- the Sales Orders sample subscription.
    DECLARE @subscriber AS sysname;
    
    -- change this value to the name of the Subscriber server.
    SET @subscriber = N'SUBSERVER'; 
    
    USE [AdventureWorks]
    EXEC sp_dropmergesubscription 
      @publication = N'AdvWorksSalesOrders', 
      @subscriber = @subscriber, 
      @subscriber_db = N'AdventureWorksLocal';
    GO
    

Pour supprimer l'exemple Sales Orders

  1. Sur le serveur de publication, naviguez jusqu'à l'emplacement de l'installation des scripts de l'exemple Sales Orders. Cet emplacement est par défaut C:\Program Files\Microsoft SQL Server\90\Samples\Replication\Merge\SalesOrders\Scripts.

  2. Exécutez le fichier de commandes RemoveSalesOrdersSample.bat.

  3. Confirmez la suppression en tapant « Y » et en appuyant sur Entrée pour supprimer tous les objets de réplication sur le serveur de publication et dans la base de données d'abonnement, et désinstaller la publication et la distribution sur le serveur de publication.

    ms160955.note(fr-fr,SQL.90).gifImportant :
    Ce script supprime toute l'infrastructure de réplication. Si vous avez créé d'autres publications qui utilisent ce serveur de publication ou ce serveur de distribution, n'exécutez pas DropAdvWorksSalesOrdersPublication.sql. À la place, vous devez supprimer manuellement la publication AdvWorksSalesOrders. Pour plus d'informations, consultez les rubriques Procédure : supprimer une publication (SQL Server Management Studio) ou How to: Delete a Publication (Replication Transact-SQL Programming) dans la documentation en ligne de SQL Server.
  4. Sur l'Abonné, dans la base de données AdventureWorksLocal, exécutez sp_removedbreplication (Transact-SQL).

  5. Changez le contexte de base de données en spécifiant la base de données master et exécutez DROP DATABASE AdventureWorksLocal.

Commentaires

Les exemples sont fournis uniquement à titre éducatif. 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.

Voir aussi

Concepts

Exemples de réplication

Autres ressources

Planning for Replication Programming
Infocentre destiné aux développeurs de réplication

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

14 avril 2006

Contenu modifié :
  • Mise à jour de la configuration requise pour SQL Server 2005 SP1.
  • Ajout d'une remarque contenant des informations sur l'exécution de l'exemple sur un serveur de publication SQL Server 2005.

5 décembre 2005

Contenu modifié :
  • Mise à jour des étapes de déploiement.
  • Mise à jour de la création de la clé et des informations de déploiement pour refléter les exemples de mises à jour.