5.6.4 リクエスト送受信時の通信タイムアウトの設定(Smart Composer機能を使用する場合)
リクエスト送受信時の通信タイムアウトは,クライアント−Webサーバ間,リダイレクタ−Webコンテナ間に設定します。
それぞれの場合での通信タイムアウトの設定方法について説明します。
(1) Webサーバでのリクエスト受信時の設定
クライアントからのリクエストをWebサーバで受信するときの通信タイムアウトは,Webサーバに設定します。Webサーバには,HTTP Serverを使用できます。
(a) 設定方法
クライアントから転送されたリクエストの受信処理の通信タイムアウトを,httpsd.confに設定してください。
-
リクエスト受信処理の待ち時間
Timeoutディレクティブに,クライアントからのリクエスト受信処理の待ち時間(秒)を設定します。Timeoutディレクティブのデフォルト値は300秒です。なお,ここに設定する値は,クライアントへのデータ送信処理に対する通信タイムアウトと共用です。クライアントへのデータ送信処理に対する通信タイムアウトについては,「5.6.6(3) Webサーバでのレスポンス送信時の設定」を参照してください。
(b) 設定時の注意
Webサーバでのリクエスト受信時に設定するタイムアウト値については,クライアント−Webサーバ間のネットワーク構成,およびトラフィックの状態を考慮し,障害が発生したと判断できる時間を設定してください。
(2) リダイレクタでのリクエスト送信時の設定
リダイレクタからWebコンテナにリクエストを送信するときには,Webコンテナとのコネクションを確立してからリクエストを送信します。リダイレクタからWebコンテナにリクエストを送信するときの通信タイムアウトは,コネクション確立時,およびリクエスト送信時に設定できます。また,コネクションの確立およびリクエストヘッダの送信に失敗した場合のリトライ回数を設定できます。
(a) 設定方法
リダイレクタからの,コネクション確立およびリクエスト送信処理の通信タイムアウトおよびリトライ回数を,簡易構築定義ファイルに設定してください。
-
コネクション確立の通信タイムアウト
論理Webサーバ(web-server)の<configuration>タグ内に,JkConnectTimeoutパラメタで,Webコンテナへのコネクション確立処理の待ち時間(秒)を設定します。JkConnectTimeoutパラメタのデフォルト値は30秒です。
-
リクエスト送信処理のタイムアウト
論理Webサーバ(web-server)の<configuration>タグ内に,JkSendTimeoutパラメタで,Webコンテナへのリクエスト送信処理の待ち時間(秒)を設定します。JkSendTimeoutパラメタのデフォルト値は100秒です。
-
コネクション確立およびリクエスト送信のリトライ回数
論理Webサーバ(web-server)の<configuration>タグ内に,JkRequestRetryCountパラメタで,Webコンテナへのコネクション確立およびリクエスト送信のリトライ回数を設定します。JkRequestRetryCountパラメタのデフォルト値は3回です。
(b) 設定時の注意
リダイレクタでのリクエスト送信時に設定する通信タイムアウト値,およびリトライ回数については,次の点に考慮して設定してください。
-
リトライ回数には,初回のコネクション確立およびリクエスト送信が含まれます。このため,初回のコネクション確立またはリクエスト送信処理で失敗した場合,コネクション確立またはリクエスト送信処理のリトライは,2回目としてカウントされます。
-
コネクション確立およびリクエスト送信処理の通信タイムアウト時間に0を指定した場合,またはTCPが持つコネクション確立およびデータ送信の再送タイマより長い時間を設定した場合は,通信タイムアウト時間はTCPの持つタイムアウト時間が適用されます。
(3) Webコンテナでのリクエスト受信時の設定
リダイレクタからのリクエストをWebコンテナで受信するときの通信タイムアウトは,Webコンテナに設定します。
(a) 設定方法
リダイレクタから転送されたリクエストの受信処理の通信タイムアウトを,簡易構築定義ファイルに設定してください。
-
リクエスト受信処理のタイムアウト
論理J2EEサーバ(j2ee-server)の<configuration>タグ内に,webserver.connector.ajp13.receive_timeoutパラメタで,リダイレクタからのリクエスト受信処理の待ち時間(秒)を設定します。パラメタのデフォルト値は100秒です。
(b) 設定時の注意
Webコンテナでのリクエスト受信時に設定するタイムアウト値については,次の点に考慮して設定してください。
-
Webサーバのリクエスト受信時のタイムアウトに設定した時間より,大きい値を設定してください。
Webサーバのリクエスト受信時のタイムアウトに設定した時間より,小さい値を設定しているときに,クライアントや,クライアント−Webサーバ間でネットワーク障害が発生すると,Webサーバより先にWebコンテナでタイムアウトが発生してしまいます。この場合,障害が発生したのが,Webサーバ側であるのか,クライアント側であるのかが判別できなくなります。
-
クライアントからのデータ受信が必要な場合,クライアントとの通信速度を考慮して,データ受信ができる時間を設定してください。
-
リダイレクタでのWebコンテナへのデータの送信時に障害が発生した場合,TCPの再送タイマでのタイムアウトによって障害が検知されます。
なお,UNIXの場合,タイムアウトまでの時間は,OSによって異なります。