- PR -

java.OutOfMemory Error

投票結果総投票数:25
tomcat 25 100.00%
  • 投票は恣意的に行われます。統計的な調査と異なり、投票データの正確性や標本の代表性は保証されません。
  • 投票結果の正当性や公平性について、@ITは一切保証も関与もいたしません。
投稿者投稿内容
新米
会議室デビュー日: 2004/01/19
投稿数: 10
投稿日時: 2004-10-29 10:47
●環境
 Apache Tomcat 4.1.24
J2SDK1.4.1_03
OS:Windows2000 Server

すいません。
現在、tomcatのコンソール上にjava.OutOfMemory Errorという表示がでます。
画面のデータ量が多い場所で、ボタンを連打をしたためにjava.OutOfMemory Errorがでたもようです。
webが表示されないという事態になっております。
tomcatの起動方法は、デスクトップのStart Tomcatから起動しております。

ネットで私なりに調査し、環境変数にCATALINA_OPTSに対して以下の設定をしております。
set CATALINA_OPTS="-Xms 256 -Xmx256m"

こちらだけ設定すれば、Tomcat JVMのヒープ領域を確保できるのでしょうか?

私の知識不足のため確認ができません。確認方法及び良い方法があればご教授お願い致します。


_________________
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-10-29 11:01
java.lang.OutOfMemoryError ですよね?

OutOfMemoryError に関する切りわけ、対応方法はこちらが詳しいです。
http://support.bea.com/support_news/product_troubleshooting/Investigating_Out_of_Memory_Memory_Leak_Pattern.html

ヒープを増やしても足りないならメモリリーク、またはパーマネント領域の不足を疑ってみましょう。

[ メッセージ編集済み 編集者: インギ 編集日時 2004-10-29 11:02 ]
未記入
ぬし
会議室デビュー日: 2004/09/17
投稿数: 667
投稿日時: 2004-10-29 12:05
んー、迷いましたが 私も tomcat に一票です。
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2004-10-29 12:23
unibon です。こんにちわ。

引用:

新米さんの書き込み (2004-10-29 10:47) より:
ネットで私なりに調査し、環境変数にCATALINA_OPTSに対して以下の設定をしております。
set CATALINA_OPTS="-Xms 256 -Xmx256m"

こちらだけ設定すれば、Tomcat JVMのヒープ領域を確保できるのでしょうか?

私の知識不足のため確認ができません。確認方法及び良い方法があればご教授お願い致します。


CATALINA_OPTS は良く知らないのですが、スペースがあったり、m がないような極端な値はダメっぽい気がします。
set CATALINA_OPTS="-Xms256m -Xmx256m"
だとどうでしょうか。

また、実際に Servlet/JSP 内で、
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/Runtime.html#freeMemory()
や、totalMemory や maxMemory を取得して表示してみて、設定が効いているかどうかを確認されたほうが良いでしょう。
新米
会議室デビュー日: 2004/01/19
投稿数: 10
投稿日時: 2004-11-04 11:35
新米です。すいません。ご報告遅れました。

私なりに考えてTomcat/binの下にseven.batという設定ファイルを作成いたしました。

起動するときは、binの下に移動し、作成したbatファイルを実行してから、

startup.batを実行するようにしました。

設定は反映いたしました。

seven.batの記述
set CATALINA_OPTS="-Xmx256M -Xms256M -Xss256K -server"

■コンソール上記述
run.maxMemory()335544320
run.totalMemory()52023296
run.freeMemory()17261016

seven.batの記述
set CATALINA_OPTS="-Xmx512M -Xms512M -Xss512K -server"

■コンソール上記述
run.maxMemory()603979776
run.totalMemory()52764672
run.freeMemory()17925904


maxMemoryが変更しております。

TOMCATをサービス化した場合の設定はどのようにすればよろしいのでしょうか?

また、確認方法を教えていただけないでしょうか?

宜しくお願い致します。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-11-04 12:10
ヒープサイズを設定しなおすことで OutOfMemoryError は解消されたのでしょうか?
せっかくですから経過を報告してもらえるとウォッチしている人が安心しますよ。

>TOMCATをサービス化した場合の設定はどのようにすればよろしいのでしょうか?
なんかスレッドの趣旨と変わってきていませんね?必要なら別スレッドを立てた方がスムースかもしれません。

>また、確認方法を教えていただけないでしょうか?
何の確認方法ですか?

[ メッセージ編集済み 編集者: インギ 編集日時 2004-11-04 12:11 ]
新米
会議室デビュー日: 2004/01/19
投稿数: 10
投稿日時: 2004-11-04 13:58
インギさん 言葉が足らなくすいません。

totoです。

ヒープサイズの設定を変更した時点で、3日しかたっておりませんがOutOfMemoryErrorは今のところでておりません。

環境変数の設定では

環境変数にCATALINA_OPTSに対して以下の設定をしております。

set CATALINA_OPTS="-Xms 256 -Xmx256m" 設定

RuntimeクラスのmaxMemory()134217728をコンソール上に出力いたしました。
環境変数の値を変更しても、
set CATALINA_OPTS="-Xms 512 -Xmx512m" しましたが、
maxMemory()134217728の値に変更はありません。
結果、ヒープ領域に反映されていない事が判明いたしました。


■別の方法
Tomcat4.1.24/bin直下にseven.batという設定ファイルを作成しました。
以下の内容です。

seven.batの記述
@echo off

set CATALINA_OPTS="-Xmx512M -Xms512M -Xss512K -server"

echo ok!

DOSプロンプトンで以下のコマンドを実行
C:\Develop\Tomcat 4.1.24\bin>seven.bat run
ok!

Tomcat 4.1.24/binのstartup.batを実行します。

コンソール上にmaxMemory()603979776

設定は変更いたしました。

すいませんが、まだ言葉が足りないと思いますがご指導ご鞭撻の程宜しくお願いします。

武澤
常連さん
会議室デビュー日: 2004/09/27
投稿数: 31
投稿日時: 2004-11-04 15:56
新米さん、こんにちは。

サービス登録されたTomcatへのパラメータについてですが、サービスにはtomcat.exeが登録されている様です。
Tomcat4.0.6しかないのでこれでtomcat.exe /?とすると
jvm_option: An option to use when starting the JVM, such as:
"-Djava.class.path=c:\classes" or "-Xmx128m".
というヘルプが出てきました。

サービスのプロパティを開いて「開始パラメータ」にメモリ設定を加えてみてはいかがでしょうか?

>set CATALINA_OPTS="-Xms 256 -Xmx256m"
set CATALINA_OPTS="-Xms256m -Xmx256m"の誤字ですよね?

以上、よろしくお願いします。

スキルアップ/キャリアアップ(JOB@IT)