Comments
Transcript
Interstage Java EEにおけるHTTPサービスの受信バッファーサイズの
Interstage Java EE における HTTP サービスの受信バッファーサイズの変更手順について 2012 年 12 月 20 日 富士通株式会社 1. 概要 Interstage Java EE における、HTTP サービスの受信バッファーサイズの変更手順を公開します。 Interstage Java EE の HTTP サービスでは、サーバの負荷を軽減するため、受け付けるリクエストライン と全リクエストヘッダーの合計サイズを制限(4096 バイト)しており、サイズが超過した場合はエラーレ スポンスを返却しています。 公開する変更手順により、利用環境に応じて HTTP サービスの受信バッファーサイズのチューニングが可 能となります。 2. 適用条件 本変更手順は、以下の環境のみ適用可能です。 z Interstage Application Server V9.2、V9.3(全 OS、全エディション) ※V10.0 以降では、本変更手順で指定する定義項目を製品マニュアルで公開しています。 V10.0 以降の HTTP サービスの受信バッファーサイズの初期値は 49152(バイト)です。 3. 変更手順 以下のコマンドを実行して、HTTP サービスの受信バッファーサイズを設定します。 設定値の変更によるサーバーインスタンスなどの再起動は不要です。 asadmin set ${clusterName_instanceName_configName}.http-service.connection-pool.receive-buffer-size-in-bytes=設定値 また、以下のコマンドを実行して、HTTP サービスの受信バッファーサイズの設定値を確認できます。 asadmin get ${clusterName_instanceName_configName}.http-service.connection-pool.receive-buffer-size-in-bytes ¾ asadmin コマンドは、製品をデフォルトのインストール先にインストールした場合、以下に格納さ れています。 Windows C:¥Interstage¥F3FMisjee¥bin Solaris/Linux /opt/FJSVisjee/bin ¾ ${clusterName_instanceName_configName}:IJServer クラスタ名、サーバーインスタンス名、ま たは設定名を指定してください。 設定値には、受信バッファーサイズを 1∼2147483647(バイト)の整数値で指定します。リクエス トラインと全リクエストヘッダーの合計サイズよりも大きな値を指定してください。 ¾ <実行例> IJServer クラスタ IJServer001 の HTTP サービスの受信バッファーサイズに 49152(バイト)を設定す る場合。 >asadmin set IJServer001.http-service.connection-pool.receive-buffer-size-in-bytes=49152 IJServer001.http-service.connection-pool.receive-buffer-size-in-bytes=49152 IJServer クラスタ IJServer001 の HTTP サービスの受信バッファーサイズの設定値を確認する場合。 >asadmin get IJServer001.http-service.connection-pool.receive-buffer-size-in-bytes IJServer001.http-service.connection-pool.receive-buffer-size-in-bytes=49152 以上で、HTTP サービスの受信バッファーサイズの変更が完了します。 Copyright 2012 FUJITSU LIMITED 1/2 4. 注意事項 ¾ ¾ ¾ 3.変更手順 による設定値の変更を行わない場合は、初期値 4096(バイト)で動作します。 設定範囲外の値を設定した場合は、省略値 8192(バイト)で動作します。 本項目の値を増やした場合、メモリ使用量(ヒープ領域)が増大する可能性があります。 必要に応じて、以下の式で見積もった値をメモリ使用量に加算してください。 受信バッファーサイズ × スレッド数(要求処理スレッドの最大数)(単位:バイト) ¾ リクエストラインとリクエストヘッダーの合計サイズが、設定値を超えるリクエストを実行した場 合に、以下の現象となりリクエスト処理に失敗します。 z クライアントに HTTP ステータスコード 400 が返却される。 z サーバーログ(server.log)に以下のメッセージが出力される。 ISJEE: ERROR: ISJEE_WEB0777: Unblocking keep-alive ThreadID=XX,ThreadName=httpWorkerThread-XXXX-X java.lang.IllegalStateException: PWC4662: Request header is too large ・・・ exception: − Copyright 2012 FUJITSU LIMITED 2/2 以上 −