Procédure : configurer une publication qui autorise la synchronisation Web (programmation Transact-SQL de la réplication)

Cette rubrique décrit la première étape de la configuration de la synchronisation Web pour la réplication de fusion. Pour obtenir une vue d'ensemble du processus de configuration, consultez Procédure : configurer la synchronisation Web pour la réplication de fusion (programmation Transact-SQL de la réplication). Après avoir terminé les procédures de cette rubrique, poursuivez par la deuxième étape, qui est la configuration de l'ordinateur exécutant MicrosoftInternet Information Services (IIS). Cette seconde étape est décrite dans Procédure : configurer IIS pour la synchronisation Web.

Cette rubrique décrit les paramètres qui sont requis par la synchronisation Web. Pour plus d'informations sur la création de publications, consultez Procédure : créer une publication (programmation Transact-SQL de la réplication).

Pour configurer une nouvelle publication

  1. Sur le serveur de publication, exécutez sp_addmergepublication. Spécifiez le nom de la publication pour @publication et affectez la valeur true à @allow_web_synchronization. Spécifiez tous les autres paramètres. Si les Abonnés se connectent au serveur de publication uniquement par le biais du protocole HTTP, affectez également la valeur true à @allow_anonymous.

  2. Sur le serveur de publication, exécutez sp_addpublication_snapshot pour ajouter un travail de l'Agent de capture instantanée à cette publication. Pour plus d'informations, consultez Procédure : créer une publication (programmation Transact-SQL de la réplication).

  3. Définissez les articles de cette nouvelle publication. Pour plus d'informations, consultez Procédure : définir un article (programmation Transact-SQL de la réplication).

Pour configurer une publication existante

  1. Exécutez sp_helpmergepublication. Spécifiez le nom de la publication existante pour @publication.

  2. Si la valeur de allow_web_synchronization dans le jeu de résultats est 1, la synchronisation Web est déjà configurée pour cette publication. Si la valeur de allow_web_synchronization dans le jeu de résultats est 0, la synchronisation Web doit être activée.

  3. Exécutez sp_changemergepublication. Pour @publication, spécifiez le nom de la publication existante, pour @property, spécifiez la valeur allow_web_synchronization et pour @value, spécifiez la valeur true.

  4. (Facultatif) Si les Abonnés se connectent au serveur de publication uniquement par le biais du protocole HTTP, exécutez sp_changemergepublication. Spécifiez le nom de la publication existante pour @publication, affectez la valeur allow_anonymous à @property et la valeur true à @value.

Exemple

L'exemple suivant crée une publication qui est activée pour la synchronisation Web.

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables  
-- on the command line and in SQL Server Management Studio, see the 
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".

--Declarations for adding a merge publication
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @websyncurl AS nvarchar(256);
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks2008R2'; 
SET @publication = N'AdvWorksSalesOrdersMerge'; 
SET @websyncurl = 'https://' + $(WebServer) + '/WebSync';
SET @login = $(Login);
SET @password = $(Password);

-- Enable merge replication on the publication database, using defaults.
USE master
EXEC sp_replicationdboption 
  @dbname=@publicationDB, 
  @optname=N'merge publish',
  @value = N'true' 

-- Create a new merge publication, explicitly setting the defaults. 
EXEC sp_addmergepublication 
    @publication = @publication,
    -- optional parameters 
    @description = N'Merge publication of AdventureWorks2008R2 using Web synchronization.',
    @publication_compatibility_level  = N'90RTM',
    -- Enable Web synchronization.
    @allow_web_synchronization = N'true',
    -- Web synchronization URL hint used by SQL Server Management Studio.
    @web_synchronization_url = @websyncurl;

-- Create a new snapshot job for the publication.
EXEC sp_addpublication_snapshot 
    @publication = @publication, 
    @job_login = @login, 
    @job_password = @password;
GO