次の方法で共有


IEventProvider.Run Method

イベント プロバイダをアクティブにして、イベントの収集を開始します。

名前空間: Microsoft.SqlServer.NotificationServices
アセンブリ: Microsoft.SqlServer.NotificationServices (microsoft.sqlserver.notificationservices.dll 内)

構文

'宣言
Function Run As Boolean
bool Run ()
bool Run ()
boolean Run ()
function Run () : boolean

戻り値

イベント プロバイダが正常に動作している場合は true、イベント プロバイダが正常に動作していない場合、およびプロバイダ ホストが Terminate メソッドを呼び出す必要がある場合は false になる、ブール値です。

解説

プロバイダ ホストはこのメソッドを呼び出して、連続するイベント プロバイダにイベント収集を開始するように指示します。

プロバイダ ホストは、Notification Services インスタンスの起動時に、連続するイベント プロバイダを開始します。アプリケーションがアクティブになっている間、これらのイベント プロバイダは継続して動作します。インスタンスが起動すると、プロバイダ ホストは、連続するイベント プロバイダの Initialize メソッドと Run メソッドを 1 回だけ呼び出します。連続するイベント プロバイダは、いったん起動されると、Terminate メソッドが呼び出されるまで、イベントの実行および送信を行います。

イベント プロバイダは、プロバイダ ホストによって割り当てられた初期スレッドを使用して、ADF で設定されたタイムアウト時間 (既定値は 5 分) 内にRun メソッドを完了する必要があります。コールバック関数を使用するか、または 1 つ以上の別のスレッドでイベントを収集および送信するようにイベント プロバイダをプログラムする必要があります。複数のスレッドを並行して実行する場合、かつアプリケーションでイベントの順序が重要な場合、複数のスレッドを同期して、イベントを作成した順序でイベントがデータベースに送信されるようにしてください。

連続するイベント プロバイダは、Run メソッドから false を返して、異常が発生し、実行を継続しないことをプロバイダ ホストに知らせることができます。連続するイベント プロバイダが既に Run の呼び出しを完了し、別のスレッドでイベントを送信中である場合は、異常が発生したことをプロバイダ ホストに通知するために StopHandler デリゲートを使用する必要があります。このデリゲートは、Initialize メソッドの引数としてイベント プロバイダに渡されるため、イベント プロバイダは、処理を終了する必要がある場合に、このデリゲートを起動することができます。

ホストされたイベント プロバイダは、自身の例外をキャッチして処理する必要があります。例外が未処理の場合、プロバイダ ホストは、その未処理エラーをログに記録し、そのイベント プロバイダで Terminate メソッドを起動します。

使用例

Run メソッドを実装する方法の例については、IEventProvider のトピックを参照してください。

スレッド セーフ

この型の public static (Microsoft Visual Basic では共有 ) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。

プラットフォーム

開発プラットフォーム

サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

対象プラットフォーム

サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

参照

関連項目

IEventProvider Interface
IEventProvider Members
Microsoft.SqlServer.NotificationServices Namespace