ダイジェスト配信またはマルチキャスト配信の指定

Notification Services には、通知を集計するオプションとして、ダイジェスト配信とマルチキャスト配信の 2 つが用意されています。ダイジェスト配信では、単一のサブスクライバに対する複数のメッセージを 1 つのメッセージに結合します。マルチキャスト配信では、多数のサブスクライバに送信される同一の通知を検出し、その通知の書式設定を一度だけ行って通知を送信することで、コンテンツ フォーマッタのリソースを節約します。

ms172624.note(ja-jp,SQL.90).gif重要 :
ダイジェスト配信とマルチキャスト配信はいずれかのみを使用でき、両方は使用できません。

このトピックでは、ダイジェスト配信とマルチキャスト配信、およびそれらのオプションの構成方法について説明します。

ダイジェスト配信

一部のアプリケーションでは、同一の通知バッチ内で、単一のサブスクライバに対して複数の通知を生成することがあります。個々のサブスクライバに送信されるメッセージの数を減らすには、ダイジェスト配信を有効にして、同様のメッセージを 1 つのダイジェスト メッセージに結合します。

通知クラスに対してダイジェスト配信を有効にすると、単一の通知バッチ内のすべての通知についてダイジェスト配信の対象かどうかが検討されます。サブスクライバ ID、ロケール、デバイス、およびダイジェスト配信が有効なすべての通知フィールドのデータが同じバッチ内のすべての通知について、Notification Services は個々の通知をダイジェスト通知に結合し、そのすべてのデータをコンテンツ フォーマッタに送信します。これにより、書式設定された単一の結果が返されます。

ダイジェスト通知を形成する集合内の最初の通知は、ダイジェスト ヘッド通知と呼ばれ、残りの通知はダイジェスト トレーラ通知と呼ばれます。メッセージ本文は、すべての通知から集計された情報で構成されます。

次の表は、通知クラスの通知テーブルを簡略化して表したものです。この通知クラスでは、State フィールドのダイジェスト グループ プロパティが true に設定されているため、ダイジェスト グループの対象かどうかを判断する際にそのフィールドも使用されます。太字の行は、ダイジェスト メッセージに結合される通知を表します。

NotificationId SubscriberId DeviceName SubscriberLocale City State

1

Bob

e-mail

en-US

Seattle

WA

2

Alan

e-mail

en-US

Seattle

WA

3

Bob

e-mail

en-US

Spokane

WA

4

Bob

e-mail

en-US

San Francisco

CA

5

Bob

file

en-US

Tacoma

WA

この例では、SubscriberIdDeviceNameSubscriberLocale、および State の各列の値が同じである場合のみ、Notification Services は通知をダイジェストに結合します。通知 1 と 3 がこの基準を満たし、ダイジェストに結合されます。通知 2 はサブスクライバ、通知 4 は状態、通知 5 はデバイスが異なるため、これらの通知はこのテーブル内のデータに基づいて結合されません。

ダイジェスト配信を有効にするには

XML でアプリケーションを定義している場合は、アプリケーション定義ファイル (ADF) の NotificationClass 要素でダイジェスト配信を有効にします。プログラムでアプリケーションを定義している場合は、Notification Services 管理オブジェクト (NMO) を使用してダイジェスト配信を有効にします。

マルチキャスト配信

ms172624.note(ja-jp,SQL.90).gifメモ :
マルチキャスト配信は、SQL Server 2005 Standard Edition ではサポートされていません。

アプリケーションが複数のサブスクライバに対して同じ通知データを生成することが多い場合は、マルチキャスト配信を有効にして、コンテンツ フォーマッタによる通知の書式設定を一度だけ行い、その通知をサブスクライバの一覧に送信することができます。

