COM ベースのカスタム競合回避モジュール
カスタム競合回避モジュールを使用すると、既定の解決メカニズムより高い柔軟性が得られ、レプリケートされたデータを使用するアプリケーションに必要なビジネス ロジックを実装できます。COM ベースのカスタム競合回避モジュールは、ICustomResolver COM インターフェイス、メソッドとプロパティ、および競合解決専用に設計されたその他のインターフェイスとデータ型定義を実装するダイナミック リンク ライブラリ (DLL) です。
注 |
---|
可能であれば、COM ベースのカスタム競合回避モジュールではなくビジネス ロジック ハンドラを使用することをお勧めします。ビジネス ロジック ハンドラの詳細については、「マージ同期中のビジネス ロジックの実行」を参照してください。 |
カスタム COM 競合回避モジュールを作成する場合は、replrec.dll に含まれているタイプ ライブラリを使用できます。このライブラリは、既定では C:\Program Files\Microsoft SQL Server\100\COM にインストールされます。
カスタム COM 競合解決モジュールを記述する前に、以下のことを決定する必要があります。
更新、挿入、削除など、解決する必要がある行の変更の種類、およびマージ変更のアップロード、ダウンロード、またはその両方で競合回避モジュールを呼び出すかどうか。1 種類の変更、すべての変更、または各変更の組み合わせを指定できます。既定のマージ競合回避モジュールでは、カスタム競合回避モジュールで対応しなかった競合が処理されます。
競合の解決時に列レベルの追跡を使用するかどうか。列レベルの追跡が有効になっている場合、競合が発生した列のデータに対してのみ競合のフラグが付けられ、それ以外の場合、データはマージされます。しかし、競合の解決方法は行レベルの追跡の場合と同じです。競合で優先されるデータによって行全体が上書きされます。ただし、データは、パブリッシャ、サブスクライバ、またはそれ以外で変更された値が混合されている場合があります。詳細については、「マージ レプリケーションで競合を検出および解決する方法」の「追跡レベル」を参照してください。
COM ベースのカスタム競合回避モジュールを実装するには
- レプリケーション プログラミング : マージ アーティクル用の COM ベース カスタム競合回避モジュールを実装する方法 (レプリケーションのプログラミング)
カスタム競合回避モジュールは、パブリケーション全体ではなくアーティクルに対して指定されます。複数のアーティクルで同じ競合回避モジュールを使用できますが、カスタム競合回避モジュールのロジックは特定のテーブル専用であるのが一般的です。競合回避モジュールを作成した後に、アーティクルで使用されているテーブルが変更されると (競合解決に使用している列の名前が変更された場合など)、カスタム競合回避モジュールを変更して再コンパイルすることが必要な場合があります。
カスタム競合回避モジュールを指定するには
Microsoft SQL Server Management Studio: マージ アーティクル競合回避モジュールを指定する方法 (SQL Server Management Studio)
レプリケーション Transact-SQL プログラミング : マージ アーティクル競合回避モジュールを指定する方法 (レプリケーション Transact-SQL プログラミング)