ディストリビュータ設定の指定
通知エンジンを実行している各コンピュータ (通常 NS$InstanceName Windows サービスを使用) は、ディストリビュータを実行することができます。アプリケーションを定義する場合は、1 つ以上のディストリビュータ、これらのディストリビュータを実行するコンピュータ、およびそれらのディストリビュータの操作設定を定義します。
ディストリビュータ処理
ディストリビュータによって、通知アプリケーションの通知の書式設定と配信が制御されます。ディストリビュータ クォンタムと呼ばれる構成可能な間隔で、ディストリビュータは、作業項目と呼ばれる通知グループを探して処理します。作業項目が利用できる場合、ディストリビュータはその作業項目を取得し、コンテンツ フォーマッタを呼び出して通知データを変換し、配信プロトコルを使用して書式設定した通知を送信します。
配布できなかった通知は、作業項目のプールに戻されます。通知の再試行スケジュールがあり、また通知の期限が切れていない場合、ディストリビュータは次回の再試行間隔でその通知を処理します。
ディストリビュータの定義
SQL Server Enterprise Edition、Developer Edition、および Evaluation Edition では、アプリケーションは複数のディストリビュータを持つことができます。アプリケーションが複雑な書式設定を実行している場合やアプリケーションの容量が大きい場合、複数のディストリビュータを使用すると効果的な場合があります。
各ディストリビュータは同じ機能を実行しますが、複数のディストリビュータを使用すると、サーバー間で処理負荷を共有することによりコンテンツの書式設定や配信パフォーマンスを向上させることができます。
アプリケーションの複数のディストリビュータを定義する場合は、それらを複数の異なるサーバーに配置する必要があります。1 台のサーバーに複数のディストリビュータを配置しても操作上の利便性は何もありません。同じアプリケーションの 2 つのディストリビュータを単一のコンピュータに配置した場合、アプリケーションを作成または更新しようとすると、Notification Services からエラーが返されます。
SQL Server Standard Edition を使用している場合、アプリケーションは 1 つのディストリビュータのみ持つことができます。
ディストリビュータのパフォーマンスを監視するには、Notification Services ジェネレータとディストリビュータのパフォーマンス オブジェクトを使用します。詳細については、「Notification Services パフォーマンス オブジェクト」を参照してください。
アプリケーションのディストリビュータを定義するには
XML でアプリケーションを定義している場合は、アプリケーション定義ファイル (ADF) でディストリビュータを定義します。プログラムでアプリケーションを定義している場合は、Notification Services 管理オブジェクト (NMO) を使用してディストリビュータを定義します。
ディストリビュータ設定の指定
ディストリビュータを定義するときに、ディストリビュータを実行するシステムの名前、ディストリビュータで使用できるスレッドの数、ディストリビュータが通知を検索する頻度など、操作に関する設定を指定します。
ディストリビュータを定義するには
システム名
システム名プロパティでは、ディストリビュータを実行するシステムの名前を指定します。この値は、通常はコンピュータ名です。ただし、フェールオーバー クラスタでディストリビュータを実行する場合は、仮想サーバー名になります。
コンピュータに、Notification Services クライアント コンポーネントがインストールされ、インスタンスが登録されている必要があります。
アプリケーションが複数のディストリビュータを使用する場合は、各ディストリビュータに一意のシステム名を付ける必要があります。
アプリケーションのスケールアウトの詳細については、「スケールアウト構成」を参照してください。
ディストリビュータ システムの名前を指定するには
スレッド プール サイズ
ディストリビュータのスレッド プール サイズは、ディストリビュータが作業項目を処理するときに使用できるスレッドの最大数を指定します。処理する作業項目が少なければ、ディストリビュータが使用できるスレッド数も少なくなります。
既定では、ディストリビュータはすべての使用可能なスレッドを使用して作業項目を並列処理します。ただし、スレッド プール サイズを構成してディストリビュータが利用できるスレッドの数を制御できます。
SQL Server 2005 Enterprise Edition、Developer Edition、Evaluation Edition の場合、スレッド プール サイズは無制限です。スレッド プール サイズを定義しない場合、またはサイズを 0 に設定した場合、Notification Services は独自のアルゴリズムを使用して、最適な数のスレッドを決定します。
重要 : |
---|
SQL Server 2005 Standard Edition では、ディストリビュータのスレッド プール サイズは 1、2、または 3 にする必要があります。既定値は 3 です。 |
最適なスレッド プール サイズの決定
システムでディストリビュータが消費するプロセッサ時間を制限する場合は小さい値を指定できます。スレッド プール サイズが小さくなると、ディストリビュータが並列処理する作業項目数も少なくなるため、容量を大量に使用するシナリオでディストリビュータが必要とするシステム リソースを減らすことができます。
ディストリビュータのスレッド プール サイズを指定するには
ディストリビュータ クォンタム期間
ディストリビュータ クォンタム期間では、アイドル状態のディストリビュータが作業項目を確認する頻度を指定します。ディストリビュータがアイドル状態でない場合、ディストリビュータは現在の作業項目の開始時と完了時に新しい作業項目がないか確認するため、ディストリビュータ クォンタムは関係ありません。
メモ : |
---|
ディストリビュータ クォンタム期間は、ジェネレータ クォンタム期間とは関係ありません。ジェネレータ クォンタムの詳細については、「ジェネレータ クォンタム期間の指定」を参照してください。 |
ディストリビュータ クォンタム期間を構成するときに、20 秒などの短い時間、または 5 分などの長い時間を選択できます。ただし、アプリケーション速度とリソース消費との間でバランスを取る必要があります。
- 非常に短時間のクォンタム期間を構成すると、アプリケーションで消費するシステム リソースの量が多くなります。ただし、アイドル状態時間の後に新しい作業項目が使用できるようになるとディストリビュータの応答性が高まり、サブスクライバは通知をより迅速に受信できるようになります。
- 長時間のクォンタム期間を構成すると、アプリケーションで消費するシステム リソースの量は少なくなります。ただし、アプリケーションが通知を生成した時間からディストリビュータがその通知を配信するまでの間に遅延が発生する場合があります。
アプリケーションがディストリビューションの作業負荷に対応できなくなった場合は、別のサーバーにディストリビュータを追加することを検討してください。アプリケーションをスケールアウトするには、SQL Server 2005 Enterprise Edition、Developer Edition、または Evaluation Edition が必要です。
ディストリビュータ クォンタム期間を指定するには
参照
概念
Notification Services パフォーマンス オブジェクト
通知の書式設定と配信アーキテクチャ
その他の技術情報
Notification Services アプリケーションの定義