« Continuumのビルドスケジュール指定方法 | メイン | 絶対強者(集会所) »

java.lang.OutOfMemoryError: Java heap space

現象

開発中のClick製Webアプリで、急に検索結果が表示されなくなったので調査してみると、OutOfMemoryErrorが 発生していました。発生している箇所はHtmlStringBufferのコンストラクタで、lengthは34763100でした。
    public HtmlStringBuffer(int length) {
        characters = new char[length];
    };

大量の検索結果をテーブルでレンダリングしようとして、Table.toString()を呼び出したところでOutOfMemoryErrorが発生していたみたいです。Javaではヒープサイズを起動時パラメータで 指定するのが流儀なのでとりあえず起動時パラメータを変更して対応することにしました。

対策

EclipseのTomcat Pluginの設定を変更します。ウィンドウ→設定→Tomcat→JVM設定を選択し、 「JVMパラメータへ追加」で、パラメータを追加します。

  • -Xms256m
  • -Xmx512m

※ちなみに他にもパラメータがある場合は、-Dname=value形式で追加できるようです。 1行に複数指定できるかどうかは未確認。

結果

再起動して再度試してみるととりあえず表示できました。しかし検索結果出し過ぎという根本的な 問題があるのでそれは別の方法で対処したいと思います。

トラックバック

このエントリーのトラックバックURL:
http://www.srcw.net/cgi/mt/mt-tb.cgi/53

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2007年07月04日 12:35に投稿されたエントリーのページです。

ひとつ前の投稿は「Continuumのビルドスケジュール指定方法」です。

次の投稿は「絶対強者(集会所)」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。