マルチキャスト配信が有効になっている通知クラスでは、ディストリビュータは以下の処理を実行してマルチキャスト通知の書式設定を行います。

  1. デバイス、ロケール、および通知フィールドの値でテーブルの行を並べ替えます。
  2. 行の読み取りを開始します。関連する列の値が同一である限り、ディストリビュータはマルチキャストの一覧にサブスクライバ情報を追加します。サブスクライバの数はマルチキャスト メッセージごとに制限できます。詳細については、「配信プロトコルの名前とフィールドの指定」を参照してください。
  3. 関連する列の値が異なる行を検出すると、コンテンツ フォーマッタに 1 つ前の行の列値のセットを渡して、配信プロトコルにサブスクライバの一覧と共に書式設定された出力を渡します。

次の表は、ダイジェスト配信の例で使用したものと同じ通知データの表です。ここでは、デバイス、ロケール、およびすべての通知フィールドを使用して、マルチキャストの対象になる通知を判断します。

NotificationId SubscriberId DeviceName SubscriberLocale City State

1

Bob

e-mail

en-US

Seattle

WA

2

Alan

e-mail

en-US

Seattle

WA

3

Bob

e-mail

en-US

Spokane

WA

4

Bob

e-mail

en-US

San Francisco

CA

5

Bob

file

en-US

Tacoma

WA

通知 1 と 2 は、CityState のデータが同じですが、異なるサブスクライバに配信されます。マルチキャスト配信が有効な場合、Notification Services は通知 1 の書式を設定し、書式設定されたメッセージを受信者の一覧 (Bob と Alan) と共に配信プロトコルに送信します。これに対し、通知 3、4、および 5 は、CityState に固有のデータが含まれるためマルチキャストは行われません。

マルチキャストに関する注意点

マルチキャスト配信であるかどうかは、サブスクライバ側では認識されません。通知メッセージの送信に使用される実際のネットワーク プロトコルがマルチキャストをサポートしている必要はありません。

マルチキャスト配信が有効な場合、配信プロトコルは、書式設定されたメッセージをサブスクライバ情報の一覧と共に受信します。配信プロトコルは、受信者の一覧を使用して、書式設定されたメッセージを複数のサブスクライバに送信できる必要があります。単一のメッセージを送信する方法 (ネットワーク プロトコルが真のマルチキャスト配信をサポートする場合) と、サブスクライバの一覧に含まれる各サブスクライバを単に反復して同じメッセージを送信する方法があります。

標準配信プロトコルは、マルチキャスト配信をサポートしています。サードパーティの配信プロトコルを使用している場合は、開発者に問い合わせて、その配信プロトコルがマルチキャストをサポートしているかどうかを確認してください。

また、書式設定された同じ出力が多くのサブスクライバに送信されるので、マルチキャスト通知が正常に機能するためには、サブスクライバ固有の情報をマルチキャスト通知に含めないようにする必要があります。ディストリビュータがコンテンツ フォーマッタに受信者の情報を渡すことはありません。コンテンツ フォーマッタが、受信者の情報を使用して書式設定を行うようにプログラミングされている場合はエラーとなります。

Notification Services では、書式設定の処理中に、外部データ ソースから通知データにサブスクライバ固有の情報を組み込むことができます。コンテンツ フォーマッタが通知データに追加するすべての外部情報が受信者固有の情報であることを確認してください。

マルチキャスト配信を有効にするには

XML でアプリケーションを定義している場合は、アプリケーション定義ファイル (ADF) の NotificationClass 要素でマルチキャスト配信を有効にします。プログラムでアプリケーションを定義している場合は、NMO を使用してマルチキャスト配信を有効にします。

参照

概念

カスタム コンテンツ フォーマッタの開発
カスタム配信プロトコルの開発
通知スキーマの定義
コンテンツ フォーマッタの構成
通知バッチ サイズの指定
通知の有効期限の指定
配信プロトコルの名前とフィールドの指定

その他の技術情報

通知クラスの定義
配信プロトコルの構成
通知クラスの定義
Notification Services アプリケーションの定義

ヘルプおよび情報

SQL Server 2005 の参考資料の入手