次の方法で共有


IScheduledEventProvider.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 を返します。それ以外の場合、このメソッドは false を返します。戻り値が false の場合は、イベント プロバイダが無効になり、イベント プロバイダ ホストはイベント プロバイダが有効になるまで Run メソッドを呼び出しません。

通知アプリケーションが起動されると、プロバイダ ホストは、定期的なイベント プロバイダで Initialize メソッドを呼び出します。プロバイダ ホストは、このイベント プロバイダのスケジュール情報を読み取り、アプリケーション定義で設定されたスケジュールどおりにそのイベント プロバイダの Run メソッドを呼び出します。

プロバイダ ホストは、Initialize の呼び出しが正常に終了した後、定期的な間隔ごとに Run を呼び出します。定期的なイベント プロバイダは、5 分以内、または次の定期的な間隔に達する前 (どちらか早い方) に、Run の呼び出しを完了する必要があります。イベント コレクション ルーチンがその時間内に完了できない可能性がある場合は、イベント プロバイダをプログラミングして、コールバック関数を使用するか、または 1 つ以上の別のスレッドでイベントを収集および送信する必要があります。複数のスレッドを並行して実行する場合、かつアプリケーションでイベントの順序が重要な場合、複数のスレッドを同期して、イベントを作成した順序でイベントがデータベースに送信されるようにしてください。

次の定期的な間隔の開始時にイベント プロバイダが処理を完了していない場合、プロバイダ ホストは、次の定期的な間隔まで待機して、Run を再度呼び出します。呼び出しが失われるのを避けるには、定期的なイベント プロバイダが、常に時間どおりに Run メソッドの呼び出しを完了する必要があります。イベント プロバイダのスケジュールは、イベント プロバイダが時間内に処理を完了して呼び出しを終了できるように設定してください。

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

例外が未処理の場合、プロバイダ ホストは、その未処理エラーをログに記録し、そのイベント プロバイダで Initialize メソッドを起動します。

使用例

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

スレッド セーフ

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

プラットフォーム

開発プラットフォーム

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

対象プラットフォーム

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

参照

関連項目

IScheduledEventProvider Interface
IScheduledEventProvider Members
Microsoft.SqlServer.NotificationServices Namespace