ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server メッセージ集
Interstage

68.12.34 EXTP4435

extp: WARNING: EXTP4435: The process has stopped because JavaVM ran out of memory: WU=%s1 KIND=%d1 PSN=%d2 PID=%d3 SYSTEM=%s2
extp: 警告
: EXTP4435: JavaVM のメモリ不足が発生したためプロセスを停止しました: WU=%s1 KIND=%d1 PSN=%d2 PID=%d3 SYSTEM=%s2

可変情報

%s1:ワークユニット名
%d1:メモリ種別コード
%d2:プロセス通番
%d3:プロセス番号
%s2:システム名

意味

JavaVM のヒープ域不足のためIJServer を停止します。

システムの処理

JavaVM のヒープ域不足が発生したIJServer プロセスを停止します。ワークユニット設定でリトライカウントの設定によって、IJServer プロセスは再起動されます。

ユーザの対処

頻繁に発生する場合は、JavaVM オプションで指定するヒープ域を以下のように変更してください。
チューニングの方針については、“チューニングガイド”の“JDK/JREのチューニング”を参照してください。

メモリ種別コード

不足したメモリ領域または、意味

対処

0

Cヒープ領域

IJServer を運用するために必要となるメモリ量を再見積りし、メモリが十分に用意されているか確認してください。

IJServer の必要とするメモリ量に対して、メモリが十分に用意されている場合には、ほかのアプリケーションの使用メモリ量が不足していることが考えられます。

同一マシン上で運用しているほかのアプリケーションについても再見積りを実施し、メモリ量が適当か調査してください。

再見積りの結果、メモリ量が不足していることが確認された場合には、システム管理者に連絡してください。

システム管理者は、メインメモリの増設またはスワップ領域の拡張を行ってください。

また、Java ヒープ量が必要以上に多過ぎた場合には、-Xmx 値や-XX:MaxPermSize の指定値を小さくしてください。

1

Javaヒープ領域

JavaVMオプションの-Xmx オプションでJavaヒープ領域の最大値を拡張して、IJServerを再起動してください。

OutOfMemoryError発生時のJava のヒープ領域は、コンテナ情報ログ(info.log)のheap_sizeを参照して下さい。
heap_sizeがmax_heap_sizeに対して大きな空きがあるように見える場合でも、以下の場合は、ヒープ領域不足になる可能性があります。その場合もヒープ領域の拡張を行ってください。

  • 生成しようとしたオブジェクトが極端に大きい場合

  • 連続したヒープ域がない場合

例)512Mbyte にする場合
  -Xmx512m

2

Java Permanent領域

JavaVM オプションの-XX:MaxPermSize オプションでJava Permanent 領域の最大値を拡張後、IJServer を再起動してください。

OutOfMemoryError 発生時のJava のPermanent領域は、コンテナ情報ログ(info.log)のperm_sizeを参照して下さい。

例)512Mbyte にする場合
  -XX:MaxPermSize=512m

-1

Javaアプリケーション実行時における配列生成式の評価の段階で、配列の長さ(配列要素の数)から、当該配列オブジェクトを割り当てるための領域が十分でないと評価された場合、またはクラスのロード処理でメモリ不足が発生した場合

配列の長さ(配列要素の数)が大きく、配列オブジェクトとしての大きさが2ギガバイト程度もしくはそれ以上の大きさになる配列の定義がある場合には、当該配列の長さを小さくしてください。
配列の長さに問題がない場合は、メモリ種別コードが0の場合の対処を参照してください。

-1より小さい値

JavaVMの情報取得に失敗

コンテナ情報ログ(info.log)のheap_typeの値を参照して、メモリ種別コードを判定して下さい。

上記のJavaヒープ領域、Java Permanent領域、Cヒープ領域の対処を実施してください。


また、JavaVMのヒープ域不足の詳細情報は、IJServerのコンテナ情報ログ(info.log)に出力されるので、出力情報を参照し、チューニングしてください。詳細情報の出力形式については、“チューニングガイド”の“EXTP4435メッセージまたはISJEE_OM1018メッセージが出力された場合”を参照してください。

IJServerのコンテナ情報ログ出力例(Javaヒープ域不足の場合)

      :
--------------------------------------------------------------------------------
OutOfMemory Log
--------------------------------------------------------------------------------
pid=4636
heap_type=1
heap_size=136816
max_heap_size=4194304
perm_size=1811104
max_perm_size=67108864
requested_size=40000016
--------------------------------------------------------------------------------
VM is terminated by occurred OutOfMemoryError on Java heap.

"main" prio=6 tid=0x00036840 nid=0x254 runnable [0x0007f000..0x0007fbf8]
at test.<init>(test.java:10)
at test.main(test.java:5)

なお、何らかの要因でJavaアプリケーションの実行環境が変わった場合には、たとえ実行するJavaアプリケーション自体に変更がない場合であっても、Javaアプリケーション実行時におけるオブジェクトの使われ方(オブジェクトの生成や不要となるタイミングなど)が変化し、それに伴ってガーベジコレクション処理の発生状況も変化する場合があります。その結果、従来環境では出力されなかった本メッセージが、変更後の実行環境では出力されるようになることがあります。

そのためJavaアプリケーションを変更しない場合であっても、以下の例のような要因でJavaアプリケーションの実行環境を変更した場合には、Javaヒープに関する指定を、再度、チューニングする必要があります。

  • アプリケーションサーバーのバージョンを変更した場合。

  • JDK/JREのバージョンを変更した場合。

  • 実行モードを32ビットから64ビットの環境へ変更した場合。

  • ハードウェアを変更した場合。

  • OSを変更した場合。