サブスクライバ モニタのサンプル
Sales Orders サンプルのソリューションには、SubscriberMonitor と SubscriberMonitorUtility という追加プロジェクトが含まれています。どちらのプロジェクトでも、レプリケーション管理オブジェクト (RMO) のレプリケーション監視サポートを使用し、ローカル サブスクライバのサブスクリプションの状態を監視する機能を備えています。SubscriberMonitor.dll アセンブリは、サブスクライバで実行される他のアプリケーションからアクセスできます。SubscriberMonitorUtility.exe を直接実行すると、サブスクライバ モニタが表示されます。
サブスクライバ モニタの使用
サブスクライバ モニタ ユーティリティのサンプルをビルドして実行するには
SQL Server 2005 のレプリケーション サンプルがインストールされていることを確認します。詳細については、「サンプルのインストール」を参照してください。
サブスクライバ モニタのサンプルがインストールされている場所に移動します。このサンプルの既定のインストール先は、C:\Program Files\Microsoft SQL Server\90\Samples\Replication\Merge\CS\SubscriberMonitorUtility です。
Visual Studio 2005 で SubscriberMonitorUtility.sln ソリューション ファイルを開きます。
ソリューションをビルドします。
ビルド先の場所から SubscriberMonitorUtility.exe を実行します。既定のビルド先は、\bin\debug です。
[Select Subscription to Monitor] ダイアログ ボックスで、[Local Server Name] ドロップダウン ボックスから SQL Server インスタンスを選択します。
[Available Subscriptions] ドロップダウン リスト ボックスで、監視するサブスクリプションを選択します。
(省略可) サブスクリプションのプロパティを変更するには、[編集] ボタンをクリックします。
[接続] をクリックします。
[Merge Sessions] ツリー ビューでマージ エージェント セッションを選択します。
(省略可) [更新] ボタンをクリックして、セッション一覧を更新します。
プログラムでサブスクライバ モニタを起動するには
サブスクライバ モニタを起動する Visual Studio 2005 プロジェクトを開きます。
SubscriberMonitor.dll アセンブリに参照を追加します。このアセンブリは、SubscriberMonitorUtility.sln ソリューションまたは SalesOrders.sln ソリューションの一部としてビルドされています。Sales Orders サンプルのビルドの詳細については、「Sales Orders サンプル (マージ レプリケーション用)」を参照してください。
(省略可) Microsoft.Samples.SqlServer 名前空間に、using ディレクティブ (C#) または Imports ステートメント (Visual Basic .NET) を追加します。
コード内で、次のいずれかの方法で SubscriberMonitor クラスのインスタンスを作成します。
- サブスクライバ名と、モニタへのサブスクリプションを表す SubscriberSubscription オブジェクトを subscription パラメータに渡します。
- サブスクリプションを定義する subscriber、publication、publisher、publicationDb、subscriber、subscriptionDb の各パラメータのコンストラクタに値を渡します。
実装の詳細
サブスクライバ モニタは、Microsoft Windows .NET Framework 2.0 に基づく Windows フォーム アプリケーションです。このアプリケーションは SubscriberMonitorUtility.exe を実行することにより起動します。この実行可能ファイルにより、SubscriberMonitor クラスのインスタンスが作成され、モニタへのサブスクリプションを選択するためのダイアログ ボックスが表示された後、Windows フォームが表示されます。また、SubscriberMonitor クラスはサンプル アプリケーションからインスタンス化できます。実装される 2 つのコンストラクタ メソッドを使用して、新しいオブジェクトの作成中にサブスクリプション プロパティを渡すことができます。このプロパティは、オブジェクトの作成後にも設定できます。
既定のコンストラクタを使用すると、モニタへのサブスクリプションだけでなくローカル コンピュータ上のサブスクライバ インスタンスも選択できるダイアログ ボックスが表示されます。[Local Server Name] ドロップダウン リストには、ServerInstances プロパティによって返された、使用可能なインスタンス名が表示されます。サーバー インスタンスを選択している場合、[Available Subscriptions] ドロップダウン リスト ボックスには、EnumSubscriberSubscriptions メソッドを呼び出して返されたサブスクリプションが表示されます。
サンプルでは MergeSubscriberMonitor クラスを使用して、サブスクライバからサブスクリプション情報を取得し、その情報をフォームに表示します。フォームが読み込まれるとき、GetSessionsSummary メソッドは、直前の最大 5 個のマージ エージェント セッションを表す MergeSessionSummary オブジェクトの配列を返します。この MergeSessionSummary オブジェクトは、[Merge Sessions]TreeView コントロールに入力されます。セッションの 1 つを選択すると、そのセッションの概要が表示されます。また、GetSessionDetails メソッドにより返される MergeSessionDetail オブジェクトの配列が、[Articles processed in session]ListView コントロールに表示されます。
MergeSubscriberMonitor クラスを使用したプログラミングの詳細については、「レプリケーションをプログラムから監視する方法 (RMO プログラミング)」を参照してください。