次の方法で共有


BizTalk Server のホスト制限の実装方法

BizTalk Server ホスト調整メカニズムは、調整条件を継続的に監視し、調整条件の重大度を計算し、計算された重大度に応じて徐々にホスト調整を適用します。 調整メカニズムは自己調整であり、既定の構成オプションはBizTalk Server処理シナリオの大部分に適しています。 BizTalk Serverホスト調整では、特定のシナリオの調整に使用できる構成可能なオプションがいくつか公開されています。 これらの構成オプションの変更については、「 ホスト設定を変更する方法」を参照してください。

ホスト制限アルゴリズムのコンポーネント

BizTalk Serverでは、ホスト調整を適用するときに次のアルゴリズムが使用されます。

  1. 特定のしきい値を超えているかどうかを確認するため、次のパラメーターを継続的に監視します。 パラメーターの値がパラメーターのしきい値を超えると、制限の条件を満たしたことになります。

    • メモリの使用量 (システム全体のメモリとホスト プロセス メモリの両方)。

    • 配信または処理されるインプロセス メッセージの数 (送信制限のしきい値)。

    • 使用しているスレッドの数。

    • すべてのホストのキュー テーブル内の項目数とスプール テーブルおよび追跡テーブル内の項目数によって測定されるデータベース サイズ。

    • データベースの同時接続数。

    • メッセージの公開 (受信) と配信または処理 (送信) の割合。

  2. 制限の条件の重大度を判定します。 重大度が高い順に、制限の条件を挙げます。

    • 使用しているホスト プロセス メモリがしきい値を超えている。

    • インプロセス メッセージの数がしきい値を超えている。

    • 使用しているスレッド数がしきい値を超えている。

    • データベース サイズがしきい値を超えている。

    • 他のすべての制限の条件。

  3. 制限の条件の重大度に基づいて、段階的に制限を適用します。 重大度のレベルが上がるにつれて、強化された制限が適用されます。 段階的な制限は、次のように実行されます。

    • 1 つ以上の制限の条件が検出され、重大度が割り当てられます。

    • 最も高い重大度の条件に基づいて、制限を実装する命令が発行されます。 制限の条件によっては、条件が残るとさまざまなスレッド プールのサイズが小さくなり、実行中のオーケストレーションが退避されてメモリが解放される場合があります。

    • メッセージの受信および送信に応じて、メッセージの公開または処理に遅延期間が適用されます。 遅延期間は、制限の条件の重大度に比例します。このため、重大度の高い制限の条件は、重大度の低い制限の条件よりも制限の期間が長くなります。 この遅延期間は、条件が変わるたびに制限のメカニズムによって特定の範囲内で期間が調整されます。 現在の遅延期間は、BizTalk:Message Agent パフォーマンス オブジェクト カテゴリに関連付けられているメッセージ配信遅延 (ms) およびメッセージ発行遅延 (ms) パフォーマンス カウンターを通じて公開されます。 これらのパフォーマンス オブジェクト カウンターについては、 ホスト調整パフォーマンス カウンターに関するトピックを参照してください

    • 制限メカニズムは、制限の条件が存在するかどうかの確認を続けます。 制限の条件が緩和されると、制限されたメッセージのブロックが解除され、制限されていないモードでのスレッド プールと他のリソースの操作が許可されます。 制限の条件なしでシステムの実行を続けると、遅延期間が大幅に短縮されます。 制限の条件が残ると、条件の重大度に比例して遅延期間が長くなり、後続のメッセージの遅延期間が長くなります。

    • 遅延期間が経過すると、制限は適用されなくなります。

制限の条件の種類

