クライアントとの多重接続は、スレッド多重で実現しています。
Interstage HTTP Server 2.2のプロセス構成、およびスレッド構成は、環境定義ファイル(httpd.conf)において以下のディレクティブを使用して設定します。
機能概要 | ディレクティブ | 初期値 |
---|---|---|
クライアント同時接続数 | ThreadsPerChild | 50 |
デーモンプロセスが処理可能なリクエスト数 | MaxRequestsPerChild | 0 |
上記のディレクティブの設定値とプロセス構成・スレッド構成の関係について以下に説明します。
Webサーバを起動すると、デーモンプロセスはThreadsPerChildディレクティブに設定した数の通信スレッドを生成します。クライアントからのリクエストを受け付けたり、通信を切断したりした場合でも、通信スレッド数の増減はありません。
注)証明書監視デーモンスレッドは、SSL運用時、証明書の有効日数を通知する警告メッセージをWebサーバ運用中に出力するように設定した場合に生成されます。警告メッセージの出力の有無は、SSLCertExpireディレクティブで設定します。
クライアントとの同時接続数がThreadsPerChildディレクティブの設定値に達した場合、クライアントからの新しいリクエストはWebサーバ内およびオペレーティングシステム内にキューイングされます。
Webサーバ内の接続待ちキュー数は、1(固定)です。オペレーティングシステム内の接続待ちキュー数は、ListenBacklogディレクティブで最大数を設定します。
■デーモンプロセスが処理可能なリクエスト数
デーモンプロセス生成後に受け付けるリクエストの合計がMaxRequestsPerChildディレクティブの設定値を超過した場合、デーモンプロセスを再起動します。このとき、通信スレッドがクライアントに応答を返して通信を切断したあと、デーモンプロセスは自ら終了します。