ビジネス ロジック ハンドラー フレームワークを使用すると、マージ同期プロセス中に呼び出されるマネージド コード アセンブリを記述できます。 アセンブリには、データの変更、競合、エラーなど、同期中にさまざまな条件に対応できるビジネス ロジックが含まれています。 ビジネス ロジック ハンドラー フレームワークは単純なプログラミング モデルを提供し、マージ プロセスによってアセンブリに提供されるデータは ADO.NET データ セットの形式であるため、独自のインターフェイスを学習するのではなく、ADO.NET の知識を活用できます。 ビジネス ロジック ハンドラーのプログラミングの詳細については、次を参照してください。
アプリケーション プログラミング インターフェイス (API) リファレンス: Microsoft.SqlServer.Replication.BusinessLogicSupport
ビジネス ロジック ハンドラーを実装する方法の手順: マージ アーティクルのビジネス ロジック ハンドラーを実装する
ビジネス ロジック ハンドラーの使用
マージ同期プロセスでは、ビジネス ロジック ハンドラーを呼び出して次の操作を実行できます。
カスタム変更処理
独自の競合解決
カスタム エラー解決
注
指定したビジネス ロジック ハンドラーは、同期されるすべての行に対して実行されます。 複雑なロジックや他のアプリケーションまたはネットワーク サービスの呼び出しは、パフォーマンスに影響を与える可能性があります。
カスタム変更処理
ビジネス ロジック ハンドラーは、競合しないデータ変更の処理中に呼び出すことができます。また、次の 3 つのアクションのいずれかを実行できます。
データを拒否する
これは、特定のサブスクライバーとの間で変更を反映させたくないアプリケーションに役立ちます。 たとえば、管理者は、サブスクライバーのパーティションに属していない挿入を除外したり、サブスクライバーで実行された削除を拒否したりする可能性があります。 別の例として、アプリケーションは、インベントリが使用できなくなったため、サブスクライバーで入力された注文を拒否する可能性があります。
データを受け入れる
これは、パブリッシャーまたはサブスクライバーで行われたデータ変更を反映させる前に確認する必要があるアプリケーションに役立ちます。 たとえば、中間層アプリケーションでは、現場からの新しい注文を調べて、中間層の調達ワークフロー プロセスと統合できます。
カスタム データを適用する
これは、特定のデータ値または操作をオーバーライドする必要があるアプリケーションに役立ちます。 たとえば、アプリケーションは、行の 状態 列を "削除済み" の値に設定し、削除を実行するクライアントの ID を追跡する特別な更新プログラムに行の削除を変換できます。 これは、監査やワークフローの目的で役立つ場合があります。
カスタム競合解決策
マージ レプリケーションでは、競合の検出と解決が提供されるため、既定の解決戦略を受け入れるか、競合のカスタム解決を選択できます。 詳細については、「 高度なマージ レプリケーションの競合の検出と解決」を参照してください。 ビジネス ロジック ハンドラーは、競合するデータ変更の処理中に呼び出すことができます。また、次の 2 つのアクションのいずれかを実行できます。
既定の解決を受け入れる
これは、競合を確認し、追加のアクションを実行し、場合によってはカスタム競合ログ メッセージをログに記録する必要があるアプリケーションに役立ちます。
カスタム解決を実行する
これは、ビジネス ロジックに固有のデータ値を選択し、このカスタム データセットで同期プロセスを提供する必要があるアプリケーションに役立ちます。 たとえば、アプリケーションでは、パブリッシャー データ セットとサブスクライバー データ セットの値を組み合わせることで、新しいバージョンの勝利の行を提供できます。
カスタム エラー解決
カスタム ロジックは、エラーが発生する変更の反映中に呼び出すことができます。 ロジックは、次の 2 つのアクションのいずれかを実行できます。
既定のエラー解決を受け入れる
これは、エラーを確認し、追加のアクションを実行し、場合によってはカスタム エラー ログ メッセージをログに記録する必要があるアプリケーションに役立ちます。
カスタム エラー解決を受け入れる
これは、ビジネス ロジックに固有のデータ値を選択し、このカスタム データセットで同期プロセスを提供する必要があるアプリケーションに役立ちます。 たとえば、レプリケーション プロセスで重複するキー違反が発生した場合、ビジネス ロジック ハンドラーは、キーが競合しなくなった新しいバージョンのデータ変更を提供できます。 パブリッシャーとサブスクライバーで行われた変更はデータベースに保持され、レプリケーション プロセスは失敗した挿入を削除で補う必要はありません。
ビジネス ロジック ハンドラーの展開シナリオ
ビジネス ロジック ハンドラーは、次の場合にデプロイできます。
ディストリビューター。 ビジネス ロジックがディストリビューターで実行されるように、プッシュ サブスクリプションを使用します。
サブスクライバー。 ビジネス ロジックがサブスクライバーで実行されるように、プル サブスクリプションを使用します。
Web 同期を使用する場合のインターネット インフォメーション サービス (IIS) サーバー。 Web 同期と同期されたプル サブスクリプションを使用すると、ビジネス ロジック ハンドラーが IIS サーバーで実行されます。