次の方法で共有


マージ同期中にビジネス ロジックを実行する

ビジネス ロジック ハンドラー フレームワークを使用すると、マージ同期プロセス中に呼び出されるマネージド コード アセンブリを記述できます。 アセンブリには、データの変更、競合、エラーなど、同期中にさまざまな条件に対応できるビジネス ロジックが含まれています。 ビジネス ロジック ハンドラー フレームワークは単純なプログラミング モデルを提供し、マージ プロセスによってアセンブリに提供されるデータは ADO.NET データ セットの形式であるため、独自のインターフェイスを学習するのではなく、ADO.NET の知識を活用できます。 ビジネス ロジック ハンドラーのプログラミングの詳細については、次を参照してください。

ビジネス ロジック ハンドラーの使用

マージ同期プロセスでは、ビジネス ロジック ハンドラーを呼び出して次の操作を実行できます。

  • カスタム変更処理

  • 独自の競合解決

  • カスタム エラー解決

指定したビジネス ロジック ハンドラーは、同期されるすべての行に対して実行されます。 複雑なロジックや他のアプリケーションまたはネットワーク サービスの呼び出しは、パフォーマンスに影響を与える可能性があります。

カスタム変更処理

ビジネス ロジック ハンドラーは、競合しないデータ変更の処理中に呼び出すことができます。また、次の 3 つのアクションのいずれかを実行できます。

  • データを拒否する

    これは、特定のサブスクライバーとの間で変更を反映させたくないアプリケーションに役立ちます。 たとえば、管理者は、サブスクライバーのパーティションに属していない挿入を除外したり、サブスクライバーで実行された削除を拒否したりする可能性があります。 別の例として、アプリケーションは、インベントリが使用できなくなったため、サブスクライバーで入力された注文を拒否する可能性があります。

  • データを受け入れる

    これは、パブリッシャーまたはサブスクライバーで行われたデータ変更を反映させる前に確認する必要があるアプリケーションに役立ちます。 たとえば、中間層アプリケーションでは、現場からの新しい注文を調べて、中間層の調達ワークフロー プロセスと統合できます。

  • カスタム データを適用する

    これは、特定のデータ値または操作をオーバーライドする必要があるアプリケーションに役立ちます。 たとえば、アプリケーションは、行の 状態 列を "削除済み" の値に設定し、削除を実行するクライアントの ID を追跡する特別な更新プログラムに行の削除を変換できます。 これは、監査やワークフローの目的で役立つ場合があります。

カスタム競合解決策

マージ レプリケーションでは、競合の検出と解決が提供されるため、既定の解決戦略を受け入れるか、競合のカスタム解決を選択できます。 詳細については、「 高度なマージ レプリケーションの競合の検出と解決」を参照してください。 ビジネス ロジック ハンドラーは、競合するデータ変更の処理中に呼び出すことができます。また、次の 2 つのアクションのいずれかを実行できます。

  • 既定の解決を受け入れる

    これは、競合を確認し、追加のアクションを実行し、場合によってはカスタム競合ログ メッセージをログに記録する必要があるアプリケーションに役立ちます。

  • カスタム解決を実行する

    これは、ビジネス ロジックに固有のデータ値を選択し、このカスタム データセットで同期プロセスを提供する必要があるアプリケーションに役立ちます。 たとえば、アプリケーションでは、パブリッシャー データ セットとサブスクライバー データ セットの値を組み合わせることで、新しいバージョンの勝利の行を提供できます。

カスタム エラー解決

カスタム ロジックは、エラーが発生する変更の反映中に呼び出すことができます。 ロジックは、次の 2 つのアクションのいずれかを実行できます。

  • 既定のエラー解決を受け入れる

    これは、エラーを確認し、追加のアクションを実行し、場合によってはカスタム エラー ログ メッセージをログに記録する必要があるアプリケーションに役立ちます。

  • カスタム エラー解決を受け入れる

    これは、ビジネス ロジックに固有のデータ値を選択し、このカスタム データセットで同期プロセスを提供する必要があるアプリケーションに役立ちます。 たとえば、レプリケーション プロセスで重複するキー違反が発生した場合、ビジネス ロジック ハンドラーは、キーが競合しなくなった新しいバージョンのデータ変更を提供できます。 パブリッシャーとサブスクライバーで行われた変更はデータベースに保持され、レプリケーション プロセスは失敗した挿入を削除で補う必要はありません。

ビジネス ロジック ハンドラーの展開シナリオ

ビジネス ロジック ハンドラーは、次の場合にデプロイできます。

  • ディストリビューター。 ビジネス ロジックがディストリビューターで実行されるように、プッシュ サブスクリプションを使用します。

  • サブスクライバー。 ビジネス ロジックがサブスクライバーで実行されるように、プル サブスクリプションを使用します。

  • Web 同期を使用する場合のインターネット インフォメーション サービス (IIS) サーバー。 Web 同期と同期されたプル サブスクリプションを使用すると、ビジネス ロジック ハンドラーが IIS サーバーで実行されます。

こちらもご覧ください

マージ レプリケーション
パブリケーションを購読する
データの同期
マージ レプリケーションの Web 同期