Java EEアプリケーションの運用環境に関する以下のトラブルについて対処方法を説明します。
IJServerクラスタ起動時の異常
IJServerクラスタの起動に失敗した場合は、以下のログにエラーメッセージが出力されていないか確認し、「第13章 Java EEのメッセージ」を参照して起動失敗の原因を調査してください。
イベントログ(Windows)/システムログ(Solaris/Linux)
サーバーログ
Java VMログ
IJServerクラスタの起動処理遅延またはハングアップによりIJServerクラスタ起動待ち時間を超過した場合、Java VMログにJava VMプロセスのフルスレッドダンプが出力されます。フルスレッドダンプを参照し、遅延やハングアップの原因となっているアプリケーションがないか確認してください。
通信ポートを獲得できないために起動に失敗している場合は、「7.12 ポートのチューニング」を参照してポート番号をチューニングしてください。
Java VMログにJava VMの異常を示すメッセージが出力されている場合は、「Interstage Application Server/Interstage Web Server トラブルシューティング集」の「Java実行環境運用時の異常」を参照し、起動に失敗した原因を調査してください。
各種ログに出力された情報から原因を特定できない場合は、iscollectinfoコマンドで資料採取を行った上で技術員に連絡してください。
サーバーインスタンスの異常終了
IJServerクラスタプロセスが異常終了した場合は、以下のログにエラーメッセージが出力されていないか確認し、「第13章 Java EEのメッセージ」を参照して異常終了の原因を調査してください。
なお、プロセスの自動再起動機能により業務継続が可能です。
イベントログ(Windows)/システムログ(Solaris/Linux)
サーバーログ
Java VMログ
Java VMログおよびサーバーログにはJDK/JREの異常メッセージが出力される場合があります。調査の際は、以下のマニュアルも参照してください。
「Interstage Application Server/Interstage Web Serverチューニングガイド」の「JDK/JREのチューニング」
各種ログに出力された情報から原因を特定できない場合は、iscollectinfoコマンドで資料採取を行った上で技術員に連絡してください。
なお、運用中にIJServerクラスタプロセスが異常終了した場合、プロセスの自動再起動機能により業務継続が可能です。詳細は、「3.4.4 Java VMプロセスの生死監視」を参照してください。
サーバーインスタンスの状態取得コマンドの復帰に時間がかかる場合
サーバーインスタンスがメモリ不足などにより高負荷状態となっている場合、サーバーインスタンスの状態取得コマンド(asadmin list-instancesコマンド)の復帰に時間がかかり、かつ、結果として「停止状態」が表示される場合があります。
このような場合、しばらく経ってからコマンドを再度実行してください。
なお、高負荷状態のサーバーインスタンスを停止したい場合は、IJServerクラスタ、または、サーバーインスタンスの強制停止を利用してください。
Interstage Java EE Node Agentサービス起動時の異常
Interstage Java EE Node Agentサービスの起動に失敗した場合は、以下のログにエラーメッセージが出力されていないか確認し、「第13章 Java EEのメッセージ」を参照して起動失敗の原因を調査してください。
イベントログ(Windows)/システムログ(Solaris/Linux)
通信ポートを獲得できないために起動に失敗している場合は、「7.12 ポートのチューニング」を参照してポート番号をチューニングしてください。
各種ログに出力された情報から原因を特定できない場合は、iscollectinfoコマンドで資料採取を行った上で技術員に連絡してください。
Interstage Java EE Node Agentサービスの異常終了
Interstage Java EE Node Agentサービスが異常終了した場合、iscollectinfoコマンドで資料採取を行った上で技術員に連絡してください。
なお、Interstage Java EE Node Agentサービスが異常終了すると、以下の機能は動作しません。
IJServerクラスタのJava VMプロセスの生死監視
IJServerクラスタプロセス異常時の自動再起動
アプリケーション最大処理時間の監視
Javaヒープ/Permanent世代領域不足時の制御
Java VMログ(jvm.log)への情報出力
IJServerクラスタの運用状態表示
ただし、運用中のアプリケーションの疎通への影響はありません。
リカバリは、以下の手順で行います。
asadminコマンドのlist-instancesサブコマンドで運用中のサーバーインスタンスを確認します。
起動しているサーバーインスタンスに対して、以下のコマンドを実行します。
[Java EE 共通ディレクトリ]\nodeagents\ijna\<サーバーインスタンス名>\bin\stopserv
[Java EE 共通ディレクトリ]/nodeagents/ijna/<サーバーインスタンス名>/bin/stopserv
以下の手順でInterstage Java EE Node Agentサービスを起動します。
Interstage Java EE Node Agentサービスを停止して、再起動します。
Interstage Java EE Node Agentサービスを起動します。
IJServerクラスタを再度起動します。
注意
リカバリ手順を行わずにInterstage Java EE Node Agentサービスを起動した場合、リカバリを行っていないサーバーインスタンスに対する操作を正しく行うことができません。リカバリ手順を実施することで正常な状態に復旧することが可能です。
リカバリ手順を行わずにInterstage Java EE Node Agentサービスを起動した状態で、リカバリを行う対象のサーバーインスタンスを見分けるためには、Interstage Java EE Node Agentサービスの起動時刻とサーバインスタンスの起動時刻を比較することで判別可能です。サーバーインスタンスの起動時刻が小さい方をリカバリ対象と判断してください。
Interstage Java EE Node Agentサービスの起動時刻はシステムログ・イベントログに出力されるijna10000のメッセージの時刻を、サーバーインスタンスの起動時刻はサーバーログに出力されるSERVER1007の時刻をそれぞれ参照ください。
Interstage Java EE DASサービス起動時の異常
Interstage Java EE DASサービスの起動に失敗した場合は、以下のログにエラーメッセージが出力されていないか確認し、「第13章 Java EEのメッセージ」を参照して起動失敗の原因を調査してください。
イベントログ(Windows)/システムログ(Solaris/Linux)
Interstage Java EE DASサービスのサーバーログ
通信ポートの獲得失敗による起動失敗
通信ポートを獲得できないために起動に失敗している場合は、「7.12 ポートのチューニング」を参照してポート番号をチューニングしてください。
メモリ不足による起動失敗
IJServerクラスタ、およびサーバーインスタンスを多く定義した場合、メモリ不足によりInterstage Java EE DASサービスの起動に失敗する場合があります。
メモリ不足によりInterstage Java EE DASサービスが起動しない場合は、下記手順に従いdomain.xmlを編集してください。
以下手順によりInterstage Java EE DASサービスのJavaヒープ領域を拡張します。
domain.xmlの格納先:
[Java EE共通ディレクトリ]\domains\interstage\config\domain.xml
[Java EE共通ディレクトリ]/domains/interstage/config/domain.xml
Interstage Java EE Node Agentサービスを停止してください。
Interstage Java EE DASサービスを停止してください。通常停止を実施できない場合には、本手順実施後にシステムを再起動してください。
domain.xmlを編集し、ヒープ領域サイズを増やしてください。
テキストエディタなどでファイルを開き、下記 -Xmx512m を -Xmx1024m に変更してください。
[編集する要素]
<domain> <configs> <config dynamic-reconfiguration-enabled="true" name="server-config"> <java-config> <jvm-options>-Xmx512m</jvm-options> |
asadmin verify-domain-xmlサブコマンドを利用し、定義の内容を検証してください。
Interstage Java EE DASサービスを起動してください。通常停止を行う際に失敗していた場合は、システムを再起動してください。
Interstage Java EE Node Agentサービスを起動してください。
クラスタの定義項目"ハートビート"が有効に設定されている場合、定義済みのIJServerクラスタを削除することにより、Interstage Java EE DASサービスのメモリ使用量を削減できる可能性があります。
"物理メモリ使用量"に記載した見積もり式に当てはめて削除する必要のあるIJServerクラスタ数を算出し、以下の手順でIJServerクラスタを削除してください。作業を行う前に、事前にIJServerクラスタの配備資源やdomain.xml、workers2.propertiesのバックアップをとることを推奨します。バック アップの方法は、「10.1 資源のバックアップとリストア」を参照してください。
domain.xmlの格納先:
[Java EE共通ディレクトリ]\domains\interstage\config\domain.xml
[Java EE共通ディレクトリ]/domains/interstage/config/domain.xml
workers2.propertiesの格納先:
C:\Interstage\F3FMjs5\conf\jk2\[Webサーバ名]\workers2.properties
/opt/FJSVjs5/conf/jk2/[Webサーバ名]/workers2.properties
Interstage Java EE Node Agentサービスを停止してください。通常停止を実施できない場合には、プロセスを強制停止してください。
Interstage Java EE DASサービスを停止してください。通常停止を実施できない場合には、プロセスを強制停止してください。
Webサーバを停止してください。詳細は、「Interstage HTTP Server 運用ガイド」を参照してください。
Interstage管理コンソールを停止してください。詳細は、「Interstage Application Server 運用ガイド」を参照してください。
以下のとおりdomain.xmlを編集してください。
heartbeatの無効化
すべてのIJServerクラスタに対応したcluster要素の"heartbeat-enabled"を"false"に設定してください。
<cluster config-ref="${IJServer名}-config" |
asadmin verify-domain-xmlサブコマンドを利用し、定義の内容を検証してください。
Webサーバを起動してください。詳細は、「Interstage HTTP Server 運用ガイド」を参照してください。
Interstage管理コンソールを起動してください。詳細は、「Interstage Application Server 運用ガイド」を参照してください。
Interstage Java EE DASサービスを起動してください。
asadminコマンド、またはGUIを利用して、削除対象のIJServerクラスタとサーバーインスタンスを削除してください。
Interstage Java EE Node Agentサービスを起動してください。
各種ログに出力された情報から原因を特定できない場合は、iscollectinfoコマンドで資料採取を行った上で技術員に連絡してください。
Java EE共通ディレクトリが参照できないことによる起動失敗
Java EE共通ディレクトリが参照できない場合、Interstage Java EE DASサービスの起動に失敗します。
クラスタサービス連携のためにJava EE共通ディレクトリを共用ディスクに配置している場合は、必ずJava EE共通ディレクトリを参照可能な運用ノードから操作を行ってください。
Interstage Java EE DASサービスの異常終了
Interstage Java EE DASサービスが異常終了した場合、システムログ/イベントログにエラーメッセージが通知されます。iscollectinfoコマンドで資料採取を行った上で技術員に連絡してください。
なお、Interstage Java EE DASサービスが異常終了すると、Interstage Java EE管理コンソール、およびasadminコマンドは利用できません。再度、Interstage Java EE DASサービスを起動することで、上記機能が有効になります。
Interstage Java EE DASサービスでのアプリケーション運用時の異常
Interstage Java EE DASサービスでアプリケーションを運用する際の異常については、「14.2.3 アプリケーションの運用に関する異常」を参照してください。