Javaサービスのヒープサイズを変更してみよう

2024年3月23日テクニカルメモ

バージョン9.0.3

Javaサービスとは

WebFOCUSでは「グラフ作成」、「Excelファイル作成」「JDBCドライバ接続(RedShift検索やVertica」でJavaサービス(jscom3プロセス)を使用いたします。

Javaサービスのため利用可能なメモリは、ヒープと呼ばれるJVM上のメモリ空間を使用し、メモリ空間についてはヒープサイズの設定で上限値が設定されております。

上限値があるため大量データを扱う場合などに設定の上限を超えるメモリの使用でメモリが不足し Javaサービス(jscom3プロセス)が稼働不可となる場合があります。

そのため、アプリケーションの利用用途に応じて Javaサービス(jscom3プロセス) のヒープサイズを設定する必要があります。

関連ログ

WebFOCUS Reporting Serverログ(/ibi/srv90/wfs)

  • edaprint.log または edapriXX.log ※XXには連番が振られ世代管理されております。 
 W [jscomid=1] nj2c.readAndExecuteCommand(): exception
 - java.lang.OutOfMemoryError: Java heap space

OutOfMemoryError が記録されている場合にはメモリの枯渇により、 Javaサービス(jscom3プロセス) の稼働が不可となっている場合がございます。

よくある発生事象

  • 大量データの処置に伴うJavaサービス(jscom3プロセス)のメモリ枯渇

対応・設定方法

OutOfMemoryError が記録されている場合にはメモリの枯渇により、 Javaサービス(jscom3プロセス) のヒープサイズの最大値を変更することにより、 「OutOfMemoryError」(メモリ不足)を解消することができます。しかし、Javaサービスの起動数、同時間帯のリクエスト集中や処理内容によっては、同エラーが再度発生する可能性もあります。アプリケーションの運用状況に応じてヒープサイズの最大値を増加していただく必要があります。

※ハードウェアに搭載された物理メモリサイズの空きメモリ量の範囲内となります。

確認・設定方法

  1. Webコンソール(http://サーバ名:8121/)へ管理者ユーザーでアクセスします。
  1. 画面左側ツリーより [Java サービス] – [DEFAULT]を右クリックし、[プロパティ]を選択します。
  1. Javaサービスの構成画面で[JVMの設定]を開き、メモリサイズを設定します。
    Java 初期ヒープサイズ:最小値(MBで指定)
    Java 最大ヒープサイズ:最大値(MBで指定

    1つのJavaサービス(jscom3プロセス)に割り当てるメモリとなります。複数のJavaサービス(jscom3プロセス)がある場合はそれぞれのプロセスに割り当てます。

Javaサービスが2つある場合に上記の最大ヒープを1024Mbyte設定した場合はメモリ使用量は合計で2048Mbyteを使用します。

補足

Javaサービスの起動数、リフレッシュ回数は以下のパラメータで管理されます。

パラメータ名説明初期値備考(根拠)
REFRESHJVM(JSCOM3)を再起動するまでの接続数0(無制限)JSCOM3プロセスの使用回数を設定定期的に再起動を行わせる場合は、接続数を指定(値が小さい場合、再起動する頻度が増え、停止時に処理要求が入るとエラーになる)
NUMBER_READYプリスタートするJVM(JSCOM3)の同時起動数
※マルチタスクで複数の処理要求を受付
1JSCOM3プロセスがクラッシュした場合、Excel出力やグラフ出力、JDBCドライバでのDBにアクセス出来なくなるため、複数プロセスを冗長化させることを推奨