制限の条件には、3 つの主要な種類 (比率ベース、リソース ベース、オーケストレーション) があります。

  1. レート ベースの調整 は、2 つのカテゴリに分かれています。inbound (published) と outbound (delivered):

    • 受信 (公開済み) メッセージの場合、ホスト インスタンスのメッセージ発行受信レートが、指定されたレート オーバードライブ係数 (パーセント) 値を超えた場合、メッセージの発行が調整BizTalk Server。 Rate overdrive factor (percent) パラメーターは、[メッセージ発行の調整設定] ダイアログ ボックスで構成できます。 受信メッセージに対する比率ベースの制限は、メッセージのバッチをメッセージ ボックス データベースに公開する前に遅延を発生させることで、主に実現されます。 受信メッセージに対する比率ベースの制限を実現する操作は他にありません。

    • 送信 (配信) メッセージの場合、ホスト インスタンスのメッセージ配信受信レートがメッセージ配信送信率 * 指定されたレート オーバードライブ係数 (パーセント) 値を超えた場合、BizTalk Serverはメッセージの配信を調整します。 Rate overdrive factor (percent) パラメーターは、[メッセージ処理の調整設定] ダイアログ ボックスで構成できます。 送信メッセージに対する比率ベースの制限は、インメモリ キューのメッセージを取り出してエンド ポイント マネージャー (EPM) またはオーケストレーション エンジンの処理にメッセージを配信する前に遅延を発生させることで、主に実現されます。 送信メッセージに対する比率ベースの制限を実現する操作は他にありません。

      レートオーバードライブ係数とその他のレートベースの調整値の詳細については、「レートベースの 調整設定を変更する方法」を参照してください。

  2. リソース ベースの調整 は、スレッド、メモリ、データベース サイズなどのシステム リソースを監視し、任意のサービス クラスに適用できます。 リソースベースの調整値の詳細については、「リソース ベースの調整 設定を変更する方法」を参照してください。

  3. オーケストレーション調整により 、脱水やサブスクリプションの一時停止/再開を防ぐことができます。 オーケストレーション調整の値の詳細については、「オーケストレーション調整 設定を変更する方法」を参照してください。

制限の条件の発生原因、アクション、および緩和方法

このセクションでは、さまざまな制限の条件の発生原因、制限メカニズムによって発生するアクション、および制限の条件を緩和する技術について説明します。

受信制限

BizTalk 制限メカニズムは、オーケストレーション エンジン (XLANG) および受信アダプターに受信制限を適用します。

BizTalk:MessageAgent パフォーマンス オブジェクト カテゴリに関連付けられているメッセージ発行調整状態カウンターとメッセージ発行調整状態期間カウンターを使用して、現在の調整状態と調整期間を測定します。 使用可能なホスト調整パフォーマンス カウンターの詳細については、「 ホスト調整パフォーマンス カウンター」を参照してください。

受信制限によって、受信メッセージがソースに残る場合があります。 受信制限が受信アダプターに適用されると、受信アダプターは、制限の条件が緩和されるまで、メッセージの受信を停止することがあります。

メッセージの公開

制限の状態
制限の条件の発生原因 実行される制限のアクション 軽減戦略 パフォーマンス オブジェクト パフォーマンス カウンター
2 ホスト インスタンスのメッセージ発行受信レートが、指定されたレート オーバードライブ係数 (パーセント) 値であるメッセージ発行送信レート\* を超えています。 データベースの処理が公開率についていけません。 メッセージ発行受信レートがメッセージ発行送信レート * 指定されたレート オーバードライブ係数 (パーセント) 値と同等になるまで、動的に計算された期間、発行スレッドブロックします。 パフォーマンス カウンターを使用して、メッセージ公開の受信 (および送信) 比率を指定します。 使用している環境に適切なオーバードライブ率を検討してください。

サンプリング ウィンドウの期間最小サンプル数のパラメーターに指定された値が、実際のシナリオに適していることを確認します。

これらのパラメーターの詳細については、「 レートベースの調整設定を変更する方法」を参照してください。
BizTalk:MessageAgent Message publishing incoming rate

Message publishing outgoing rate
4 プロセス メモリが指定されたしきい値を超えている。

公開するバッチのメモリ要求が厳しい場合またはメッセージを処理するスレッドの数が多すぎる場合、この現象が発生する可能性があります。
EPM で使用されるスレッド プールのサイズを小さくします。

新しいメッセージ バッチの処理を防ぐために、EPM スレッドをブロックします。

バッチのメッセージをデータベースに保存するメモリ要求が厳しい場合、メッセージがデータベースに保存される前に、公開スレッドも段階的に遅れます。

プロセス メモリ不足によって公開バッチがブロックされるかどうかは、バッチのメッセージ数や、バッチで退避コマンドやメッセージ削除コマンドが使用されているかどうかなど、複数の要因によって決まります。
EPM スレッド プールを小さくして読み込みを少なくすること、および、アダプター バッチのサイズを小さくすることを検討します。

プロセスが過剰なメモリを消費していない場合は、ホストの プロセス仮想 しきい値を増やすことを検討してください。

Process 仮想値の変更の詳細については、「リソース ベースの調整設定を変更する方法」を参照してください。
BizTalk:MessageAgent High process memory

Process memory usage (MB)

Process memory usage threshold (MB)
6 ホスト メッセージ キュー サイズ、スプール テーブル サイズ、または追跡テーブル サイズが指定されたしきい値を超えている。

この条件が考えられる理由には次のものがあります。

