次の方法で共有


Web 同期を許可するようにパブリケーションを構成する方法 (レプリケーション Transact-SQL プログラミング)

ここでは、マージ レプリケーション用に Web 同期を構成する際の最初の手順について説明します。構成プロセスの概要については、「マージ レプリケーションの Web 同期を構成する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。ここでの手順が完了したら、2 番目の手順に進み、Microsoft インターネット インフォメーション サービス (IIS) を実行しているコンピュータを構成します。この 2 番目の手順については「Web 同期用に IIS を構成する方法」で説明します。

ここでは、Web 同期に必要なパラメータについて説明します。パブリケーション作成の詳細については、「パブリケーションを作成する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。

新しいパブリケーションを構成するには

  1. パブリッシャで sp_addmergepublication を実行します。@publication にはパブリケーションの名前を指定し、@allow_web_synchronization には値 true を指定します。他のパラメータを指定します。サブスクライバが常に HTTP 経由でパブリシャに接続する場合は、@allow_anonymous についても値 true を指定します。

  2. パブリッシャ側で、このパブリケーションに対してスナップショット エージェント ジョブを追加するには、sp_addpublication_snapshot を実行します。詳細については、「パブリケーションを作成する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。

  3. この新しいパブリケーションのアーティクルを定義します。詳細については、「アーティクルを定義する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。

既存のパブリケーションを構成するには

  1. sp_helpmergepublication を実行します。@publication には、既存のパブリケーションの名前を指定します。

  2. 結果セットの allow_web_synchronization の値が 1 の場合、パブリケーションに Web 同期が既に構成されています。結果セットの allow_web_synchronization の値が 0 の場合、Web 同期を有効にする必要があります。

  3. sp_changemergepublication を実行します。@publication には、既存のパブリケーションの名前を指定します。@property には、allow_web_synchronization の値を指定します。@value には値 true を指定します。

  4. (省略可) 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