第 10 课:添加订阅服务器和订阅

在本课中,您将检查两个 VBScript 文件,以了解它们如何将订阅方数据和订阅数据提交到 Notification Services,然后,您将运行脚本,以便将订阅方数据添加到实例数据库中,并将订阅数据提交到应用程序数据库。

订阅方和订阅管理

Notification Services 基于订阅方所创建的订阅来生成通知。这些订阅方可以是人员或其他应用程序。作为 Notification Services 应用程序开发过程的一部分,您将开发一个或多个接口,以便订阅方可以管理其订阅。

订阅方数据包括订阅方 ID 和有关订阅方设备的信息,例如,电子邮件地址和文本消息地址。每个订阅方可以有多个设备。

订阅方数据存储在实例数据库对象中。由 Notification Services 实例作为宿主的所有应用程序均使用相同的订阅方数据。

订阅数据指定了订阅方感兴趣的应用程序信息(例如,对哪个城市的天气预报感兴趣)以及用哪个设备接收通知。应用程序可能有内置的逻辑来基于条件逻辑(例如,日期、时间或消息重要性)选择订阅方设备。

订阅数据存储在应用程序数据库中。每个应用程序都有它自己的订阅数据。

大多数 Notification Services 应用程序都提供了订阅方可以用来管理其订阅方数据和订阅数据的接口。这通常是 ASP.NET 应用程序,但也可以是 Windows 应用程序、Web 服务或您想使用 Notification Services 订阅管理对象开发的其他任何接口。有关详细信息,请参阅开发订阅管理界面

检查 Weather 订阅管理接口

为简便起见,Weather 应用程序使用两个 VBScript 文件来大容量加载它的订阅方数据和订阅数据。这不是管理订阅方和订阅的常见方式,但对建立通知应用程序的原型并对其进行测试很有用。

这些脚本说明了您可以怎样调用 COM 组件中的 Notification Services 接口。Notification Services 是用托管代码 (C#) 编写的,并且设计成可以从托管和非托管代码访问它。

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)将为三个订阅方中的每一个分别添加一个订阅。

首先,创建并初始化 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

加载订阅方数据和订阅数据

在熟悉脚本之后,请使用它们将订阅方数据加载到 Tutorial 实例中,并将订阅数据加载到 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-cn,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. 关闭 ViewSubscribersAndDevices.sql。

查看订阅数据

将订阅数据添加到应用程序之后,可以使用 ViewSubscriptions.sql 查询来查看订阅信息。

查看订阅数据

  1. 在解决方案资源管理器中,双击 ViewSubscriptions.sql

  2. 按 F5 运行查询。

    应当看到三个订阅,每个订阅方对应一个。

  3. 关闭 ViewSubscriptions.sql。

下一课

第 11 课:向 Weather 应用程序提交事件

请参阅

概念

Notification Services 教程

其他资源

开发订阅管理界面
生成通知解决方案
SQL Server Notification Services 简介

帮助和信息

获取 SQL Server 2005 帮助