第 10 課:加入訂閱者和訂閱
在這一課,您會檢閱兩個 VBScript 檔,了解它們如何提交訂閱者和訂閱資料給 Notification Services,然後您會執行指令碼,將訂閱者資料加入至執行個體資料庫中,以及將訂閱資料加入應用程式資料庫中。
訂閱者和訂閱管理
Notification Services 依據訂閱者建立的訂閱來產生通知。這些訂閱者可能是人或其他應用程式。在開發 Notification Services 應用程式時,您會開發一或多個介面,使訂閱者能夠管理其訂閱。
訂閱者資料包括訂閱者識別碼和關於訂閱者裝置的資訊,例如電子郵件地址和文字傳訊地址。每一個訂閱者可以有多個裝置。
訂閱者資料是儲存在執行個體資料庫物件中。Notification Services 執行個體所主控的所有應用程式使用相同的訂閱者資料。
訂閱資料指定訂閱者感興趣的應用資訊 (例如天氣預測的縣 (市)) 以及由哪一個裝置接收通知。應用程式可具有內建邏輯,依據條件式邏輯選取訂閱者裝置,例如日期、時間或訊息重要性。
訂閱資料是儲存在應用程式資料庫中。每一個應用程式有它自己的訂閱資料。
大部分 Notification Services 應用程式提供介面,訂閱者可利用它來管理其訂閱者和訂閱資料。這通常是 ASP.NET 應用程式,但可以是 Windows 應用程式、Web 服務或任何您想要使用 Notification Services 訂閱管理物件來開發的其他介面。如需詳細資訊,請參閱<開發訂閱管理介面>。
檢閱 Weather 訂閱管理介面
為了簡單起見,Weather 應用程式使用兩個 VBScript 檔案,大量載入其訂閱者和訂閱資料。這並不是管理訂閱者和訂閱的一般方式,但對於原型化和測試通知應用程式很有幫助。
這些指令碼說明如何從 COM 元件呼叫 Notification Services 介面。Notification Services 是以 Managed 程式碼 (C#) 撰寫,它設計成可從 Managed 程式碼和 Unmanaged 程式碼存取。
AddSubscribers.vbs
第一個 VBScript 稱為 AddSubscribers.vbs,它將三個訂閱者加入 Weather 執行個體。
首先,建立 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 物件加入三個訂閱者:
' 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
另一個 VBScript 稱為 AddSubscriptions.vbs,它為這 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
載入訂閱者和訂閱資料
既然您已熟悉指令碼,可使用它們將訂閱者資料載入教學課程執行個體中,將訂閱資料載入 Weather 應用程式中。
若要載入訂閱者和訂閱資料
使用 [Windows 檔案總管],找出教學課程的 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 的核心 Notification Services 組件>。 |
檢視訂閱者資料
將訂閱者資料加入應用程式之後,您可以使用 ViewSubscribersAndDevices.sql 查詢來檢視訂閱者及裝置資訊。
若要檢視訂閱者資料
在 [方案總管] 中,依序展開 [Weather] 和 [查詢],然後按兩下 [ViewSubscribersAndDevices.sql]。
按 F5 執行查詢。
您應該會看到這 3 個訂閱者的訂閱者和裝置資訊。
關閉 [ViewSubscribersAndDevices.sql]。
檢視訂閱資料
將訂閱資料加入應用程式之後,您可以使用 ViewSubscriptions.sql 查詢來檢視訂閱資訊。
若要檢視訂閱資料
在 [方案總管] 中,按兩下 [ViewSubscriptions.sql]。
按 F5 執行查詢。
您應該會看到這 3 個訂閱,每一個訂閱者一個。
關閉 ViewSubscriptions.sql。
下一課
請參閱
概念
其他資源
開發訂閱管理介面
建立 Notification 解決方案
SQL Server Notification Services 簡介