- BizTalk Server データベースが実行されていないか、実行速度が遅い状態を維持するために、BizTalk Serverによって使用される SQL エージェント ジョブ。
- ダウンストリーム コンポーネントは、インメモリ キューからのメッセージをタイムリーに処理しません。
- 中断されたメッセージの数が多い。
- システムの最大持続可能な負荷に達しました。
EPM で使用されるスレッド プールのサイズを小さくします。

新しいメッセージ バッチの処理を防ぐために、EPM スレッドをブロックします。

メッセージがデータベースに保存される前に、公開スレッドも段階的に遅れます。
BizTalk Server データベースを保守する BizTalk Server で使用される SQL エージェント ジョブが実行されていて障害が発生していないことを確認します。

必要に応じて、中断したインスタンスを終了および再開します。

BizTalk データベースを格納する SQL サーバーの領域要件を考慮して、 DB のメッセージ数 のしきい値の既定値を増やします。

追加のメッセージ バックログを処理するようにデータベースのサイズが適切に設定されている場合は、 Spool 乗数追跡データ乗数 の値を増やして、Spool テーブルと Tracking テーブルで追加のバックログを許可することを検討してください。

値の変更の詳細については、「 リソース ベースの調整設定を変更する方法」を参照してください。
BizTalk:MessageAgent

BizTalk:Message Box:General Counters

BizTalk:Message Box:Host Counters
MessageAgent /Database size

Message Box:General Counters /Spool size

Message Box:General Counters /Tracking data size

Message Box:Host Counters/Host queue – length

Message Box:Host Counters/Host queue - suspended msgs – length
8 ホスト インスタンスによって使用されるデータベース セッションが指定されたしきい値を超えている。 EPM で使用されるスレッド プールのサイズを小さくします。

新しいメッセージ バッチの処理を防ぐために、EPM スレッドをブロックします。

メッセージがデータベースに保存される前に、公開スレッドも段階的に遅れます。
ホストの データベース接続 のしきい値を増やすことを検討してください。

この値の変更の詳細については、「 リソース ベースの調整設定を変更する方法」を参照してください。
BizTalk:MessageAgent Database session
9 プロセス スレッドの数が指定されたしきい値を超えている。 EPM で使用されるスレッド プールのサイズを小さくします。

新しいメッセージ バッチの処理を防ぐために、EPM スレッドをブロックします。

メッセージがデータベースに保存される前に、公開スレッドも段階的に遅れます。
多くのスレッドが作成されないように、異なるスレッド プール サイズを設定することを検討します。

スレッド プールサイズの変更の詳細については、「 How to Modify General Settings」 および「 How to Modify Resource Based Throttling Settings」を参照してください。
BizTalk:MessageAgent Thread count

Thread count threshold
5 システム メモリが指定されたしきい値を超えている。 EPM で使用されるスレッド プールのサイズを小さくします。

新しいメッセージ バッチの処理を防ぐために、EPM スレッドをブロックします。

バッチのメッセージをデータベースに保存するメモリ要求が厳しい場合、メッセージがデータベースに保存される前に、公開スレッドも段階的に遅れます。

プロセス メモリ不足によって公開バッチがブロックされるかどうかは、バッチのメッセージ数や、バッチで退避コマンドやメッセージ削除コマンドが使用されているかどうかなど、複数の要因によって決まります。
EPM スレッド プールの既定のサイズを小さくして読み込みを少なくすること、およびアダプター バッチのサイズを小さくすることを検討します。

プロセスが過剰なメモリを消費していない場合は、ホストの グローバル物理 しきい値を増やすことを検討してください。

グローバル物理しきい値の変更の詳細については、「リソース ベースの調整設定を変更する方法」を参照してください。
BizTalk:MessageAgent Physical memory usage (MB)

Physical memory usage threshold (MB)

送信制限

BizTalk 制限メカニズムは、オーケストレーション エンジン (XLANG) および送信アダプターに送信制限を適用します。

現在の 調整状態調整期間を 測定するには、 BizTalk:MessageAgent パフォーマンス オブジェクト カテゴリに関連付けられているメッセージ配信調整状態カウンターとメッセージ配信調整状態期間カウンターを使用します。 使用可能なホスト調整パフォーマンス カウンターの詳細については、「 ホスト調整パフォーマンス カウンター」を参照してください。

送信制限ではメッセージの配信が遅れる場合があるため、メッセージがインメモリ キューに蓄積され、制限の条件が緩和されるまでキューから取り出すスレッドがブロックされる可能性があります。 キューから取り出すスレッドがブロックされると、メッセージ ボックス データベースから送信用のインメモリ キューに追加のメッセージが格納されます。

メッセージ配信

制限の状態
制限の条件の発生原因 実行される制限のアクション 緩和方法 パフォーマンス オブジェクト パフォーマンス カウンター
1 ホスト インスタンスのメッセージ配信の受信レートが、指定されたレート 超過率 (パーセント)のメッセージ配信送信レート \* を超えています

