次の方法で共有


マージ同期中のビジネス ロジックの実行

適用対象: SQL Server

ビジネス ロジック ハンドラー フレームワークを使用すると、マネージド コードのアセンブリを記述して、マージ同期処理中に呼び出すことができます。 このアセンブリには、データの変更、競合、およびエラーなど、同期中に発生するさまざまな状況に対処するためのビジネス ロジックを記述できます。 ビジネス ロジック ハンドラー フレームワークには単純なプログラミング モデルが用意されており、マージ処理によってアセンブリに提供されるデータは ADO.NET データセットの形式になっています。このため、専用インターフェイスについての知識ではなく ADO.NET についての知識を活用できます。 ビジネス ロジック ハンドラーのプログラミングの詳細については、以下のトピックを参照してください。

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

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

  • カスタム変更処理

  • カスタム競合解決

  • カスタム エラー解決

Note

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

カスタム変更処理

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

  • データの拒否

    特定のサブスクライバーからの変更または特定のサブスクライバーへの変更を反映したくないアプリケーションに役立ちます。 たとえば、管理者は、サブスクライバーのパーティション内に属さない挿入をフィルター処理によって拒否したり、場合によってはサブスクライバーで実行された削除を拒否することができます。 別の例としては、在庫が不足している場合に、サブスクライバーで入力された注文をアプリケーションが拒否できます。

  • データの受け入れ

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

  • カスタム データの適用

    これは、特定のデータの値または操作をオーバーライドする必要があるアプリケーションに役立ちます。 たとえば、アプリケーションでは、行の削除を、その行の status 列を "削除" の値に設定するという特殊な更新方法に変更して、その削除を実行するクライアントの ID を追跡することができます。 これは、監査やワークフローにも役立ちます。

カスタム競合解決

マージ レプリケーションには、競合の検出機能と解決機能が用意されており、既定の解決方法を受け入れるか、競合に対するカスタム解決方法を選択することができます。 詳細については、「 マージ レプリケーションの競合検出および解決の詳細」を参照してください。 ビジネス ロジック ハンドラーは、競合しているデータの変更処理中に呼び出すことができ、次の 2 つの操作のいずれかを実行できます。

  • 既定の解決の受け入れ

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

  • カスタム解決の実行

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

カスタム エラー解決

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

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

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

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

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

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

ビジネス ロジック ハンドラーは、以下の場所に配置できます。

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

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

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