관리 이벤트 전송 API 사용
이벤트를 개별 항목으로 제공할 수 있는 모든 이벤트 원본으로 작업할 때 사용자 지정 이벤트 공급자에서 EventCollector 및 Event 클래스를 사용할 수 있습니다. 이러한 클래스는 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 개체 예
이 예에서는 NSApplication 및 EventClass로 Event 개체를 초기화하지 않고 이벤트를 정의하는 방법을 보여 줍니다.
// Initialize the Event object.
Event testEvent = new Event();
testEvent.EventClassName = "StockEvents";
// Use the Event object.
testEvent["StockSymbol"] = "AWKS";
testEvent["StockPrice"] = "58.35";
참고 항목
개념
호스팅된 이벤트 공급자 개발
호스팅되지 않은 이벤트 공급자 개발