サポート > よくある質問と回答 > トラブルシューティング > ビルド時のメモリ不足

ビルド中に「OutOfMemoryError」と表示されました。

ビルド時における(作業用)メモリ領域が不足している場合、「OutOfMemory」というエラーが発生します。 この対策は、各ポイントにおけるメモリ設定値を増やすことです。以下、個別に対応方法を示します。

Wagby R6 におけるビルド時のメモリ不足の対応

(準備中)

Wagby R5 におけるビルド時のメモリ不足の対応

定義ファイル変換時の場合

  1. $(DEVHOME)\env\build-dev.xml ファイルをテキストエディタで開きます。
  2. 以下の記載が 4 カ所あります。この "256" という値を増やします。
    ...
    <jvmarg value="-Xmx256M"/>
    ...
    
  3. 保存後、Wagby ビルダで再び「定義ファイル変換」を行ってください。

ビルド処理の場合 (1) javac (コンパイル) 時のエラー

モデル数、または 1 モデル内のモデル項目数が多い場合に発生します。

ビルドログ (env\logs\buildlog.txt) を確認し、"javac" という文字の後に OutOfMemory が出ている場合は、このケースです。

  1. $(DEVHOME)\xls-project\project_env.xlsをExcelで開きます。
  2. 「build」のシートを開きます。
  3. 「Javaコンパイル実行時のメモリサイズ(MB)」の数値を増やします。デフォルトでは192になっていますが、これを増やします。 次のパターンを試してください。
    • 256
    • 384
    • 512
    • 768
    • 1024
  4. ビルドを行います。もし同様のビルドエラーが発生した場合は(3)の数値をさらに増やして、ビルドを行います。

ビルド処理の場合 (2) Relaxer処理時のエラー

1 つのモデルに数百個のモデル項目を設定した場合、そのモデルに対応した Java ソースコードを生成する段階で OutOfMemory となる場合があります。

ビルドログ (env\logs\buildlog.txt) を確認し、"Relaxer" という文字の後に OutOfMemory が出ている場合は、このケースです。

  1. $(DEVHOME)\env\work\srcgen\build.xml をテキストエディタで開きます。
  2. 「<target name="do_relaxer"」で始まる行を探します。
  3. 以下の太字文字「<jvmarg value=...」を挿入します。
      <!-- Do relaxer -->
      <target name="do_relaxer" depends="do_relaxer_check" if="create.file">
        <delete quiet="false" failonerror="false">
          <fileset dir="${relaxgen}/${targetdir}" includes="**/*.java"/>
          <fileset dir="${classdir}/${targetdir}" includes="**/*.class"/>
        </delete>
        <java jar="${relaxer_jardir}/Relaxer.jar" fork="true" failonerror="true">
          <jvmarg value="-Xmx128M"/>
          <classpath>
            <pathelement location="${relaxer_jardir}"/>
          </classpath>
          <arg value="-verbose"/>
          <arg line="${option}"/>
          <arg value="-dir:${relaxgen}"/>
          <arg value="-dir.package"/>
          <arg value="-java.package.library:${jfc.schemapath}.model"/>
          <arg value="-package:${targetpath}"/>
          <arg value="${worksrc}/${targetdir}/${targetname}.${relaxschemasuffix}"/>
        </java>
    
      </target>
    
    value の後に続く数値が足りない場合は、適当に増やしてください。省略時の標準は 64M となっています。
  4. Wagby ビルダを起動し「ビルド」処理を実行します。

値を増やす場合は、開発機の搭載メモリ量を超えないようにしてください。上限の目安は、搭載メモリ量の半分程度をみておくとよいでしょう。

このページは役に立ちましたか?