ビジネス ロジック ハンドラをデバッグする方法 (レプリケーション プログラミング)

マージ サブスクリプションの同期時にカスタム ビジネス ロジックを呼び出すには、ビジネス ロジック ハンドラを使用します。詳細については、「マージ同期中のビジネス ロジックの実行」を参照してください。

マージ レプリケーション競合回避モジュール (replrec.dll) は、ビジネス ロジックを含むマネージ コード アセンブリを呼び出します。ほとんどの場合、replrec.dll とカスタム ビジネス ロジックは、マージ エージェントが実行されるコンピュータ (プル サブスクリプションの場合はサブスクライバ、プッシュ サブスクリプションの場合はディストリビュータ) で実行されます。Web 同期の場合、または SQL Server Compact 3.5 SP2 サブスクライバの場合、競合回避モジュールとカスタム ビジネス ロジックは Web サーバーで実行されます。

ローカル コンピュータでビジネス ロジック ハンドラをデバッグするには

  1. パブリッシングとディストリビューションを構成し、パブリケーションを作成し、パブリケーションへのサブスクリプションを作成します。詳細については、「パブリッシングとディストリビューションの構成、変更、および無効化 (レプリケーション)」および「パブリケーションとアーティクルの作成、変更、および削除 (レプリケーション)」を参照してください。

  2. ビジネス ロジック ハンドラを作成して登録します。詳細については、「マージ アーティクルにビジネス ロジック ハンドラを実装する方法 (RMO プログラミング)」を参照してください。

  3. Microsoft Visual Studio で、マージ エージェントをプログラムで同期的に起動するレプリケーション管理オブジェクト (RMO) プロジェクトを作成します。詳細については、「プル サブスクリプションを同期する方法 (RMO プログラミング)」を参照してください。

  4. ビジネス ロジック ハンドラ コードのデバッグ対象のメソッドまたはクラス コンストラクタ内にブレークポイントを設定します。ビジネス ロジック ハンドラで実装可能なメソッドの詳細については、BusinessLogicModule メソッドのトピックを参照してください。

  5. ビジネス ロジック ハンドラをデバッグ モードでビルドし、手順 1. で登録した場所にアセンブリとデバッグ シンボル ファイル (.pdb) を配置します。

    注意

    デバッグを簡素化するには、ビジネス ロジック ハンドラ プロジェクトとサブスクリプションを同期するプロジェクトの両方を含む単一の Visual Studio .NET ソリューションを作成します。その場合は、同期プロジェクトをスタートアップ プロジェクトとして設定し、デバッグ時に手順 1. で登録した場所にビジネス ロジック アセンブリを配置するようにビルド環境を構成します。

  6. サブスクリプション データベースまたはパブリケーション データベースに対して、挿入、更新、削除のいずれかのコマンドを実行します。コマンドと実行場所は、デバッグ対象のメソッドによって異なります。

  7. 手順 3. のプロジェクトをデバッグ モードで起動し、サブスクリプションを同期します。

  8. 他のブレークポイントを設定しておらず、適切なコマンドがレプリケートされたと仮定すると、ビジネス ロジック ハンドラ内のブレークポイントに達したときに実行が停止します。

Web 同期を使用する Web サーバーまたは SQL Server Compact サブスクライバに対してビジネス ロジック ハンドラをデバッグするには

  1. パブリッシングとディストリビューションを構成し、パブリケーションを作成し、パブリケーションへのプル サブスクリプションを作成します。パブリケーションでは、Web 同期または SQL Server Compact 3.5 SP2 サブスクライバをサポートする必要があります。詳細については、「設計と実装 : チュートリアル (レプリケーション)」または「Replication and RDA Tasks (SQL Server Compact)」を参照してください。

  2. ビジネス ロジック ハンドラを作成して登録します。詳細については、「マージ アーティクルにビジネス ロジック ハンドラを実装する方法 (RMO プログラミング)」を参照してください。

  3. ビジネス ロジック ハンドラ コードのデバッグ対象のメソッドまたはクラス コンストラクタ内にブレークポイントを設定します。ビジネス ロジック ハンドラで実装可能なメソッドに詳細については、BusinessLogicModule メソッドのトピックを参照してください。

  4. ビジネス ロジック ハンドラをデバッグ モードでビルドし、手順 1. で登録した場所にある Web サーバーにアセンブリとデバッグ シンボル ファイル (.pdb) を配置します。

    注意

    アセンブリが使用中であるためにビジネス ロジック ハンドラのビルドに失敗した場合は、Web サーバーでコマンド プロンプトからコマンド iisreset を入力し、Web サーバーをリセットします。

  5. Web 同期を有効にしてサブスクリプションを同期します。同期中に、Web サーバーは登録されたアセンブリを読み込みます。

  6. Visual Studio .NET デバッガを使用し、Web サーバー上の以下のプロセスのいずれかにアタッチします。

    • w3wp.exe - Windows Server 2003。

    • inetinfo.exe - Windows 2000 および Windows XP。

  7. [出力] ウィンドウで、デバッグ出力を確認し、登録されたアセンブリのシンボルが正しく読み込まれたことを確認します。シンボルが読み込まれていない場合は、適切な .pdb ファイルが手順 4. でコピーされたことを確認し、手順 5. を繰り返します。

  8. サブスクリプションまたはパブリケーション データベースに対して、挿入、更新、削除のいずれかのコマンドを実行します。コマンドと実行場所は、デバッグ対象のメソッドによって異なります。

  9. Visual Studio デバッガを使用し、w3wp.exe プロセスにアタッチします。

  10. Web 同期を使用して、サブスクリプションを再び同期します。

  11. 他のブレークポイントを設定しておらず、適切なコマンドがレプリケートされたと仮定すると、ビジネス ロジック ハンドラ内のブレークポイントに達したときに実行が停止します。