다음을 통해 공유


관리 이벤트 전송 API 사용

이벤트를 개별 항목으로 제공할 수 있는 모든 이벤트 원본으로 작업할 때 사용자 지정 이벤트 공급자에서 EventCollectorEvent 클래스를 사용할 수 있습니다. 이러한 클래스는 Microsoft.SqlServer.NotificationServices 네임스페이스에서 찾을 수 있습니다.

EventCollector 개체

EventCollector 개체는 이벤트를 수집한 후 Notification Services 응용 프로그램으로 이벤트 일괄 처리를 전송합니다. EventCollector 개체를 만들 때는 응용 프로그램 및 이벤트 공급자 이름으로 초기화합니다.

Event 개체

Event 개체는 단일 이벤트에 대한 데이터를 캡슐화합니다. Event 개체를 만들 때는 응용 프로그램 및 이벤트 클래스 이름으로 해당 이벤트를 초기화한 후 이벤트 필드 값을 제공합니다. Event 개체의 필드는 이벤트 클래스 스키마에 의해 정의됩니다.

[!참고] Event 개체는 초기화하지 않고 만들 수 있습니다. 따라서 Notification Services 응용 프로그램에 대한 참조가 없는 "연결이 끊어진" Event 개체를 만들 수 있습니다. 이 기술을 사용하기 위해서는 개발 시에 이벤트 클래스 이름과 이벤트 필드 이름을 알아야 합니다.

만들려는 각 이벤트 레코드에 대해 Event 개체를 하나 만들고 데이터를 채운 후 전송합니다. EventCollector 개체에 이벤트를 쓴 후 Event 개체를 다시 사용할 수 있습니다.

이벤트 쓰기 및 주석 지정

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 개체 예

이 예에서는 NSApplicationEventClassEvent 개체를 초기화하지 않고 이벤트를 정의하는 방법을 보여 줍니다.

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

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

참고 항목

개념

호스팅된 이벤트 공급자 개발
호스팅되지 않은 이벤트 공급자 개발

관련 자료

사용자 지정 이벤트 공급자 개발

도움말 및 정보

SQL Server 2005 지원 받기