WebSphere Application Server には、相互に関連のあるコンポーネントが含まれています。 それらは、エンドツーエンド e-business アプリケーションのカスタム・ニーズをサポートするように 協調しながら調整する必要があります。 これらの調整は、システムが全体の安定度を維持しながら、最大のスループットを 達成するのに役立ちます。
相互接続されたコンポーネントから成るこのグループは、 キューイング・ネットワークとして知られています。 これらのキューまたはコンポーネントには、 ネットワーク、Web サーバー、Web コンテナー、EJB コンテナー、データ・ソース、 および場合によってはカスタム・バックエンド・システムへの接続マネージャーが含まれます。これらのリソースはそれぞれ、リソースの使用を待つ要求のキューと して表されます。
キューイング・ネットワークを構成するほとんどのキューは、クローズ・キュ ーです。クローズ・キューは、キュー内に存在する要求の最大数に制限を設けていますが、 オープン・キューに制限はありません。クローズ・キューは、システム・リソースに対する厳格な管理をサポートしています。 例えば、Web コンテナーのスレッド・プールの設定値が、Web コンテナー・キューのサイズを制御します Web コンテナー内で稼働する平均的なサーブレットが、 各要求ごとに 10 MB のオブジェクトを作成する場合は、 スレッド・プールの値を 100 にすると、Web コンテナーが 消費するメモリーは 1 GB に制限されます。
クローズ・キューでは、要求はアクティブまたは待ち状態のどちらかになります。アクティブな要求は、処理中かダウンストリーム・キューからの応答待ちのどちらかです。 例えば、Web サーバー内のアクティブ要求は、処理中 (静的 HTML の検索など) か、 または Web コンテナー内で要求の完了待ちのどちらかになります。 待ち要求は、アクティブになるのを待っている状態です。アクティブな要求の 1 つがキューからなくなるまで、 この要求は待ち状態のままになります。
WebSphere Application Server のデータ・ソースと同様に、WebSphere Application Server がサポートするすべての Web サーバーはクローズ・キューです。 Web コンテナーは、オープン・キューとして構成することも、クローズ・キューとして構成することもできます。 通常は、クローズ・キューにすることをお勧めします。 EJB コンテナーはオープン・キューです。プール内に使用可能なスレッドがない場合、 その要求の継続時間だけ新規のキューが作成されます。
サーブレットによって Enterprise Bean が呼び出された場合、Web コンテナーは EJB コンテナーへの同時要求の総数を制限します。これは、Web コンテナーにも制限があるためです。 Web コンテナーが同時要求の総数を制限するのは、Enterprise Bean が実行のサーブレット・スレッドから呼び出された場合のみです。何の妨げもなく、スレッドを作成して EJB コンテナーを要求攻めにすることができます。 したがって、サーブレットは専用の処理スレッドを作成するべきではありません。