マージ アーティクルにインタラクティブな競合回避を指定する方法 (レプリケーション Transact-SQL プログラミング)
MicrosoftSQL Server レプリケーションでは、Microsoft Windows 同期マネージャでの要求時同期中に、手動で競合を解決できるインタラクティブ競合回避モジュールを利用できます。マージ パブリケーションに対するプル サブスクリプションが作成されるときに、サブスクライバがこのグラフィカル インターフェイスを使用してアーティクルの競合を回避するように、プログラムで指定できます。このオプションをサポートするアーティクル内の競合のみが、インタラクティブ競合回避モジュールに表示されます。インタラクティブな競合回避には Windows 同期マネージャが必要です。同期が Windows 同期マネージャの外部で (スケジュールされた同期、または SQL Server Management Studio かレプリケーション モニタでの要求時同期として) 実行される場合、アーティクルに指定された既定の競合回避を使用して、ユーザーの介入なしに自動的に競合が解決されます。詳細については、「インタラクティブな競合解決」を参照してください。
インタラクティブ競合回避モジュールを使用するマージ プル サブスクリプションを作成するには
パブリッシャ側のパブリケーション データベースに対し、@publication を指定して sp_helpmergearticle を実行します。インタラクティブ競合回避モジュールが使用される結果セット内の各アーティクルに対する allow_interactive_resolver の値を確認します。
この値が 1 の場合、インタラクティブ競合回避モジュールが使用されます。
この値が 0 の場合は、最初に、各アーティクルに対してインタラクティブ競合回避モジュールを有効にする必要があります。そのためには、@publication と @article を指定し、@property に allow_interactive_resolver を、@value に true を指定して、sp_changemergearticle を実行します。
サブスクライバ側のサブスクリプション データベースに対して、sp_addmergepullsubscription を実行します。詳細については、「プル サブスクリプションを作成する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。
サブスクライバ側のサブスクリプション データベースに対し、次のパラメータを指定して sp_addmergepullsubscription_agent を実行します。
@publisher、@publisher_db (パブリッシュされるデータベース)、および @publication。
@enabled_for_syncmgr に true。
@use_interactive_resolver に true。
マージ エージェントが必要とするセキュリティ アカウント情報。詳細については、「プル サブスクリプションを作成する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。
パブリッシャ側のパブリケーション データベースに対し、sp_addmergesubscription を実行します。
インタラクティブ競合回避モジュールをサポートするアーティクルを定義するには
- パブリッシャ側のパブリケーション データベースに対して、sp_addmergearticle を実行します。@publication にアーティクルが属するパブリケーションの名前を、@article にアーティクルの名前を、@source_object にパブリッシュされるデータベース オブジェクトを指定し、@allow_interactive_resolver に true を指定します。詳細については、「アーティクルを定義する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。