トランザクション レプリケーションの待機時間を計測して接続を検証する方法 (RMO プログラミング)
トランザクション レプリケーションの場合、サーバーが接続されているかどうかを確認できること、および待機時間を計測できることは重要です。待機時間を計測するには、トレーサ トークンを使用します。待機時間は、パブリッシャで行われた変更がサブスクライバに反映されるまでの経過時間です。詳細については、「トランザクション レプリケーションの待機時間の計測と接続の検証」を参照してください。レプリケーション管理オブジェクト (RMO) を使用して、プログラムで情報を取得できます。
トレーサ トークンをトランザクション パブリケーションに通知するには
ServerConnection クラスを使用して、パブリッシャへの接続を作成します。
TransPublication クラスのインスタンスを作成します。
パブリケーションの Name プロパティおよび DatabaseName プロパティを設定し、ConnectionContext プロパティに手順 1. で作成した接続を設定します。
LoadProperties メソッドを呼び出して、オブジェクトのプロパティを取得します。このメソッドが false を返す場合、手順 3. でパブリケーション プロパティを不適切に設定したか、パブリケーションが存在していません。
PostTracerToken メソッドを呼び出します。このメソッドは、トレーサ トークンをパブリケーションのトランザクション ログに挿入します。
待機時間を決定し、トランザクション パブリケーションの接続を確認するには
ServerConnection クラスを使用して、ディストリビュータへの接続を作成します。
PublicationMonitor クラスのインスタンスを作成します。
Name、DistributionDBName、PublisherName、および PublicationDBName の各プロパティを設定し、ConnectionContext プロパティに手順 1. で作成した接続を設定します。
LoadProperties メソッドを呼び出して、オブジェクトのプロパティを取得します。このメソッドが false を返す場合は、手順 3. のパブリケーション モニタ プロパティが正しく定義されていないか、またはパブリケーションが存在していません。
EnumTracerTokens メソッドを呼び出します。返された ArrayList オブジェクトを TracerToken オブジェクトの配列にキャストします。
EnumTracerTokenHistory メソッドを呼び出します。手順 5. のトレーサ トークンに TracerTokenID()()()() の値を渡します。これにより、DataSet オブジェクトとして選択したトレーサ トークンの待機時間情報が返されます。すべてのトレーサ トークン情報が返された場合、パブリッシャとディストリビュータとの接続、およびディストリビュータとサブスクライバの接続が両方とも存在し、レプリケーション トポロジは機能しています。
トレーサ トークンを削除するには
ServerConnection クラスを使用して、ディストリビュータへの接続を作成します。
PublicationMonitor クラスのインスタンスを作成します。
Name、DistributionDBName、PublisherName、および PublicationDBName の各プロパティを設定し、ConnectionContext プロパティに手順 1. で作成した接続を設定します。
LoadProperties メソッドを呼び出して、オブジェクトのプロパティを取得します。このメソッドが false を返す場合は、手順 3. のパブリケーション モニタ プロパティが正しく定義されていないか、またはパブリケーションが存在していません。
EnumTracerTokens メソッドを呼び出します。返された ArrayList オブジェクトを TracerToken オブジェクトの配列にキャストします。
CleanUpTracerTokenHistory メソッドを呼び出します。次の値のいずれかを渡します。
手順 5. のトレーサ トークンの TracerTokenID()()()()。これにより、選択したトークンの情報が削除されます。
DateTime オブジェクト。これにより、指定した日時より古いすべてのトークンの情報が削除されます。