共用方式為


第 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 執行個體。

首先,建立 NSInstanceSubscriber 物件:

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 個訂閱者各加入一個訂閱。

首先,建立並初始化 NSInstanceNSApplicationSubscription 物件:

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 應用程式中。

若要載入訂閱者和訂閱資料

  1. 使用 [Windows 檔案總管],找出教學課程的 Weather 資料夾。這個資料夾的預設位置是 C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\tutorial\Weather。

  2. 按兩下 [AddSubscribers.vbs]。

    您應該會看到這則訊息:「已順利加入訂閱者。」

  3. 按兩下 [AddSubscriptions.vbs]。

    您應該會看到這則訊息:「已順利加入訂閱。」

ms167266.note(zh-tw,SQL.90).gif附註:
如果您在安裝 SQL Server 2005 Notification Services 之後安裝 Notification Services 2.0,則對 COM Interop 登錄的是組件的錯誤版本,且這些指令碼將沒有作用。如需詳細資訊,請參閱<如何:註冊 COM Interop 的核心 Notification Services 組件>。

檢視訂閱者資料

將訂閱者資料加入應用程式之後,您可以使用 ViewSubscribersAndDevices.sql 查詢來檢視訂閱者及裝置資訊。

若要檢視訂閱者資料

  1. 在 [方案總管] 中,依序展開 [Weather][查詢],然後按兩下 [ViewSubscribersAndDevices.sql]

  2. 按 F5 執行查詢。

    您應該會看到這 3 個訂閱者的訂閱者和裝置資訊。

  3. 關閉 [ViewSubscribersAndDevices.sql]。

檢視訂閱資料

將訂閱資料加入應用程式之後,您可以使用 ViewSubscriptions.sql 查詢來檢視訂閱資訊。

若要檢視訂閱資料

  1. 在 [方案總管] 中,按兩下 [ViewSubscriptions.sql]

  2. 按 F5 執行查詢。

    您應該會看到這 3 個訂閱,每一個訂閱者一個。

  3. 關閉 ViewSubscriptions.sql。

下一課

第 11 課:將事件提交給 Weather 應用程式

請參閱

概念

Notification Services 教學課程

其他資源

開發訂閱管理介面
建立 Notification 解決方案
SQL Server Notification Services 簡介

說明及資訊

取得 SQL Server 2005 協助