マネージ イベント送信 API の使用
イベントを個別のアイテムとして提供するイベント ソースを処理する場合、カスタム イベント プロバイダで EventCollector クラスおよび Event クラスを使用できます。これらのクラスは、Microsoft.SqlServer.NotificationServices 名前空間に存在します。
EventCollector オブジェクト
EventCollector オブジェクトは、イベントを収集し、イベント バッチを Notification Services アプリケーションに送信します。EventCollector オブジェクトを作成するときは、アプリケーション名とイベント プロバイダ名で初期化します。
Event オブジェクト
Event オブジェクトは、1 つのイベントにデータをカプセル化します。Event オブジェクトを作成するときは、アプリケーション名とイベント クラス名でイベントを初期化し、イベント フィールドに値を指定します。Event オブジェクトのフィールドは、イベント クラスのスキーマによって定義されます。
メモ : |
---|
Event オブジェクトは、初期化せずに作成することもできます。これにより、Notification Services アプリケーションへの参照がない、切断された Event オブジェクトを作成できます。この方法を使用するには、開発時に、イベント クラス名とイベント フィールド名を知っている必要があります。 |
作成するイベント レコードごとに、1 つの Event オブジェクトを作成し、データを設定して送信します。Event オブジェクトは、EventCollector オブジェクトにイベントを書き込んだ後で再利用できます。
イベントの書き込みおよびコミット
Event オブジェクトを作成してイベント データを設定したら、Write メソッドを使用して EventCollector オブジェクトに追加します。
EventCollector オブジェクトでは、Abort メソッドも使用できます。このメソッドは、現在のイベント バッチを破棄する場合に呼び出します。
EventCollector オブジェクトと Event オブジェクトの例
この例では、次の名前空間を使用します。
- System
- Microsoft.SqlServer.NotificationServices
string instanceName = "Tutorial";
string applicationName = "Weather";
string eventClassName = "WeatherEvents";
string eventProviderName = "WeatherSPs";
// Create an NSInstance object.
NSInstance testInstance = new NSInstance(instanceName);
// Create an NSApplication object.
NSApplication testApplication =
new NSApplication(testInstance, applicationName);
// Create an EventCollector object.
EventCollector testEventCollector =
new EventCollector(testApplication, eventProviderName);
// Create and define an Event object.
Event evt = new Event(testApplication, eventClassName);
evt["City"] = "Seattle";
evt["Date"] = DateTime.Now;
evt["Low"] = 40;
evt["High"] = 50;
evt["Forecast"] = "Cloudy";
// Write the event to the event collector's batch
testEventCollector.Write(evt);
// Commit the event batch to the application database.
testEventCollector.Commit();
切断された Event オブジェクトの例
この例では、Event オブジェクトを NSApplication および EventClass で初期化せずにイベントを定義する方法を示します。
// Initialize the Event object.
Event testEvent = new Event();
testEvent.EventClassName = "StockEvents";
// Use the Event object.
testEvent["StockSymbol"] = "AWKS";
testEvent["StockPrice"] = "58.35";
参照
概念
ホストされるイベント プロバイダの開発
ホストされないイベント プロバイダの開発