BizTalk サーバーで実行される処理のほとんどは、BizTalk Server ホスト インスタンスと呼ばれる論理エンティティ内で発生します。これは、Windows サービスとして実行されるプロセスまたは BizTalk サーバー上の分離されたホスト プロセスです。 BizTalk Server は、ホスト インスタンス プロセスによるリソースの使用を管理するために、ホスト インスタンスを介したメッセージのフローと処理を制御する調整可能な調整メカニズムを利用します。
調整メカニズムは、ホスト インスタンスまたはダウンストリーム ホスト インスタンスの容量をワークロードが超えないように、ホスト インスタンスのワークロードをモデレートします。 調整メカニズムにより、ホスト インスタンス プロセスまたはその他のシステム プロセスの全体的なパフォーマンスが低下する可能性がある、リソースの競合と呼ばれる条件も防止されます。 リソースの競合は、1 つ以上のプロセスが自身や別のプロセスの悪影響に限定されたリソースを消費する場合に発生します。 たとえば、過剰なメモリやスレッドを消費すると、メモリ割り当てエラーやスレッド コンテキスト スイッチが高くなり、プロセスのパフォーマンスに影響を与える可能性があります。 このようなリソースの競合は、BizTalk Server の全体的なパフォーマンスに悪影響を与える可能性があります。
ホスト調整メカニズムでは、使用可能なリソースの使用率が低い場合も検出されます。 使用可能なリソースの使用率が低い場合、調整メカニズムにより、ホスト インスタンスによって追加のメッセージを処理できるようになります。 ホスト調整メカニズムは、使用可能なリソースが過剰または過小使用されているかどうかを継続的に監視し、それに応じてホスト インスタンスを介してメッセージ フローを調整します。
BizTalk Server ホスト調整メカニズムは、システムが最適で持続可能なレベルで動作することを保証するのに役立ちます。
ホスト調整構成パラメーターは、BizTalk Server 管理コンソールでホストごとに設定されます。 ホストに設定されている調整構成パラメーターは、対応するホスト インスタンスに格納されている受信ハンドラー、送信ハンドラー、またはオーケストレーションのいずれかに適用されることに注意してください。 特定の受信ハンドラー、送信ハンドラー、またはオーケストレーションにのみ適用される調整パラメーターを設定する場合は、次の操作を行う必要があります。
新しいホストを作成し、調整パラメーターを適切に設定します。
このホストで実行する受信ハンドラー、送信ハンドラー、またはオーケストレーションを構成します。
このホストの 1 つ以上のインスタンスを作成して、BizTalk サーバー上で実行します。
受信ホストの制限
受信ホストの調整 (BizTalk Server での メッセージ発行調整 とも呼ばれます) は、メッセージをメッセージ ボックス データベースに発行する受信アダプターまたはオーケストレーションを含むホスト インスタンスに適用されます。 受信ホストの制限状態は、次の条件で発生する可能性があります。
メモリの量、スレッドの数、またはホスト インスタンスによって使用されるデータベース接続の数が、BizTalk グループで使用可能な 設定ダッシュボード で定義されている調整しきい値を超え 、[設定] を選択します。 これらの値は、 BizTalk:Message Agent パフォーマンス オブジェクト カテゴリで使用できるパフォーマンス モニター カウンターで測定できます。
ダウンストリーム ホストは、発行されたメッセージを処理できません。 これにより、DB パラメーターの メッセージ数 の値が増加します。 DB内のメッセージ数が制限条件を引き起こすしきい値は、設定ダッシュボードのホストオプションで設定可能です。 データベース内のメッセージ数は、BizTalk:Message Agent パフォーマンス オブジェクト カテゴリのデータベース サイズ カウンターで測定できます。
ホスト インスタンスのメッセージ発行受信レートが、指定したレート 超過率の値であるメッセージ発行送信レート* を超えています。 レートオーバードライブ係数の値は設定ダッシュボードのホストでRate-Based Throttlingに定義されています。 受信および送信レートを発行するメッセージは、 BizTalk:Message Agent パフォーマンス オブジェクト カテゴリの対応するパフォーマンス モニター カウンターを使用して測定できます。
既定のスロットリング動作が変更されました。 BizTalk Server パフォーマンス チューニングの設定ダッシュボードを使用すると 、調整動作に影響するさまざまな値について説明します。
絞り込み条件の厳しさに応じて、次のアクションが実行されます。
ホスト インスタンスの処理ロジックの段階的な遅延が実装されます。 遅延は、エンド ポイント マネージャー (EPM) スレッドがトランスポート アダプターからメッセージのバッチを受信するとき、または EPM がメッセージ ボックス データベースに発行されるメッセージのバッチを送信するときに実装できます。 スロットリング条件の重大度に応じて、処理遅延の期間と、その期間が増加する速度の両方が変化します。
エンド ポイント マネージャー (EPM) で使用できるスレッドの数は制限されています。 EPM はアダプターからメッセージのバッチを受信し、メッセージを MessageBox データベースに発行します。 既定では、EPM は CPU あたり 20 個のスレッドを使用するように構成されています。 ホスト調整メカニズムが受信処理のストレス状態を検出した場合、ストレス状態が解消されるまで、EPM で使用できるスレッドの数を一時的に減らすことができます。 EPM は、受信メッセージ バッチの処理に EPM スレッドを使用できない限り、トランスポート アダプターからのメッセージを処理したり、メッセージ バッチをメッセージ ボックス データベースに配信したりできません。
メモリやその他のリソースの使用は、必要に応じて削減されます。 BizTalk Server は、実行中のスケジュールを退避したり、メモリ キャッシュ サイズを縮小したり、メモリを集中的に消費するスレッドの使用を制限したりすることで、メモリ使用量を制限する命令を他のサービス クラスに送信できます。
アダプターからメッセージ ボックスへの受信メッセージ フロー
送信ホストの調整
送信ホストの調整 (BizTalk Server の メッセージ処理調整 とも呼ばれます) は、オーケストレーションを含むホスト インスタンス、またはメッセージ ボックスに発行されたメッセージを送受信または処理するアダプターを送信するホスト インスタンスに適用されます。 送信ホストの調整条件は、次の条件でトリガーできます。
メモリの量、スレッドの数、またはホスト インスタンスによって使用されるデータベース接続の数が、設定ダッシュボードで Resource-Based 調整で定義されている調整しきい値を超えています。 これらの値は、 BizTalk:Message Agent パフォーマンス オブジェクト カテゴリで使用できるパフォーマンス モニター カウンターで測定できます。
ホスト インスタンスのメッセージ配信受信レートが、指定されたレート 超過率の値であるメッセージ配信送信レート * を超えています。 [レート オーバードライブ係数] の値は、[設定] ダッシュボードの [Rate-Based 調整] タブで定義されます。 メッセージ配信の受信レートと送信レートは、 BizTalk:Message Agent パフォーマンス オブジェクト カテゴリの対応するパフォーマンス モニター カウンターを使用して測定できます。
ホスト インスタンスによって同時に処理されるメッセージの数が、 CPU あたりのインプロセス メッセージ 数 * ボックスで使用可能な CPU の数を超えています。 インプロセス メッセージのしきい値は、[設定] ダッシュボードの [Resource-Based 調整] タブで定義されます。 ホスト インスタンスによって同時に処理されるメッセージの数は、BizTalk:Message Agent パフォーマンス オブジェクト カテゴリのインプロセス メッセージ数パフォーマンス カウンターで測定できます。
既定の調整動作が変更されました。 BizTalk Server パフォーマンス チューニングの設定ダッシュボードを使用すると 、調整動作に影響するさまざまな値について説明します。
調整条件の重大度に応じて、次のアクションが実行されます。
メッセージを処理するために送信トランスポート アダプターまたはオーケストレーション エンジンにメッセージを配信する前に、ホスト インスタンスの処理ロジックのプログレッシブ遅延が実装されます。 処理ロジックの遅延時間と、その時間がスロットリング条件の重大度に応じて拡大される速度の両方が、その条件の深刻さに応じて変化します。
メモリ内キューで保持できるメッセージの数は限られています。 メモリ内キューは、メッセージ ボックスからメッセージ エージェントにメッセージを配信するための一時的なプレースホルダーとして機能し、メッセージを XLANG に配信し、アダプターを送信します。 既定では、メモリ内キューは CPU あたり 100 個のメッセージを保持するように設定されています。 キューがいっぱいになると、メモリ内キューが解放されるまで、メッセージボックスからメッセージが取り出されなくなります。
メッセージ エージェント スレッド プールのサイズが制限されています。 メッセージ エージェントのスレッド プール サイズを制限することで、ホスト調整メカニズムによって、XLANG およびアダプターに配信されるメッセージの量が効果的に削減されます。
既定のメッセージ エージェント スレッド プール サイズは、[設定] ダッシュボードの [全般] タブで [エンジン スレッドの最大数] の値を変更することで変更できます。 この値の変更の詳細については、「 全般設定を変更する方法」を参照してください。
メモリやその他のリソースの使用は、必要に応じて削減されます。 BizTalk Server は他のサービス クラスに命令を送信して、実行中のスケジュールを退避したり、メモリ キャッシュ サイズを縮小したり、メモリを集中的に消費するスレッドの使用量を制限したりして、メモリ使用量を制限できます。
MessageBox からアダプターおよび XLANG への送信メッセージ フロー
こちらもご覧ください
BizTalk Server でホスト調整を実装する方法
BizTalk Server パフォーマンス チューニングに設定ダッシュボードを使用する