Web 同期を許可するようにパブリケーションを構成する方法 (レプリケーション Transact-SQL プログラミング)
ここでは、マージ レプリケーション用に Web 同期を構成する際の最初の手順について説明します。構成プロセスの概要については、「マージ レプリケーションの Web 同期を構成する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。ここでの手順が完了したら、2 番目の手順に進み、Microsoft インターネット インフォメーション サービス (IIS) を実行しているコンピュータを構成します。この 2 番目の手順については「Web 同期用に IIS を構成する方法」で説明します。
ここでは、Web 同期に必要なパラメータについて説明します。パブリケーション作成の詳細については、「パブリケーションを作成する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。
新しいパブリケーションを構成するには
パブリッシャで sp_addmergepublication を実行します。@publication にはパブリケーションの名前を指定し、@allow_web_synchronization には値 true を指定します。他のパラメータを指定します。サブスクライバが常に HTTP 経由でパブリシャに接続する場合は、@allow_anonymous についても値 true を指定します。
パブリッシャ側で、このパブリケーションに対してスナップショット エージェント ジョブを追加するには、sp_addpublication_snapshot を実行します。詳細については、「パブリケーションを作成する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。
この新しいパブリケーションのアーティクルを定義します。詳細については、「アーティクルを定義する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。
既存のパブリケーションを構成するには
sp_helpmergepublication を実行します。@publication には、既存のパブリケーションの名前を指定します。
結果セットの allow_web_synchronization の値が 1 の場合、パブリケーションに Web 同期が既に構成されています。結果セットの allow_web_synchronization の値が 0 の場合、Web 同期を有効にする必要があります。
sp_changemergepublication を実行します。@publication には、既存のパブリケーションの名前を指定します。@property には、allow_web_synchronization の値を指定します。@value には値 true を指定します。
(省略可) HTTP を通じてのみサブスクライバがパブリッシャに接続する場合は、sp_changemergepublication を実行します。@publication には、既存のパブリケーションの名前を指定します。@property には、allow_anonymous の値を指定します。@value には値 true を指定します。
使用例
次の例では、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