異常終了への対応

Webコンテナ(WebOTXドメイン)が動作するJava VMが異常終了する場合の原因の一つと して、HotSpotコンパイルの問題があります。

ここでは、HotSpotコンパイルの問題の確認と対処について説明します。

状況の確認方法

Java VMのオプションに-XX:+PrintCompilationを追加して起動し、ログを採取します。Java VMオ プションは、otxadminコマンドを使用して次のコマンドを実行します。

otxadmin> create-jvm-options --user <ユーザ名> --password <パスワード> --host <ホスト名> --port <管理ポート>
          -XX\\:+PrintCompilation

Windowsの場合には、次のJava VMオプションも追加します。

otxadmin> create-jvm-options --user <ユーザ名> --password <パスワード> --host <ホスト名> --port <管理ポート>
          -Xrunwojconsole

オプションを追加したらドメインを停止します。

ドメインを起動後、アプリケーションを実行して、現象を再現させます。現象が再現した時点 で、${INSTANCE_ROOT}/logs/server.log(Windowsの 場合、${INSTANCE_ROOT}\logs\jvm_stdout.log)に出力されている最後の メソッド名がHotSpotコンパイルでエラーになっているメソッドです。次の対処方法に従って、 対処してください。対処後には、HotSpotコンパイルのログが出力されるままになりますので、 追加したオプションは元に戻してください。

HotSpotコンパイル中に、他の原因によりJava VMが終了した場合には、上記の対処を 行っても改善しないことがあります。hs_err_pidxxx.logファイルや、コアダンプで原因を調査する 必要があります。開発元へお問い合わせください。

対処方法

該当メソッドをHotSpotコンパイルの対象外にするために、“.hotspot_compiler”ファイルを 作成します。“.hotspot_compiler”ファイルには、対象となるメソッドを記述します。記述例を 次に示します。

com/test/testapのtestMethodのコンパイルが異常終了の引き金になっている場合

exclude com/test/testap testMethod

${INSTANCE_ROOT}/configに“.hotspot_compiler”ファイルを 格納してください。

次のJava VMオプションを追加します。

otxadmin> create-jvm-options --user <ユーザ名> --password <パスワード> --host <ホスト名> --port <管理ポート>
          -XX:CompileCommandFile=${INSTANCE_ROOT}/config/.hotspot_compiler


関連情報