Verwenden der verwalteten Ereignisübermittlungs-API

Sie können die Klassen EventCollector und Event in einem benutzerdefinierten Ereignisanbieter verwenden, wenn die verwendete Ereignisquelle Ereignisse als einzelne Elemente bereitstellen kann. Diese Klassen sind im Microsoft.SqlServer.NotificationServices-Namespace enthalten.

EventCollector-Objekt

Ein EventCollector-Objekt sammelt Ereignisse und übermittelt dann den Ereignisbatch an eine Notification Services-Anwendung. Beim Erstellen eines EventCollector-Objekts initialisieren Sie es mit einer Anwendung und einem Ereignisanbieternamen.

Event-Objekt

Ein Event-Objekt kapselt die Daten für ein einzelnes Ereignis. Beim Erstellen eines Event-Objekts initialisieren Sie das Ereignis mit einer Anwendung und einem Ereignisklassennamen und stellen dann Werte für die Ereignisfelder bereit. Die Felder des Event-Objekts werden durch das Ereignisklassenschema definiert.

ms171243.note(de-de,SQL.90).gifHinweis:
Sie können ein Event-Objekt erstellen, ohne es zu initialisieren. So können Sie ein "getrenntes" Event-Objekt erstellen, das nicht über einen Verweis auf eine Notification Services-Anwendung verfügt. Zum Verwenden dieser Technik müssen Sie den Ereignisklassennamen und die Ereignisfeldnamen zur Entwicklungszeit kennen.

Für jeden Ereignisdatensatz, den Sie erstellen möchten, erstellen Sie ein Event-Objekt, füllen es auf und übermitteln es. Sie können ein Event-Objekt wieder verwenden, nachdem Sie das Ereignis in das EventCollector-Objekt geschrieben haben.

Schreiben von Ereignissen und Ausführen eines Commits für Ereignisse

Nachdem Sie ein Event-Objekt erstellt und mit Ereignisdaten aufgefüllt haben, fügen Sie es einem EventCollector-Objekt hinzu. Dazu verwenden Sie die Write-Methode.

Das EventCollector-Objekt stellt außerdem eine Abort-Methode bereit. Rufen Sie diese Methode auf, um den aktuellen Ereignisbatch zu verwerfen.

EventCollector- und Event-Objekt (Beispiel)

In diesem Beispiel wird der folgende Namespace verwendet:

  • 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();

Getrenntes Event-Objekt (Beispiel)

Dieses Beispiel veranschaulicht, wie Sie ein Ereignis ohne Initialisieren des Event-Objekts mit einem NSApplication-Objekt und einem EventClass-Objekt definieren.

// Initialize the Event object.
Event testEvent = new Event();
testEvent.EventClassName = "StockEvents";

// Use the Event object.
testEvent["StockSymbol"] = "AWKS";
testEvent["StockPrice"] = "58.35";

Siehe auch

Konzepte

Entwickeln von gehosteten Ereignisanbietern
Entwickeln von nicht gehosteten Ereignisanbietern

Andere Ressourcen

Entwickeln eines benutzerdefinierten Ereignisanbieters

Hilfe und Informationen

Informationsquellen für SQL Server 2005