非常に複雑な処理、低速の送信アダプター、またはシステム リソースの一時的な不足によって、この現象が発生する可能性があります。
メッセージ配信の受信レートが、指定されたレート 超過率 (パーセント) 値のメッセージ配信送信レート \* と同等になるまで、動的に計算された期間、配信スレッドをブロックします。 パフォーマンス カウンターを使用して、メッセージ配信の受信 (および送信) 比率を指定します。 お使いの環境に適したドライブファクターを検討してください。

サンプリング ウィンドウの期間最小サンプル数のパラメーターに指定された値が、実際のシナリオに適していることを確認します。

これらのパラメーターの詳細については、「 レートベースの調整設定を変更する方法」を参照してください。
BizTalk:MessageAgent Message delivery incoming rate

Message publishing outgoing rate
4 プロセス メモリが指定されたしきい値を超えている。

サイズの大きいメッセージを処理する場合や送信アダプターで多くのメッセージを同時に処理しようとする場合のメモリを大量に使用するシナリオで、この現象が発生する可能性があります。
アダプターまたは XLANG へのメッセージの配信を遅くします。

適用できる場合にサービス インスタンスを退避してキャッシュを小さくすることで、プロセス メモリ使用量を小さくします。

EPM とメッセージ エージェントのいずれかまたは両方で使用されるスレッド プールのサイズを小さくします。

定期的に .NET ガベージ コレクション (GC) を強制的に実行します。
プロセス メモリ ベースでの制限のためにシステムがアイドル状態にならない場合、操作が不要になることがあります。

インプロセス メッセージ数カウンターが高く、プロセス メモリ ベースの調整がある場合でも CPU 使用率が過剰でない場合は、追加のアクションは必要ありません。

システムが過剰に調整されている場合は、ホストの プロセス仮想 しきい値に関連付けられている値を増やすことを検討し、ホスト インスタンスで "メモリ不足" エラーが生成されないことを確認します。 プロセス仮想しきい値を増やすことで "メモリ不足" エラーが発生した場合は、内部メッセージ キュー のサイズインプロセス メッセージのしきい値の値を減らすことを検討してください。 この方法は、サイズの大きいメッセージを処理するシナリオに特に関連します。

これらのパラメーターの詳細については、「 リソース ベースの調整設定を変更する方法」を参照してください。
BizTalk:MessageAgent High process memory

メモリ使用量 (MB) を処理する

Process memory usage threshold (MB)

In-process message count

Active instance count
3 サービス クラスに配信されたインプロセス メッセージの数が指定されたしきい値を超えている。

非常に複雑な処理、低速の送信アダプター、またはシステム リソースの一時的な不足によって、この現象が発生する可能性があります。
アダプターまたは XLANG へのメッセージの配信を遅くします。

メッセージ エージェントによって使用されるスレッド プールのサイズを小さくします。
過剰な調整が発生した場合は、 インプロセス メッセージ のしきい値に関連付けられている値を増やすことを検討してください。

このパラメーターの詳細については、「 リソース ベースの調整設定を変更する方法注: この値を増やすと、送信アダプターのパフォーマンスに悪影響を与えたり、プロセスのメモリ使用量が増加したりする可能性があります」を参照してください。
BizTalk:MessageAgent In-process message count

In-process message count threshold
9 プロセス スレッドの数が指定されたしきい値を超えている。 EPM またはメッセージ エージェントによって使用されるスレッド プールのサイズを小さくする 多くのスレッドが作成されないように、異なるスレッド プール サイズを設定することを検討します。

スレッド プールサイズの変更の詳細については、「 How to Modify General Settings」 および「 How to Modify Resource Based Throttling Settings」を参照してください。
BizTalk:MessageAgent Thread count

Thread count threshold
5 システム メモリがしきい値を超えている。 アダプターまたは XLANG へのメッセージの配信を遅くします。

適用できる場合にサービス インスタンスを退避してキャッシュを小さくすることで、プロセス メモリ使用量を小さくします。

EPM とメッセージ エージェントのいずれかまたは両方で使用されるスレッド プールのサイズを小さくします。
EPM スレッド プールの既定のサイズを小さくして読み込みを少なくすること、およびアダプター バッチのサイズを小さくすることを検討します。

プロセスが過剰なメモリを消費していない場合は、ホストの グローバル物理 しきい値を増やすことを検討してください。

グローバル物理しきい値の変更の詳細については、「リソース ベースの調整設定を変更する方法」を参照してください。
BizTalk:MessageAgent Physical memory usage (MB)