指定摘要或多播传递
Notification Services 提供两个聚合通知的选项:摘要传递和多播传递。摘要传递将单个订阅方的消息组合到一个消息中。多播传递通过确定同一个通知何时发送到许多订阅方、格式化通知一次、然后发送通知,以节省内容格式化程序资源。
重要提示: |
---|
您可以使用摘要传递或多播传递,但不能同时使用两者。 |
此主题说明了摘要传递和多播传递以及如何配置这些选项。
摘要传递
有些应用程序可以为同一个通知批次中的单个订阅方生成若干通知。若要减少发送到各个订阅方的消息数,可启用摘要传递,它将类似的通知组合到一个摘要消息中。
为通知类启用摘要传递时,单个通知批次中的所有通知均考虑进行摘要传递。对于某个批次内在任何启用摘要的通知字段中有相同的订阅方 ID、区域设置、设备和数据的所有通知,Notification Services 将各个通知组合到摘要通知中,然后将所有这些数据发送到内容格式化程序,该程序返回单个格式化的结果。
构成摘要通知的集中的第一个通知被称为摘要头通知,其余的通知称为摘要尾通知。消息正文由来自所有通知的聚合信息构成。
下表代表了通知类的简化通知表。在此通知类中,State 字段的摘要分组属性被设置为 true,因此,其字段用于确定摘要分组。粗体行代表将组合到摘要消息中的通知。
NotificationId | SubscriberId | DeviceName | SubscriberLocale | City | State |
---|---|---|---|---|---|
1 |
Bob |
en-US |
Seattle |
WA |
|
2 |
Alan |
en-US |
Seattle |
WA |
|
3 |
Bob |
en-US |
Spokane |
WA |
|
4 |
Bob |
en-US |
San Francisco |
CA |
|
5 |
Bob |
file |
en-US |
Tacoma |
WA |
在此示例中,SubscriberId、DeviceName、SubscriberLocale 和 State 列中的值对于 Notification Services 必须相同,以便将通知组合到摘要中。通知 1 和 3 满足匹配条件,将组合到摘要中。通知 2 针对另一个订阅方,通知 4 针对另一个州,通知 5 针对另一个设备,因此这些通知不会基于此表中的数据进行组合。
启用摘要传递
如果使用 XML 定义应用程序,则在应用程序定义文件 (ADF) 的 NotificationClass 元素中启用摘要传递。如果以编程方式定义应用程序,请使用 Notification Services 管理对象 (NMO) 启用摘要传递。
多播传递
注意: |
---|
SQL Server 2005 Standard Edition 不支持多播传递。 |
如果应用程序可以为多个订阅方生成相同的通知数据,则可以启用多播传递,这样,内容格式化程序对通知进行一次格式化,然后将通知发送到订阅方列表。
对于启用了多播传递的通知类,分发服务器使用以下这些操作来格式化多播通知:
- 分发服务器按设备、区域设置和通知字段的值对表行进行排序。
- 分发服务器开始读取行。只要相关列的值相同,分发服务器就将订阅方信息添加到多播列表。您可以为每个多播消息限制订阅方数量。有关详细信息,请参阅指定传递协议名称和字段。
- 如果分发服务器遇到相关列具有不同值的行,就将前一组列值传递到内容格式化程序,然后将格式化的输入连同订阅方列表传递到传递协议。
下表显示了用于解释摘要传递的相同通知数据。这一次,设备、区域设置和所有通知字段用于确定哪些通知是多播通知。
NotificationId | SubscriberId | DeviceName | SubscriberLocale | City | State |
---|---|---|---|---|---|
1 |
Bob |
en-US |
Seattle |
WA |
|
2 |
Alan |
en-US |
Seattle |
WA |
|
3 |
Bob |
en-US |
Spokane |
WA |
|
4 |
Bob |
en-US |
San Francisco |
CA |
|
5 |
Bob |
file |
en-US |
Tacoma |
WA |
通知 1 和 2 包含相同的 City 和 State 数据,但这些数据针对不同的订阅方。如果启用多播传递,Notification Services 将格式化通知 1,然后将带有收件人列表(Bob 和 Alan)的格式化消息发送到传递协议。不过,因为通知 3、4 和 5 包含唯一的 City 和 State 数据,这些通知不是多播通知。
有关多播的注意事项
多播传递对订阅方是透明的。用于发送通知消息的实际网络协议不必支持多播。
启用多播传递时,传递协议接收一次带有订阅方信息列表的格式化消息。传递协议必须能使用收件人列表将格式化消息发送到多个订阅方。为此,可发送单个消息(如果网络协议支持真正的多播传递),也可以只是循环访问订阅方列表,然后将同一个消息发送到每个订阅方。
标准传递协议支持多播传递。如果使用第三方传递协议,请与开发人员联系,以确定传递协议是否支持多播。
而且,为了使多播传递正常工作,多播通知不得包含任何订阅方特定的信息,因为相同的格式化输出将发送到许多订阅方。分发服务器不会将任何收件人信息传递到内容格式化程序。如果内容格式化程序以编程方式将收件人信息用于格式化,该程序将失败。
不过,在格式化过程中,Notification Services 不阻止订阅方特定信息从外部数据源合并到通知数据中。确保内容格式化程序添加到通知数据的任何外部信息不是收件人特定的。
启用多播传递
如果使用 XML 定义应用程序,则在应用程序定义文件 (ADF) 的 NotificationClass 元素中启用多播传递。如果以编程方式定义应用程序,请使用 NMO 启用多播传递。
请参阅
概念
开发自定义内容格式化程序
开发自定义传递协议
定义通知架构
配置内容格式化程序
指定通知批次大小
指定通知到期时间
指定传递协议名称和字段
其他资源
定义通知类
配置传递协议
定义通知类
定义 Notification Services 应用程序