Notification Services 增强功能

Microsoft SQL Server Notification Services 是用于开发和部署生成并发送通知的应用程序的 SQL Server 平台。Notification Services 可以向成千或上百万的订阅方及时发送个性化的消息,还可以向各种各样的设备传递这些消息。

Notification Services 2.0 是 SQL Server 2000 的一个可下载组件,发布于 2002 年。在 SQL Server 2005 中,Notification Services 是集成在 SQL Server 里的。有关 Notification Services 的详细信息,请参阅 SQL Server Notification Services

以下是自从 Notification Services 2.0 以来就有的增强功能。

新功能

SQL Server 2005 Notification Services 中新添加了下列功能。

集成到 SQL Server Management Studio 中

Notification Services 现已集成到 SQL Server Management Studio 对象资源管理器中。使用对象资源管理器可以执行大多数 nscontrol 命令提示实用工具任务,还可以启动和停止 Notification Services 实例。

还可以将 SQL Server Management Studio 当作 XML 和 Transact-SQL 编辑器来使用。如果为 Notification Services 实例创建了 SQL Server Management Studio 解决方案,那么您就可以轻松地编辑管理安全性或管理该实例的实例配置文件 (ICF)、应用程序定义文件 (ADF) 和 Transact-SQL 脚本,然后可以通过对象资源管理器来部署该实例。有关指导您完成此过程的教程,请参阅 Notification Services 教程

若要了解关于 SQL Server Management Studio 的更多信息,请参阅SQL Server Management Studio 简介

支持订阅方定义条件

在 Notification Services 2.0 中,应用程序开发人员定义生成通知的完整的 Transact-SQL 操作,订阅方只能为该操作提供参数。在 SQL Server 2005 中,Notification Services 支持一种称为条件操作的新型操作,允许订阅方根据预定义的数据集定义自己的查询子句。

使用条件操作使订阅方可以根据数据集全面定义自己的订阅;但是,因为经常有更多条件需要评估,这也降低了生成通知的效率。

有关详细信息,请参阅定义条件操作

数据库独立性

SQL Server Notification Services 支持将现有数据库用于实例和应用程序数据。配置 Notification Services 实例或定义 Notification Services 应用程序时,可以指定现有数据库的名称或者为新数据库指定名称。最后,可以省略某个名称而使用 Notification Services 的默认数据库名称。

有关详细信息,请参阅定义实例数据库定义应用程序数据库

新管理 API

SQL Server Notification Services 有新的管理 API,即 Microsoft.SqlServer.Management.Nmo。可以用此 API 开发 Notification Services 实例和应用程序以及管理这些实例和应用程序。

可驻留执行引擎

Notification Services 引擎运行宿主事件提供程序、生成器和分发服务器。在 Notification Services 2.0 中,由 NS$instanceName Windows 服务(可以在注册实例时安装)运行 Notification Services 引擎。而现在则可将 Notification Services 引擎驻留在自己的自定义应用程序或进程中。有关详细信息,请参阅宿主 Notification Services 引擎

Analysis Services 事件提供程序

Notification Services 新增了标准事件提供程序,以便用 MDX 查询从 Analysis Services 数据库中收集事件数据。有关详细信息,请参阅 Analysis Services 事件提供程序

新视图

Notification Services 添加或修改了下列视图,以简化应用程序开发和故障排除:

  • Notification Services 为应用程序中定义的每个事件类创建一个视图。该视图与事件类同名。在写入事件驱动(未计划的)的通知生成查询时,通常从该视图中选择事件。现在也可以将事件数据插入到该视图中。有关详细信息,请参阅 <EventClassName> 视图
  • Notification Services 为每个通知类创建一个视图。可以用该视图检查应用程序生成的通知。有关详细信息,请参阅 <NotificationClassName> 视图
  • Notification Services 为查看和管理订阅方及订阅数据提供了三个视图:
    • NSSubscriberView 列出 Notification Services 实例的所有订阅方。可以用此视图管理订阅方数据。有关详细信息,请参阅 NSSubscriberView
    • NSSubscriberView 列出 Notification Services 实例的所有订阅方设备。可以用此视图管理订阅方设备数据。有关详细信息,请参阅 NSSubscriberDeviceView
    • NSSubscriptionClassName视图列出一个订阅类的所有订阅。可以用此视图管理基本事件驱动订阅,但不能管理计划的或基于条件的订阅。有关详细信息,请参阅 NS<SubscriptionClassName>View

对现有功能的增强

为改进性能和简化应用程序开发做了以下改进:

生成器性能改进

在 Notification Services 2.0 中,通知生成规则必须用 Notify() 函数生成通知。此函数使用三个扩展存储过程。这些扩展存储过程既妨碍了性能又增加了部署步骤。

在 SQL Server 2005 中,Notification Services 删除了 Notify() 函数,现在需要用通知生成规则向通知视图中插入数据。这些 INSERT INTO 语句(必须由生成器运行)提高了 Notification Services 的性能。有关详细信息,请参阅定义订阅规则将 Notification Services 2.0 实例迁移到 SQL Server 2005

Vacuumer 性能改进

Notification Services 还改进了称为 vacuuming 的数据删除进程的性能。根据应用程序和硬件配置,性能可望比 Notification Services 2.0 提高约 150%。

Windows 群集改进

Notification Services 从初始版本起就支持 Windows 群集技术。如果要把 Notification Services 引擎配置成一个一般服务群集资源,那么运行实例的 NS$instanceName Windows 服务可将故障转移到其他群集节点。

在 Notification Services 2.0 中,Notification Services 会检测是否安装了群集软件,是否配置了群集,以及最后群集是否在运行。如果三项检查全部成功,Notification Services 将使用默认群集名作为本地计算机名,然后运行配置为在默认计算机上运行的组件。

若要为群集提供更好的支持,您可以为 Notification Services 配置一个独立的群集资源组,它可以独立地从其他群集资源组进行故障转移。配置群集资源时,现在必须选择**“将网络名用作计算机名”**配置选项。这就要求把网络名(即虚拟服务器名)指定为 SystemName 值,对于群集上运行的任何 Notification Services 组件都是如此。

有关详细信息,请参阅在 Notification Services 中使用故障转移群集演练:群集单台服务器部署

请参阅

概念

SQL Server 2005 的新增功能

其他资源

SQL Server Notification Services

帮助和信息

获取 SQL Server 2005 帮助