Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)


2.14.1 同時実行スレッド数の制御の仕組み(Webコンテナ単位)

Webコンテナ単位での同時実行スレッド数の制御の仕組みについて,次の図で説明します。

図2‒14 Webコンテナ単位での同時実行スレッド数制御

[図データ]

例えば,Webコンテナに二つのWebアプリケーションがデプロイされていて,同時実行スレッド数に「5」を設定している場合,二つのWebアプリケーションで同時に実行できるスレッド数は5となります。

Webコンテナ単位に同時実行スレッド数を設定することで,Webコンテナにデプロイされた複数のWebアプリケーションのうち,一つのWebアプリケーションにアクセスが集中した場合でも,アクセスが集中しているWebアプリケーションにスレッドを割り当てることができます。この仕組みについて次の図で説明します。

図2‒15 アクセスが集中したときのスレッドの扱い(Webコンテナ単位の場合)

[図データ]

図のように,WebコンテナにWebアプリケーションが二つデプロイされていて,同時実行スレッド数に「5」が設定されている場合に,Webアプリケーション1にリクエストが集中すると,5スレッドすべてがWebアプリケーション1に割り当てられます。

一方,Webアプリケーション2に対するリクエストは,Webアプリケーション1のリクエスト処理が完了するまで,Webコンテナ単位の実行待ちキューにためられます。なお,Webコンテナ単位の実行待ちキューにためられたリクエストは,リクエスト処理の完了後,順次実行されます。

Webコンテナ単位の実行待ちキューからあふれたリクエストは,Listenキューに蓄えられ,実行中のリクエストが完了次第順次取り出されます。クライアントからの接続要求が指定した最大値を超えた場合,または接続タイムアウト時間内に実行されなかった場合,クライアントはサーバへの接続に失敗します。

リバースプロキシと常設コネクションで接続する構成の場合,Listenキューに蓄えられたリクエストは実行されることがないため,リバースプロキシはサーバへの接続に失敗します。