Webサーバの運用時に異常が発生した場合の対処方法について説明します。
参照
Webアプリケーション運用時の異常については、以下のマニュアルを参照してください。
Java EE機能を使用している場合
「第10章 Java EE使用時の異常」-「10.3 Webアプリケーションの開発・運用時の異常」
J2EE機能を使用している場合
「J2EE ユーザーズガイド(旧版互換)」の「J2EEアプリケーション開発・運用時の異常」-「Webアプリケーションの開発・運用時の異常」
Webサーバから応答がない/Webサーバからのレスポンスが遅延する
■手順1(Webサーバの状態確認)
ihsdispコマンドを-aオプションを指定して実行し、運用中のWebサーバの状態を表示します。その表示内容について、以下の図を参考にして問題がないかを確認し、それぞれの対処を行ってください。Webサーバの動作状態の表示方法については、「Interstage HTTP Server 運用ガイド」の「運用・保守」-「動作状態表示」を参照してください。
■手順2(トレースログの確認)
トレースログを参照し、本現象が発生した時間帯のトレース情報の出力内容から問題がないかを確認します。トレースログの詳細については、「Interstage HTTP Server 運用ガイド」の「ログ」-「トレースログ」を参照してください。
トレースログのイベント(conn、recv、call、rtn、send、disc)出力を以下の方法で抽出します。イベントの出力の流れについては、以下の図を参考にしてください。
トレース情報を、同一通信スレッドのスレッドID単位で抽出します。本現象発生時のクライアントのIPアドレスがわかっている場合は、そのクライアントIPアドレスが出力されているconnイベントのスレッドID単位で抽出してください。
トレース情報を、同一通信プロセスのプロセスID単位で抽出します。本現象発生時のクライアントのIPアドレスがわかっている場合は、そのクライアントIPアドレスが出力されているconnイベントのプロセスID単位で抽出してください。
1.で抽出したトレース情報の出力内容について、以下の図を参考にしてそれぞれの対処を行います。
■対処1
Webサーバが起動されていません。
Webサーバを起動してください。
■対処2
Webサーバにリクエストが届いていない可能性があります。
クライアントからリクエストデータが送信されているかを確認してください。
■対処3
POSTリクエストの場合、クライアントからボディデータが届いていない可能性があります。
クライアントからPOSTリクエストのボディデータが送信されているかを確認してください。
■対処4
Servletサービスのアプリケーションの処理が遅延している可能性があります。
Webサーバコネクタおよびアプリケーションに問題が発生していないかを確認してください。
注)「手順2(トレースの確認)」では、トレース情報の出力内容が以下の状態の場合に該当します。
callイベントのあとに、rtnイベントが出力されていない
callイベントとrtnイベントの時間差が大きい
■対処5
リクエスト送信元のクライアントと送信先のWebサーバ間のネットワーク機器(ルータ、負荷分散装置など)で遅延が発生している可能性があります。
クライアントとWebサーバ間のネットワーク機器(ルータ、負荷分散装置など)が正常に動作しているかを確認してください。
■対処6
処理中のリクエスト数(requests currently being processed)が同時接続数に達している場合は、必要に応じて、以下の手順でクライアントの同時接続数の設定値を増加してください。
Interstage管理コンソールで設定する場合
Webサーバの環境設定画面で設定します。Interstage管理コンソールの定義方法については、Interstage管理コンソールのヘルプを参照してください。
環境定義ファイル(httpd.conf)を編集して設定する場合
ThreadsPerChildディレクティブの設定値を変更します。
MaxClientsディレクティブの設定値を変更します。
環境定義ファイル(httpd.conf)の設定方法の詳細については、「Interstage HTTP Server 運用ガイド」の「環境設定」-「環境定義ファイル」-「クライアントの同時接続数の設定」を参照してください。
なお、Webサーバの起動後、リクエスト数がはじめてクライアントの同時接続数に達した際に、以下のメッセージがエラーログに出力されます。エラーログのメッセージの内容と対処については、「メッセージ集」の「Interstage HTTP Serverが出力するメッセージ」-「Interstage HTTP Serverのエラーログ」を参照してください。
Server ran out of threads to serve requests. Consider raising the ThreadsPerChild setting
注)Win32DisableAcceptExディレクティブを設定している場合、本メッセージは出力されません。
The number of requests received simultaneously reached the value set in the MaxClients directive.
■対処7
SSL通信においてSSLハンドシェイクに失敗した可能性があります。
エラーログが出力されていないかを確認してください。エラーログが出力されている場合は、そのメッセージの異常の原因を取り除いてください。エラーログのメッセージの内容と対処については、「メッセージ集」の「Interstage HTTP Serverが出力するメッセージ」-「Interstage HTTP Serverのエラーログ」を参照してください。
■対処8
ログのローテーション機能により、問題が発生した時間帯のトレースログが削除された可能性があります。
トレースログのファイルサイズおよびファイル数の上限値を確認してください。トレースログの設定については、「Interstage HTTP Server 運用ガイド」の「環境定義ファイル」-「トレースログの設定」を参照してください。
■対処9
iscollectinfoコマンドを使用して調査情報を採取した後、技術員に連絡してください。資料採取の詳細については、「メッセージ集」の「技術員連絡の前に」を参照してください。
ログファイルが出力されなくなった
本現象が発生した場合、最新のログファイルを誤って操作した可能性があります。Webサーバ運用中は、最新のログファイルの編集/削除などの操作を行うことはできません。最新のログファイルを誤って操作してしまった場合は、Webサーバを再起動してください。
Webブラウザからアクセスすると、意図しないページが表示される
本現象が発生した場合、Interstage HTTP Serverのポート番号(省略値:80)と他のWebサーバ(基本ソフトウェアにバンドルされるApache HTTP Serverなど)のポート番号が重複している可能性があります。
Webサーバを共存して運用する場合は、すべてのWebサーバに異なるポート番号を設定する必要があります。
他のWebサーバが同一のポート番号で起動されている場合は、Interstage HTTP Serverのポート番号を変更して、Webサーバを再起動してください。Interstage HTTP Serverのポート番号の設定方法については、「Interstage HTTP Server 運用ガイド」の「環境設定」-「環境定義ファイル」-「ポート番号とIPアドレスの設定」を参照してください。