マージ同期中のビジネス ロジックの実行
適用対象: SQL Server
ビジネス ロジック ハンドラー フレームワークを使用すると、マネージド コードのアセンブリを記述して、マージ同期処理中に呼び出すことができます。 このアセンブリには、データの変更、競合、およびエラーなど、同期中に発生するさまざまな状況に対処するためのビジネス ロジックを記述できます。 ビジネス ロジック ハンドラー フレームワークには単純なプログラミング モデルが用意されており、マージ処理によってアセンブリに提供されるデータは ADO.NET データセットの形式になっています。このため、専用インターフェイスについての知識ではなく ADO.NET についての知識を活用できます。 ビジネス ロジック ハンドラーのプログラミングの詳細については、以下のトピックを参照してください。
アプリケーション プログラミング インターフェイス (API) リファレンス : Microsoft.SqlServer.Replication.BusinessLogicSupport
ビジネス ロジック ハンドラーの実装方法についての説明: マージ アーティクルのビジネス ロジック ハンドラーの実装
ビジネス ロジック ハンドラーの用途
マージ同期処理では、ビジネス ロジック ハンドラーを呼び出して、以下の操作を実行できます。
カスタム変更処理
カスタム競合解決
カスタム エラー解決
Note
指定するビジネス ロジック ハンドラーは、同期されるすべての行に対して実行されます。 その他のアプリケーションまたはネットワーク サービスに対する複雑なロジックおよび呼び出しは、パフォーマンスに影響を与える可能性があります。
カスタム変更処理
ビジネス ロジック ハンドラーは、競合していないデータの変更処理中に呼び出すことができ、次の 3 つの操作のいずれかを実行できます。
データの拒否
特定のサブスクライバーからの変更または特定のサブスクライバーへの変更を反映したくないアプリケーションに役立ちます。 たとえば、管理者は、サブスクライバーのパーティション内に属さない挿入をフィルター処理によって拒否したり、場合によってはサブスクライバーで実行された削除を拒否することができます。 別の例としては、在庫が不足している場合に、サブスクライバーで入力された注文をアプリケーションが拒否できます。
データの受け入れ
これは、パブリッシャーまたはサブスクライバーで行われたデータの変更を反映する前に確認を行う必要があるアプリケーションに役立ちます。 たとえば、中間層アプリケーションでは、フィールドから送られてきた新しい注文を検証し、中間層で調達ワークフロー プロセスと統合することができます。
カスタム データの適用
これは、特定のデータの値または操作をオーバーライドする必要があるアプリケーションに役立ちます。 たとえば、アプリケーションでは、行の削除を、その行の status 列を "削除" の値に設定するという特殊な更新方法に変更して、その削除を実行するクライアントの ID を追跡することができます。 これは、監査やワークフローにも役立ちます。
カスタム競合解決
マージ レプリケーションには、競合の検出機能と解決機能が用意されており、既定の解決方法を受け入れるか、競合に対するカスタム解決方法を選択することができます。 詳細については、「 マージ レプリケーションの競合検出および解決の詳細」を参照してください。 ビジネス ロジック ハンドラーは、競合しているデータの変更処理中に呼び出すことができ、次の 2 つの操作のいずれかを実行できます。
既定の解決の受け入れ
これは、競合の確認や追加アクションの実行、場合によってはカスタム競合ログ メッセージのログ記録などを行う必要があるアプリケーションに役立ちます。
カスタム解決の実行
これは、ビジネス ロジックに固有のデータ値を選択し、このカスタム データセットを使用した同期処理を提供する必要があるアプリケーションに役立ちます。 たとえば、アプリケーションで、パブリッシャーとサブスクライバーのデータセットの値を組み合わせることにより、優先される行の新しいバージョンを提供することができます。
カスタム エラー解決
カスタム ロジックは、結果的にエラーが発生する変更の反映中に呼び出すことができます。 このロジックは、次の 2 つの操作のいずれかを実行できます。
既定のエラー解決の受け入れ
これは、エラーの確認や追加アクションの実行、場合によってはカスタム エラー ログ メッセージのログ記録などを行う必要があるアプリケーションに役立ちます。
カスタム エラー解決の受け入れ
これは、ビジネス ロジックに固有のデータ値を選択し、このカスタム データセットを使用した同期処理を提供する必要があるアプリケーションに役立ちます。 たとえば、レプリケーション処理で重複キー違反が発生した場合、ビジネス ロジック ハンドラーによって、キーの競合がなくなる新しいバージョンのデータ変更を提供することができます。 パブリッシャーとサブスクライバーで行われた変更は、データベースで保持することができます。レプリケーション プロセスは、失敗した挿入に対して削除による補正を行う必要はありません。
ビジネス ロジック ハンドラーの配置シナリオ
ビジネス ロジック ハンドラーは、以下の場所に配置できます。
ディストリビューター。 ディストリビューターでビジネス ロジックが実行されるように、プッシュ サブスクリプションを使用します。
サブスクライバー。 サブスクライバーでビジネス ロジックが実行されるように、プル サブスクリプションを使用します。
インターネット インフォメーション サービス (IIS) サーバー (Web 同期を使用する場合)。 Web 同期を使用して同期されたプル サブスクリプションを使用します。ビジネス ロジック ハンドラーが IIS サーバーで実行されます。
参照
マージ レプリケーション
Subscribe to Publications
データの同期
マージ レプリケーションの Web 同期