10단원: 구독자 및 구독 추가
이 단원에서는 두 개의 VBScript 파일을 검토하여 Notification Services에 구독자와 구독 데이터를 전송하는 방법을 알아본 다음 스크립트를 실행하여 구독자 데이터를 인스턴스 데이터베이스에 추가하고 구독 데이터를 응용 프로그램 데이터베이스에 추가합니다.
구독자 및 구독 관리
Notification Services는 구독자가 만든 구독을 기반으로 알림을 생성합니다. 이러한 구독자는 사람일 수도 있고 다른 응용 프로그램일 수도 있습니다. Notification Services 응용 프로그램을 개발하는 동안 구독자가 해당 구독을 관리할 수 있도록 하나 이상의 인터페이스를 개발합니다.
구독자 데이터에는 구독자 ID와 전자 메일 주소, 텍스트 메시징 주소 등 구독자의 장치에 대한 정보가 포함됩니다. 각 구독자는 여러 장치를 가질 수 있습니다.
구독자 데이터는 인스턴스 데이터베이스 개체에 저장됩니다. 하나의 Notification Services 인스턴스로 호스팅되는 모든 응용 프로그램은 동일한 구독자 데이터를 사용합니다.
구독 데이터는 일기 예보에 해당되는 도시, 알림을 받는 장치 등 구독자가 원하는 응용 프로그램 정보를 지정합니다. 요일, 시간 또는 메시지 중요도 등의 조건부 논리에 따라 구독자 장치를 선택하기 위해 응용 프로그램에 기본 제공 논리가 있을 수도 있습니다.
구독 데이터는 응용 프로그램 데이터베이스에 저장됩니다. 응용 프로그램마다 고유한 구독 데이터가 있습니다.
대부분의 Notification Services 응용 프로그램은 구독자가 구독자 및 구독 데이터를 관리하는 데 사용할 수 있는 인터페이스를 제공합니다. 이러한 인터페이스는 주로 ASP.NET 응용 프로그램이지만 Windows 응용 프로그램, 웹 서비스 또는 Notification Services 구독 관리 개체를 사용하여 개발하려는 다른 인터페이스일 수도 있습니다. 자세한 내용은 구독 관리 인터페이스 개발을 참조하십시오.
날씨 구독 관리 인터페이스 검토
Weather 응용 프로그램은 간단히 두 개의 VBScript 파일을 사용하여 구독자 및 구독 데이터를 대량 로드합니다. 이 기능은 구독자와 구독을 관리하는 일반적인 방법이 아니지만 알림 응용 프로그램을 표준화하고 테스트하는 데 유용합니다.
이 스크립트는 COM 구성 요소에서 Notification Services 인터페이스를 호출할 수 있는 방법을 보여 줍니다. Notification Services는 관리 코드(C#)로 작성되며 관리 코드와 비관리 코드 모두에서 액세스할 수 있도록 디자인됩니다.
AddSubscribers.vbs
AddSubscribers.vbs라는 첫 번째 VBScript는 Weather 인스턴스에 구독자 3개를 추가합니다.
먼저 NSInstance 개체와 Subscriber 개체를 만듭니다.
Dim nsInstance, nsSubscriber, nsSubscriberDevice
' Create and initialize NSInstance object.
Set nsInstance = WScript.CreateObject("Microsoft.SqlServer.NotificationServices.NSInstance")
nsInstance.Initialize "Tutorial"
' Create and initialize NSSubscriber object.
Set nsSubscriber = WScript.CreateObject("Microsoft.SqlServer.NotificationServices.Subscriber")
nsSubscriber.Initialize (nsInstance)
그런 다음 Subscriber 개체를 사용하여 3개의 구독자를 추가합니다.
' Add subscribers.
nsSubscriber.SubscriberId = "stephanie"
nsSubscriber.Add
nsSubscriber.SubscriberId = "david"
nsSubscriber.Add
nsSubscriber.SubscriberId = "richard"
nsSubscriber.Add
마지막으로 SubscriberDevice 개체를 만들고 각 구독자에 구독자 장치를 추가합니다.
' Create NSSubscriberDevice object.
Set nsSubscriberDevice = WScript.CreateObject("Microsoft.SqlServer.NotificationServices.SubscriberDevice")
nsSubscriberDevice.Initialize (nsInstance)
' DeviceName must match subscriptions that use this device
nsSubscriberDevice.DeviceName = "myDevice"
' Add a file device for each subscriber
nsSubscriberDevice.SubscriberId = "stephanie"
nsSubscriberDevice.DeviceTypeName = "File"
nsSubscriberDevice.DeviceAddress = "stephanie@adventure-works.com"
nsSubscriberDevice.DeliveryChannelName = "FileChannel"
nsSubscriberDevice.Add
nsSubscriberDevice.SubscriberId = "david"
nsSubscriberDevice.DeviceTypeName = "File"
nsSubscriberDevice.DeviceAddress = "david@adventure-works.com"
nsSubscriberDevice.DeliveryChannelName = "FileChannel"
nsSubscriberDevice.Add
nsSubscriberDevice.SubscriberId = "richard"
nsSubscriberDevice.DeviceTypeName = "File"
nsSubscriberDevice.DeviceAddress = "richard@adventure-works.com"
nsSubscriberDevice.DeliveryChannelName = "FileChannel"
nsSubscriberDevice.Add
AddSubscriptions.vbs
AddSubscriptions.vbs라는 다른 VBScript는 3개의 구독자에 각각 하나씩 구독을 추가합니다.
먼저 NSInstance, NSApplication 및 Subscription 개체를 만들어 초기화합니다.
Dim nsInstance, nsApplication, nsSubscription
' Create NSInstance object.
Set nsInstance = WScript.CreateObject("Microsoft.SqlServer.NotificationServices.NSInstance")
nsInstance.Initialize "Tutorial"
' Create NSApplication object.
Set nsApplication = WScript.CreateObject("Microsoft.SqlServer.NotificationServices.NSApplication")
nsApplication.Initialize (nsInstance), "Weather"
' Create Subscription object.
Set nsSubscription = WScript.CreateObject("Microsoft.SqlServer.NotificationServices.Subscription")
nsSubscription.Initialize (nsApplication), "WeatherCity"
그런 다음 로드하는 모든 구독에 공용 속성을 설정합니다.
nsSubscription.SetFieldValue "DeviceName", "myDevice"
nsSubscription.SetFieldValue "SubscriberLocale", "en-us"
마지막으로 구독을 추가합니다.
nsSubscription.SubscriberId = "stephanie"
nsSubscription.SetFieldValue "City", "Seattle"
nsSubscription.Add
nsSubscription.SubscriberId = "david"
nsSubscription.SetFieldValue "City", "Orlando"
nsSubscription.Add
nsSubscription.SubscriberId = "richard"
nsSubscription.SetFieldValue "City", "Seattle"
nsSubscription.Add
구독자 및 구독 데이터 로드
스크립트에 대해 배웠으므로 이제 이 스크립트를 사용하여 Tutorial 인스턴스에 구독자 데이터를 로드하고 Weather 응용 프로그램에 구독 데이터를 로드합니다.
구독자 및 구독 데이터를 로드하려면
Windows 탐색기를 사용하여 tutorial Weather 폴더를 찾습니다. 이 폴더의 기본 위치는 C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\tutorial\Weather입니다.
AddSubscribers.vbs를 두 번 클릭합니다.
"구독자를 추가했습니다"라는 메시지가 나타나야 합니다.
AddSubscriptions.vbs를 두 번 클릭합니다.
"구독을 추가했습니다"라는 메시지가 나타나야 합니다.
[!참고] SQL Server 2005 Notification Services를 설치한 다음에 Notification Services 2.0을 설치하면 COM interop에 잘못된 버전의 어셈블리가 등록되므로 이 스크립트가 작동하지 않습니다. 자세한 내용은 방법: COM Interop에 대해 Core Notification Services 어셈블리 등록을 참조하십시오.
구독자 데이터 보기
응용 프로그램에 구독자 데이터를 추가한 후에 ViewSubscribersAndDevices.sql 쿼리를 사용하여 구독자 및 장치 정보를 볼 수 있습니다.
구독자 데이터를 보려면
솔루션 탐색기에서 Weather를 확장하고 쿼리를 확장한 다음 ViewSubscribersAndDevices.sql을 두 번 클릭합니다.
F5 키를 눌러 쿼리를 실행합니다.
3개의 구독자에 대한 구독자 및 장치 정보가 표시되어야 합니다.
ViewSubscribersAndDevices.sql을 닫습니다.
구독 데이터 보기
응용 프로그램에 구독 데이터를 추가한 후에 ViewSubscriptions.sql 쿼리를 사용하여 구독 정보를 볼 수 있습니다.
구독 데이터를 보려면
솔루션 탐색기에서 ViewSubscriptions.sql을 두 번 클릭합니다.
F5 키를 눌러 쿼리를 실행합니다.
구독자별로 하나씩 3개의 구독이 표시되어야 합니다.
ViewSubscriptions.sql을 닫습니다.
다음 단원
참고 항목
개념
관련 자료
구독 관리 인터페이스 개발
알림 솔루션 빌드
SQL Server Notification Services 소개