2010年8月6日金曜日

JBossやTomcatのデバッグ

まずはプロセスIDを取得
$ jps


プロセスのヒープメモリをダンプ
$ jmap -dump:live,format=b,file=/var/tmp/jboss.log [PID]


ダンプ内容を確認
$jhat [dump file]

でも
% jhat jboss.log 
Reading from jboss.log...
Dump file created Mon Sep 13 08:56:53 CEST 2010
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Hashtable.rehash(Hashtable.java:356)
at java.util.Hashtable.put(Hashtable.java:412)
at com.sun.tools.hat.internal.model.Snapshot.addHeapObject(Snapshot.java:153)
at com.sun.tools.hat.internal.parser.HprofReader.readInstance(HprofReader.java:728)
at com.sun.tools.hat.internal.parser.HprofReader.readHeapDump(HprofReader.java:474)
at com.sun.tools.hat.internal.parser.HprofReader.read(HprofReader.java:226)
at com.sun.tools.hat.internal.parser.Reader.readFile(Reader.java:79)
at com.sun.tools.hat.Main.main(Main.java:143)

とかがでてしまうなら、
$ jhat -J-Xmx512m  [dump file]

としてみましょう。そしてブラウザからhttp://127.0.0.1:7000/ にアクセス。

0 件のコメント: