マージ レプリケーションの競合の検出と解決

パブリッシャとサブスクライバが接続され、同期が発生すると、マージ エージェントによって競合の検出が行われます。競合が検出された場合、マージ エージェントは競合回避モジュールを使用して、どのデータを受け入れて他のサイトに反映するかを決定します。競合の種類の一覧については、「マージ レプリケーションで競合を検出および解決する方法」の「競合の種類」を参照してください。

注意

サブスクライバがパブリッシャと同期している場合でも、サブスクライバとパブリッシャでの更新よりも、別のサブスクライバの更新で競合が発生することがよくあります。

マージ レプリケーションでは、競合を検出して解決するためのさまざまなメソッドが用意されています。ほとんどのアプリケーションの場合、次の既定のメソッドが適切です。

  • 競合がパブリッシャとサブスクライバの間で発生した場合、パブリッシャの変更は保存され、サブスクライバの変更は破棄されます。

  • クライアント サブスクリプション (プル サブスクリプションの既定の種類) を使用している 2 つのサブスクライバ間で競合が発生した場合は、パブリッシャと同期する最初のサブスクライバからの変更が保存され、2 番目のサブスクライバからの変更は破棄されます。クライアント サブスクリプションおよびサーバー サブスクリプションの指定の詳細については、「マージ サブスクリプションの種類と競合解決の優先度を指定する方法 (SQL Server Management Studio)」を参照してください。

  • サーバー サブスクリプション (プッシュ サブスクリプションの既定の種類) を使用している 2 つのサブスクライバ間で競合が発生した場合は、優先度が高い方のサブスクライバからの変更が保存され、2 番目のサブスクライバからの変更は破棄されます。優先度値が同じである場合は、パブリッシャと同期する最初のサブスクライバからの変更が保存されます。

マージ レプリケーションにおける競合の検出と解決の詳細については、「マージ レプリケーションの競合検出および解決の詳細」を参照してください。