Java 1.4.2. - full heap dump?

Hello,
Is there any possibility to generate full heap dump (core dump) in java 1.4.2. on demand?
Best regards,
Peter

If you are in Unix platform, you can use this script to have thread dump.
I am not sure whether you can generate coredump with out an application crash .
kill -3 <java pid> will provide full stacktrace of the java process thread dump.
Note: kill -3 will not terminate the java process, it will only generate full stacktrace in your log file and safe to use while the java process is running.
you can get the java process id, using this unix cmd "ps -ef | grep java" .
#!/bin/ksh
[ $# -le 0 ] && echo "USAGE: $0 <pid>" && exit
for i in 1 2
do
DT=`date +%Y%m%d_%H%M`
prstat -Lmp $1 1 1 >> prstat_Lmp_$i_$DT.dmp
pstack $1 >> pstack_$i_$DT.dmp
kill -3 $1
echo "prstat, pstack, and thread dump done. #" $i
sleep 1
echo "Done sleeping."
done
Pls go through some of this links, this will provide you on how to debug the issue with the logs generated by the scripts:
http://support.bea.com/application_content/product_portlets/support_patterns/wls/UnexpectedHighCPUUsageWithWLSPattern.html
http://www.unixville.com/~moazam/stories/2004/05/18/debuggingHangsInTheJvm.html

Similar Messages

  • Full heap dump - weblogic 8.1

    Hi to everyone,
    Is there any possibility to full heap dump (core dump) in weblogic 8.1 manually?
    Best regards,
    Peter

    In JDK6 there are the jhat and jmap utils which are described here
    http://weblogs.java.net/blog/kellyohair/archive/2005/09/heap_dump_snaps.html
    But, prior to that (JDK5 and earlier), you have to use the HAT utility which can be found at
    http://hat.dev.java.net/
    If you are using JRockit, you can use Mission Control for this, I believe. There's an intro to this tool at
    http://dev2dev.bea.com/pub/a/2005/12/jrockit-mission-control.html?page=1

  • Full thread dump Java HotSpot(TM) Server VM (1.4.2_05-b04 mixed mode):

    Hi All,
    I am getting below error message when i am starting JBoss
    Anyone has any idea, why it is happening?
    Full thread dump Java HotSpot(TM) Server VM (1.4.2_05-b04 mixed mode):
    "RMI ConnectionExpiration-[127.0.0.1:33030]" daemon prio=1 tid=0x2a375e90 nid=0xcf9 waiting on condition [2820d000..2820d86c]
         at java.lang.Thread.sleep(Native Method)
         at sun.rmi.transport.tcp.TCPChannel$Reaper.run(TCPChannel.java:447)
         at java.lang.Thread.run(Thread.java:534)
    "RMI TCP Connection(1681)-127.0.0.1" daemon prio=1 tid=0x2cc3e008 nid=0xcf9 runnable [27b7b000..27b7b86c]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:129)
         at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
         at java.io.BufferedInputStream.read(BufferedInputStream.java:201)
         - locked <0x2ed63640> (a java.io.BufferedInputStream)
         at java.io.FilterInputStream.read(FilterInputStream.java:66)
         at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:442)
         at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
         at java.lang.Thread.run(Thread.java:534)
    "RMI RenewClean-[127.0.0.1:33030]" daemon prio=1 tid=0x2ca76ad0 nid=0xcf9 in Object.wait() [29dcd000..29dcd86c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x2ed61c50> (a java.lang.ref.ReferenceQueue$Lock)
         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
         - locked <0x2ed61c50> (a java.lang.ref.ReferenceQueue$Lock)
         at sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:500)
         at java.lang.Thread.run(Thread.java:534)
    "JNP Server" prio=1 tid=0x082dd9c0 nid=0xcf9 runnable [27afa000..27afa86c]
         at java.net.PlainSocketImpl.socketAccept(Native Method)
         at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
         - locked <0x3d145770> (a java.net.PlainSocketImpl)
         at java.net.ServerSocket.implAccept(ServerSocket.java:448)
         at java.net.ServerSocket.accept(ServerSocket.java:419)
         at org.jnp.server.Main.run(Main.java:257)
         at java.lang.Thread.run(Thread.java:534)
    "RMI TCP Connection(1680)-127.0.0.1" daemon prio=1 tid=0x2ca55d80 nid=0xcf9 runnable [27f88000..27f8886c]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:129)
         at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
         at java.io.BufferedInputStream.read(BufferedInputStream.java:201)
         - locked <0x2ecd1e40> (a java.io.BufferedInputStream)
         at java.io.FilterInputStream.read(FilterInputStream.java:66)
         at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:442)
         at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
         at java.lang.Thread.run(Thread.java:534)
    "RMI ConnectionExpiration-[127.0.0.1:33030]" daemon prio=1 tid=0x2df71458 nid=0xcf9 waiting on condition [29e4e000..29e4e86c]
         at java.lang.Thread.sleep(Native Method)
         at sun.rmi.transport.tcp.TCPChannel$Reaper.run(TCPChannel.java:447)
         at java.lang.Thread.run(Thread.java:534)
    "Thread-36" daemon prio=1 tid=0x08541f10 nid=0xcf9 runnable [279f8000..279f886c]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:129)
         at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
         at java.io.BufferedInputStream.read1(BufferedInputStream.java:222)
         at java.io.BufferedInputStream.read(BufferedInputStream.java:277)
         - locked <0x3d8dbc38> (a java.io.BufferedInputStream)
         at com.sun.jndi.ldap.Connection.run(Connection.java:780)
         at java.lang.Thread.run(Thread.java:534)
    "Thread-35" daemon prio=1 tid=0x0811fd00 nid=0xcf9 runnable [27a79000..27a7986c]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:129)
         at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
         at java.io.BufferedInputStream.read1(BufferedInputStream.java:222)
         at java.io.BufferedInputStream.read(BufferedInputStream.java:277)
         - locked <0x3d8d7d50> (a java.io.BufferedInputStream)
         at com.sun.jndi.ldap.Connection.run(Connection.java:780)
         at java.lang.Thread.run(Thread.java:534)
    "Thread-34" daemon prio=1 tid=0x08bc3588 nid=0xcf9 in Object.wait() [27e86000..27e8686c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d8d6050> (a org.jboss.mx.util.ThreadPool$Worker)
         at java.lang.Object.wait(Object.java:429)
         at org.jboss.mx.util.ThreadPool$Worker.run(ThreadPool.java:243)
         - locked <0x3d8d6050> (a org.jboss.mx.util.ThreadPool$Worker)
    "Thread-33" daemon prio=1 tid=0x08bc47b8 nid=0xcf9 in Object.wait() [27f07000..27f0786c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d8d4780> (a org.jboss.mx.util.ThreadPool$Worker)
         at java.lang.Object.wait(Object.java:429)
         at org.jboss.mx.util.ThreadPool$Worker.run(ThreadPool.java:243)
         - locked <0x3d8d4780> (a org.jboss.mx.util.ThreadPool$Worker)
    "Thread-32" daemon prio=1 tid=0x08407010 nid=0xcf9 in Object.wait() [2d2af000..2d2af86c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d895fa8> (a org.jboss.mx.util.ThreadPool$Worker)
         at java.lang.Object.wait(Object.java:429)
         at org.jboss.mx.util.ThreadPool$Worker.run(ThreadPool.java:243)
         - locked <0x3d895fa8> (a org.jboss.mx.util.ThreadPool$Worker)
    "Thread-31" prio=1 tid=0x084065d0 nid=0xcf9 in Object.wait() [27bfc000..27bfc86c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d895bd8> (a java.lang.Object)
         at java.lang.Object.wait(Object.java:429)
         at org.jboss.system.server.ServerImpl$LifeThread.run(ServerImpl.java:731)
         - locked <0x3d895bd8> (a java.lang.Object)
    "Thread-30" prio=1 tid=0x082ef440 nid=0xcf9 in Object.wait() [27c7d000..27c7d86c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d852290> (a org.jboss.mx.util.RunnableScheduler)
         at org.jboss.mx.util.RunnableScheduler.waitOutstanding(RunnableScheduler.java:188)
         - locked <0x3d852290> (a org.jboss.mx.util.RunnableScheduler)
         at org.jboss.mx.util.RunnableScheduler.run(RunnableScheduler.java:93)
         at java.lang.Thread.run(Thread.java:534)
    "Thread-29" prio=1 tid=0x085357c0 nid=0xcf9 in Object.wait() [27cfe000..27cfe86c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d8502e8> (a org.jboss.mx.util.RunnableScheduler)
         at org.jboss.mx.util.RunnableScheduler.waitOutstanding(RunnableScheduler.java:188)
         - locked <0x3d8502e8> (a org.jboss.mx.util.RunnableScheduler)
         at org.jboss.mx.util.RunnableScheduler.run(RunnableScheduler.java:93)
         at java.lang.Thread.run(Thread.java:534)
    "Thread-28" prio=1 tid=0x08fc8d58 nid=0xcf9 in Object.wait() [27d7f000..27d7f86c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d84d6b0> (a org.jboss.mx.util.RunnableScheduler)
         at org.jboss.mx.util.RunnableScheduler.waitOutstanding(RunnableScheduler.java:188)
         - locked <0x3d84d6b0> (a org.jboss.mx.util.RunnableScheduler)
         at org.jboss.mx.util.RunnableScheduler.run(RunnableScheduler.java:93)
         at java.lang.Thread.run(Thread.java:534)
    "Thread-27" daemon prio=1 tid=0x08a3c5f0 nid=0xcf9 runnable [27e05000..27e0586c]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:129)
         at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
         at java.io.BufferedInputStream.read1(BufferedInputStream.java:222)
         at java.io.BufferedInputStream.read(BufferedInputStream.java:277)
         - locked <0x3d8494b8> (a java.io.BufferedInputStream)
         at com.sun.jndi.ldap.Connection.run(Connection.java:780)
         at java.lang.Thread.run(Thread.java:534)
    "Thread-26" daemon prio=1 tid=0x08829d80 nid=0xcf9 in Object.wait() [2bf3a000..2bf3a86c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d83f190> (a java.util.TaskQueue)
         at java.util.TimerThread.mainLoop(Timer.java:429)
         - locked <0x3d83f190> (a java.util.TaskQueue)
         at java.util.TimerThread.run(Timer.java:382)
    "RMI LeaseChecker" daemon prio=1 tid=0x08d475b0 nid=0xcf9 waiting on condition [29bff000..29bff86c]
         at java.lang.Thread.sleep(Native Method)
         at sun.rmi.transport.DGCImpl$LeaseChecker.run(DGCImpl.java:307)
         at java.lang.Thread.run(Thread.java:534)
    "SessionScavenger" daemon prio=1 tid=0x08b8c420 nid=0xcf9 waiting on condition [2a1ff000..2a1ff86c]
         at java.lang.Thread.sleep(Native Method)
         at org.mortbay.jetty.servlet.AbstractSessionManager$SessionScavenger.run(AbstractSessionManager.java:428)
    "SessionScavenger" daemon prio=1 tid=0x082f2760 nid=0xcf9 waiting on condition [2ab72000..2ab7286c]
         at java.lang.Thread.sleep(Native Method)
         at org.mortbay.jetty.servlet.AbstractSessionManager$SessionScavenger.run(AbstractSessionManager.java:428)
    "UILServerILService Accept Thread" prio=1 tid=0x2cc3e9c0 nid=0xcf9 runnable [2abfb000..2abfb86c]
         at java.net.PlainSocketImpl.socketAccept(Native Method)
         at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
         - locked <0x3d63d830> (a java.net.PlainSocketImpl)
         at java.net.ServerSocket.implAccept(ServerSocket.java:448)
         at java.net.ServerSocket.accept(ServerSocket.java:419)
         at org.jboss.mq.il.uil2.UILServerILService.run(UILServerILService.java:118)
         at java.lang.Thread.run(Thread.java:534)
    "OIL2 Worker Server" prio=1 tid=0x2dfe0df0 nid=0xcf9 runnable [2ac7c000..2ac7c86c]
         at java.net.PlainSocketImpl.socketAccept(Native Method)
         at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
         - locked <0x3d63d958> (a java.net.PlainSocketImpl)
         at java.net.ServerSocket.implAccept(ServerSocket.java:448)
         at java.net.ServerSocket.accept(ServerSocket.java:419)
         at org.jboss.mq.il.oil2.OIL2ServerILService.run(OIL2ServerILService.java:366)
         at java.lang.Thread.run(Thread.java:534)
    "UIL Worker" prio=1 tid=0x2ccfca90 nid=0xcf9 runnable [2acfd000..2acfd86c]
         at java.net.PlainSocketImpl.socketAccept(Native Method)
         at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
         - locked <0x3d63da18> (a java.net.PlainSocketImpl)
         at java.net.ServerSocket.implAccept(ServerSocket.java:448)
         at java.net.ServerSocket.accept(ServerSocket.java:419)
         at org.jboss.mq.il.uil.UILServerILService.run(UILServerILService.java:184)
         at java.lang.Thread.run(Thread.java:534)
    "OIL Worker Server" prio=1 tid=0x2bab0a70 nid=0xcf9 runnable [2ad7e000..2ad7e86c]
         at java.net.PlainSocketImpl.socketAccept(Native Method)
         at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
         - locked <0x3d63dad8> (a java.net.PlainSocketImpl)
         at java.net.ServerSocket.implAccept(ServerSocket.java:448)
         at java.net.ServerSocket.accept(ServerSocket.java:419)
         at org.jboss.mq.il.oil.OILServerILService.run(OILServerILService.java:471)
         at java.lang.Thread.run(Thread.java:534)
    "Thread-25" prio=1 tid=0x2cc9ef88 nid=0xcf9 in Object.wait() [2adff000..2adff86c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d63db88> (a java.util.LinkedList)
         at java.lang.Object.wait(Object.java:429)
         at org.jboss.resource.connectionmanager.PoolFiller$1.run(PoolFiller.java:75)
         - locked <0x3d63db88> (a java.util.LinkedList)
         at java.lang.Thread.run(Thread.java:534)
    "Thread-24" prio=1 tid=0x2dfe0268 nid=0xcf9 in Object.wait() [2afc4000..2afc486c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d52f320> (a java.util.ArrayList)
         at org.jboss.resource.connectionmanager.IdleRemover$1.run(IdleRemover.java:66)
         - locked <0x3d52f320> (a java.util.ArrayList)
         at java.lang.Thread.run(Thread.java:534)
    "Thread-23" daemon prio=1 tid=0x2dfce680 nid=0xcf9 in Object.wait() [2b045000..2b04586c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d52f390> (a org.jboss.util.timeout.TimeoutFactory)
         at org.jboss.util.timeout.TimeoutFactory.doWork(TimeoutFactory.java:503)
         - locked <0x3d52f390> (a org.jboss.util.timeout.TimeoutFactory)
         at org.jboss.util.timeout.TimeoutFactory.access$300(TimeoutFactory.java:27)
         at org.jboss.util.timeout.TimeoutFactory$1.run(TimeoutFactory.java:542)
    "Thread-22" prio=1 tid=0x2ccef150 nid=0xcf9 runnable [2b0c6000..2b0c686c]
         at java.net.PlainSocketImpl.socketAccept(Native Method)
         at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
         - locked <0x3d52f400> (a java.net.PlainSocketImpl)
         at java.net.ServerSocket.implAccept(ServerSocket.java:448)
         at java.net.ServerSocket.accept(ServerSocket.java:419)
         at org.jboss.invocation.pooled.server.PooledInvoker.run(PooledInvoker.java:216)
         at java.lang.Thread.run(Thread.java:534)
    "JBossMQ Cache Reference Softner" daemon prio=1 tid=0x2dfe1a28 nid=0xcf9 in Object.wait() [2b147000..2b14786c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d411a00> (a java.lang.ref.ReferenceQueue$Lock)
         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
         - locked <0x3d411a00> (a java.lang.ref.ReferenceQueue$Lock)
         at org.jboss.mq.server.MessageCache.run(MessageCache.java:233)
         at java.lang.Thread.run(Thread.java:534)
    "RMI TCP Accept-0" daemon prio=1 tid=0x2c388ff0 nid=0xcf9 runnable [2b1ef000..2b1ef86c]
         at java.net.PlainSocketImpl.socketAccept(Native Method)
         at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
         - locked <0x3d2c0f90> (a java.net.PlainSocketImpl)
         at java.net.ServerSocket.implAccept(ServerSocket.java:448)
         at java.net.ServerSocket.accept(ServerSocket.java:419)
         at sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:334)
         at java.lang.Thread.run(Thread.java:534)
    "SessionScavenger" daemon prio=1 tid=0x2c3864e0 nid=0xcf9 waiting on condition [2b270000..2b27086c]
         at java.lang.Thread.sleep(Native Method)
         at org.mortbay.jetty.servlet.AbstractSessionManager$SessionScavenger.run(AbstractSessionManager.java:428)
    "PoolThread-4" prio=1 tid=0x2c384e10 nid=0xcf9 in Object.wait() [2b2f1000..2b2f186c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d2c10c8> (a org.mortbay.util.ThreadPool$PoolThread)
         at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:450)
         - locked <0x3d2c10c8> (a org.mortbay.util.ThreadPool$PoolThread)
    "PoolThread-3" prio=1 tid=0x2ba1d4b0 nid=0xcf9 in Object.wait() [2b372000..2b37286c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d2c1120> (a org.mortbay.util.ThreadPool$PoolThread)
         at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:450)
         - locked <0x3d2c1120> (a org.mortbay.util.ThreadPool$PoolThread)
    "PoolThread-2" prio=1 tid=0x2ba1c960 nid=0xcf9 in Object.wait() [2b3f3000..2b3f386c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d2c1178> (a org.mortbay.util.ThreadPool$PoolThread)
         at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:450)
         - locked <0x3d2c1178> (a org.mortbay.util.ThreadPool$PoolThread)
    "PoolThread-1" prio=1 tid=0x2ba1be10 nid=0xcf9 in Object.wait() [2b474000..2b47486c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d2c11d0> (a org.mortbay.util.ThreadPool$PoolThread)
         at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:450)
         - locked <0x3d2c11d0> (a org.mortbay.util.ThreadPool$PoolThread)
    "PoolThread-0" prio=1 tid=0x2ba1b2c0 nid=0xcf9 in Object.wait() [2b4f5000..2b4f586c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d2c1228> (a org.mortbay.util.ThreadPool$PoolThread)
         at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:450)
         - locked <0x3d2c1228> (a org.mortbay.util.ThreadPool$PoolThread)
    "Acceptor ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=8009]" prio=1 tid=0x2ba1af70 nid=0xcf9 runnable [2b576000..2b57686c]
         at java.net.PlainSocketImpl.socketAccept(Native Method)
         at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
         - locked <0x3d2c12d8> (a java.net.PlainSocketImpl)
         at java.net.ServerSocket.implAccept(ServerSocket.java:448)
         at java.net.ServerSocket.accept(ServerSocket.java:419)
         at org.mortbay.util.ThreadedServer.acceptSocket(ThreadedServer.java:346)
         at org.mortbay.util.ThreadedServer$Acceptor.run(ThreadedServer.java:507)
    "PoolThread-9" prio=1 tid=0x2ba1a420 nid=0xcf9 in Object.wait() [2b5f7000..2b5f786c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d2c13a8> (a org.mortbay.util.ThreadPool$PoolThread)
         at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:450)
         - locked <0x3d2c13a8> (a org.mortbay.util.ThreadPool$PoolThread)
    "PoolThread-8" prio=1 tid=0x2ba198d0 nid=0xcf9 in Object.wait() [2b678000..2b67886c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d2c1400> (a org.mortbay.util.ThreadPool$PoolThread)
         at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:450)
         - locked <0x3d2c1400> (a org.mortbay.util.ThreadPool$PoolThread)
    "PoolThread-7" prio=1 tid=0x2c3a4ad8 nid=0xcf9 in Object.wait() [2b6f9000..2b6f986c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d2c1458> (a org.mortbay.util.ThreadPool$PoolThread)
         at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:450)
         - locked <0x3d2c1458> (a org.mortbay.util.ThreadPool$PoolThread)
    "PoolThread-6" prio=1 tid=0x2c3a4788 nid=0xcf9 in Object.wait() [2b77a000..2b77a86c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d2c14b0> (a org.mortbay.util.ThreadPool$PoolThread)
         at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:450)
         - locked <0x3d2c14b0> (a org.mortbay.util.ThreadPool$PoolThread)
    "PoolThread-5" prio=1 tid=0x2c3a3c58 nid=0xcf9 in Object.wait() [2b7fb000..2b7fb86c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d2c1508> (a org.mortbay.util.ThreadPool$PoolThread)
         at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:450)
         - locked <0x3d2c1508> (a org.mortbay.util.ThreadPool$PoolThread)
    "PoolThread-4" prio=1 tid=0x2ba8bfe8 nid=0xcf9 in Object.wait() [2b87c000..2b87c86c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d2c1560> (a org.mortbay.util.ThreadPool$PoolThread)
         at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:450)
         - locked <0x3d2c1560> (a org.mortbay.util.ThreadPool$PoolThread)
    "PoolThread-3" prio=1 tid=0x2ba78040 nid=0xcf9 in Object.wait() [2b8fd000..2b8fd86c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d2c15b8> (a org.mortbay.util.ThreadPool$PoolThread)
         at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:450)
         - locked <0x3d2c15b8> (a org.mortbay.util.ThreadPool$PoolThread)
    "PoolThread-2" prio=1 tid=0x2ba69c18 nid=0xcf9 in Object.wait() [2b97e000..2b97e86c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d2c1610> (a org.mortbay.util.ThreadPool$PoolThread)
         at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:450)
         - locked <0x3d2c1610> (a org.mortbay.util.ThreadPool$PoolThread)
    "PoolThread-1" prio=1 tid=0x2ba69a08 nid=0xcf9 in Object.wait() [2b9ff000..2b9ff86c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d2c1668> (a org.mortbay.util.ThreadPool$PoolThread)
         at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:450)
         - locked <0x3d2c1668> (a org.mortbay.util.ThreadPool$PoolThread)
    "PoolThread-0" prio=1 tid=0x2ba7ebc8 nid=0xcf9 in Object.wait() [2bb8e000..2bb8e86c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d2c16c0> (a org.mortbay.util.ThreadPool$PoolThread)
         at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:450)
         - locked <0x3d2c16c0> (a org.mortbay.util.ThreadPool$PoolThread)
    "Acceptor ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=8020]" prio=1 tid=0x2ba7ea18 nid=0xcf9 runnable [2bc0f000..2bc0f86c]
         at java.net.PlainSocketImpl.socketAccept(Native Method)
         at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
         - locked <0x3d2c1770> (a java.net.PlainSocketImpl)
         at java.net.ServerSocket.implAccept(ServerSocket.java:448)
         at java.net.ServerSocket.accept(ServerSocket.java:419)
         at org.mortbay.util.ThreadedServer.acceptSocket(ThreadedServer.java:346)
         at org.mortbay.util.ThreadedServer$Acceptor.run(ThreadedServer.java:507)
    "SessionScavenger" daemon prio=1 tid=0x2ba8bb18 nid=0xcf9 waiting on condition [2bd90000..2bd9086c]
         at java.lang.Thread.sleep(Native Method)
         at org.mortbay.jetty.servlet.AbstractSessionManager$SessionScavenger.run(AbstractSessionManager.java:428)
    "Thread-4" daemon prio=1 tid=0x2ba8c6f0 nid=0xcf9 in Object.wait() [2beb9000..2beb986c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d23d438> (a java.util.TaskQueue)
         at java.util.TimerThread.mainLoop(Timer.java:429)
         - locked <0x3d23d438> (a java.util.TaskQueue)
         at java.util.TimerThread.run(Timer.java:382)
    "GC Daemon" daemon prio=1 tid=0x2c32cd20 nid=0xcf9 in Object.wait() [2bfbb000..2bfbb86c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d0b4b28> (a sun.misc.GC$LatencyLock)
         at sun.misc.GC$Daemon.run(GC.java:100)
         - locked <0x3d0b4b28> (a sun.misc.GC$LatencyLock)
    "RMI Reaper" prio=1 tid=0x2c325c88 nid=0xcf9 in Object.wait() [2c03c000..2c03c86c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d0b4078> (a java.lang.ref.ReferenceQueue$Lock)
         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
         - locked <0x3d0b4078> (a java.lang.ref.ReferenceQueue$Lock)
         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
         at sun.rmi.transport.ObjectTable$Reaper.run(ObjectTable.java:330)
         at java.lang.Thread.run(Thread.java:534)
    "Thread-3" daemon prio=1 tid=0x2c33be48 nid=0xcf9 in Object.wait() [2c0bd000..2c0bd86c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d0b4378> (a java.util.TaskQueue)
         at java.lang.Object.wait(Object.java:429)
         at java.util.TimerThread.mainLoop(Timer.java:403)
         - locked <0x3d0b4378> (a java.util.TaskQueue)
         at java.util.TimerThread.run(Timer.java:382)
    "RMI TCP Accept-0" daemon prio=1 tid=0x2c33b8e0 nid=0xcf9 runnable [2c13e000..2c13e86c]
         at java.net.PlainSocketImpl.socketAccept(Native Method)
         at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
         - locked <0x3d0b40d8> (a java.net.PlainSocketImpl)
         at java.net.ServerSocket.implAccept(ServerSocket.java:448)
         at java.net.ServerSocket.accept(ServerSocket.java:419)
         at sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:334)
         at java.lang.Thread.run(Thread.java:534)
    "Thread-2" daemon prio=1 tid=0x2c340060 nid=0xcf9 runnable [2c1bf000..2c1bf86c]
         at java.net.PlainSocketImpl.socketAccept(Native Method)
         at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
         - locked <0x3d0b1730> (a java.net.PlainSocketImpl)
         at java.net.ServerSocket.implAccept(ServerSocket.java:448)
         at java.net.ServerSocket.accept(ServerSocket.java:419)
         at org.jboss.web.WebServer.run(WebServer.java:258)
         at org.jboss.web.ThreadPool$Worker.run(ThreadPool.java:163)
    "ScannerThread" daemon prio=1 tid=0x2c3403d8 nid=0xcf9 waiting on condition [2cdc7000..2cdc786c]
         at java.lang.Thread.sleep(Native Method)
         at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:217)
         at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:190)
    "Thread-0" daemon prio=1 tid=0x2c327b00 nid=0xcf9 in Object.wait() [2c240000..2c24086c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d05d2d0> (a java.util.TaskQueue)
         at java.util.TimerThread.mainLoop(Timer.java:429)
         - locked <0x3d05d2d0> (a java.util.TaskQueue)
         at java.util.TimerThread.run(Timer.java:382)
    "DestroyJavaVM" prio=1 tid=0x2df28218 nid=0xcf9 waiting on condition [0..bfffccc4]
    "Signal Dispatcher" daemon prio=1 tid=0x080c33f8 nid=0xcf9 waiting on condition [0..0]
    "Finalizer" daemon prio=1 tid=0x080bed60 nid=0xcf9 in Object.wait() [2e3fc000..2e3fc86c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d0b5930> (a java.lang.ref.ReferenceQueue$Lock)
         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
         - locked <0x3d0b5930> (a java.lang.ref.ReferenceQueue$Lock)
         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
         at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
    "Reference Handler" daemon prio=1 tid=0x080be9d0 nid=0xcf9 in Object.wait() [2e47d000..2e47d86c]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x3d0b52f8> (a java.lang.ref.Reference$Lock)
         at java.lang.Object.wait(Object.java:429)
         at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115)
         - locked <0x3d0b52f8> (a java.lang.ref.Reference$Lock)

    have you checked bugs.sun.com to see if this has been reported?
    And if not, file one and attach your dump for them to look into it.

  • Java heap dump location

    Hi Everyone.
    How do I configure where I can output the java heap dumps?
    Right now they're dumped in /tmp automatically.
    Thanks

    Hi Khaled,
    It depends on what is the operating system and the jdk. For sun jdk:
    -XX:HeapDumpPath=<directory where to save the heap dumps>
    for IBM:
    BM_HEAPDUMPDIR environment variable should be set to point to the desired location.
    Greetings, Myriana

  • Heap Dump file generation problem

    Hi,
    I've configured configtool to have these 2 parameters:
    -XX:+HeapDumpOnOutOfMemoryError
    -XX:+HeapDumpOnCtrlBreak
    In my understanding, with these 2 parameters, the heap dump files will only be generated under 2 situations, ie, when out of memory occurred, or user manually click CLTR + BREAK in MMC.
    1) Unfortunately, there are many heap dump files (9 in total) generated when none of the above situation occured. I couldnt find "OutOfMemoryError" in the default trace, nor the shallow heap size of those heap dump files are anywhere near the memory limit. The consequences are our server run out of disk space.
    My question is, what are the other possibilities that heap dump file will be generated?
    2) In the Memory Consumption graph (NWA (http://host:port/nwa) -> System Management -> Monitoring -> Java Systems Reports), out of memory error occurred when the memory usage is reaching about 80% of the allocated memory. What are the remaining 20% or so reserved for ?
    Any help would be much appreciated.
    Thanks.

    Hi,
    Having the -XX:+HeapDumpOnCtrlBreak option makes the VM trigger a heap dump, whenever a CTRL_BREAK event appears. The same event is used also to trigger a thread dump, an action you can do manually from the SAP Management Console, I think it is called "Dump stacks". So if there was someone triggering thread dumps for analysis of other types of problems, this has the side effect of writing also a heap dump.
    Additionally, the server itself may trigger a thread dump (and by this also a heap dump if the option is present). It does this for example when a timeout appears during the start or stop of the server. A thread dump from such a moment allows us to see for example which service is unable to start.
    Therefore, I would recommend that you leave only the -XX:+HeapDumpOnOutOfMemoryError, as long as you don't plan to trigger any heap dumps on your own. The latter will cause the VM to write a heap dump only once - on the first appearance of an OutOfMemoryError.
    In case you need to trigger the heap dumps manually, leave the -XX:+HeapDumpOnCtrlBreak option for the moment of troubleshooting, but consider if you want to keep it afterwards.
    If heap dumps were written because of an OutOfMemoryError you should be able to see this in the dev_server file in /usr/sap/<SID>/<inst>/work/ . Also there you should be able to see if indeed thread dumps were triggered (just search for "Full Thread ").
    I hope this helps.
    Regards,
    Krum

  • How to take regular heap dumps using HPROF

    Hi Folks,
    I am using Oracle App server as my application server. I found that the memory is growing gradualy and gets maxed out with in 1 hour. I am using 1 GB of heap.
    I defently feel this is a memory leak issue. Once the Heap usage reaches 100%, I will start getting the FULL GCs and my whole server hangs and nothing will work. Some times even the JVM crashes and restarts again.
    I didn't find Out of Memory exception also in any of my logs.
    I came to know that we can use Hprof to deal with this.
    I use the below as my JVM agrs...
    -agentlib:hprof=heap=all,format=b,depth=10,file=$ORACLE_HOME\hprof\Data.hprof
    I run my load run for 10 mins, now my heap usage has been grown to some extent.
    My Questions:
    1. Why there are 2 files generated, one is with the name Data.hprof and another with Data.hprof.tmp. Which is what?
    2. How to get the dump at 2 different points. So that I can compare the the 2 dumps and I can say which object is growing more.
    I downloaded the HAT and If I use to open this Data.hprof file from HAT, I am getting this error. This error will come if I open the file with out stoping the JVM process.
    java.io.EOFException
    at java.io.DataInputStream.readFully(DataInputStream.java:178)
    at java.io.DataInputStream.readFully(DataInputStream.java:152)
    at hat.parser.HprofReader.read(HprofReader.java:202)
    at hat.parser.Reader.readFile(Reader.java:90)
    at hat.Main.main(Main.java:149)
    If I stop the JVM process, and then open through HAT I am getting this error,
    Started HTTP server on port 7000
    Reading from hprofData.hprof...
    Dump file created Wed Dec 13 02:35:03 MST 2006
    Warning: Weird stack frame line number: -688113664
    java.io.IOException: Bad record length of -1551478782 at byte 0x0008ffab of file.
    at hat.parser.HprofReader.read(HprofReader.java:193)
    at hat.parser.Reader.readFile(Reader.java:90)
    at hat.Main.main(Main.java:149)
    JVm version I am using is: Sun JVM 1.5.0_06
    I am seriously fed up of this memory leak issue... Please help me out folks... I need this as early as possible..
    I hope I get early replys...
    Thanks in advance...

    First, the suggestion of using jmap is an excellent one, you should try it. On large applications, using the hprof agent you have to restart your VM, and hprof can disturb your JVM process, you may not be able to see the problem as quickly. With jmap, you can get a heap snapshot of a running JVM when it is in the state you want to understand more of, and it's really fast compared to using the hprof agent. The hprof dump file you get from jmap will not have the stack traces of where objects were allocated, which was a concern of mine a while back, but all indications are that these stack traces are not critical to finding memory leak problems. The allocation sites can usually be found with a good IDE ot search tool,
    like the NetBeans 'Find Usages' feature.
    On hprof, there is a temp file created during the heap dump creation, ignore the tmp file.
    The HAT utility has been added to JDK6 (as jhat) and many problems have been fixed. But most importantly, this JDK6 jhat can read ANY hprof dump file, from JDK5 or even JDK1.4.2. So even though the JDK6 jhat is using JDK6 itself, the hprof dump file it is given could have come from pretty much anywhere, including jmap. As long as it's a valid hprof binary dump file.
    So even if it's just to have jhat handy, you should get JDK6.
    Also, the Netbeans profiler (http://www.netbeans.org) might be helpful too. But it will require a restart of the VM.
    -kto

  • Heap dump file - Generate to a different folder

    Hello,
    When the AS Java iis generating the heap dump file, is it possible to generate it to a different folder rather than the standard one: /usr/sap// ?
    Best regards,
    Gonçalo  Mouro Vaz

    Hello Gonçalo
    I don't think this is possible.
    As per SAP Note 1004255;
    On the first occurrence (only) of an OutOfMemoryError the JVM
    will write a heap dump in the
    /usr/sap/ directory
    Can i ask why you would like it in a different folder?
    Is it a space issue?
    Thanks
    Kenny

  • Problems with creation of an HEAP Dump

    Dear all,
    I have tried to create a HEAP Dump (CntrBreak) with the Java-based SAPMC Console (Process Table => server<no.> => DumpStack, but I get no dump on operation system (/usr/sap/<SID>/JC01/j2ee/cluster/server0/). I set the parameter -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpOnCtrlBreak in the VM. Our Java version is 1.4.12, the OS is Sun Solaris.
    Did anyone know why it not functioned in our solution?
    Many thanks in advanced.
    Patrick

    Hi,
    The Java based MC should provide the same functionality as the MMC. I tested today to trigger a heap dump as you have described and I had success.
    As the "Dump Stack" action is a protected one, the user should be asked for user/pass. Is it also for you so?
    And I have found several notes describing problems with the authentication of the sapstartsrv user on different unix platforms. As there is no action at all logged in your case, I guess that this could be the problem.
    Here are the notes I found:
    [Note 927637 - Web service authentication in sapstartsrv as of Release 7.00|https://service.sap.com/sap/support/notes/927637]
    [Note 992907 - sapstartsrv user authentication on Solaris|https://service.sap.com/sap/support/notes/992907]
    I hope this helps.
    Have you tried already to perform the action from an MMC?
    Regards,
    Krum

  • JVMPI_GC_ROOT_MONITOR_USED - what does this mean in a heap dump?

    I'm having some OutOfMemory errors in my application, so I turned on a profiler, and took a heap dump before and after an operation that is blowing up the memory.
    What changes after the operation is that I get an enormous amount of data that is reported under the node JVMPI_GC_ROOT_MONITOR_USED. This includes some Oracle PreparedStatements which are holding a lot of data.
    I tried researching the meaning of JVMPI_GC_ROOT_MONITOR_USED, but found little help. Should this be objects that are ready for garbage collection? If so, they are not being garbage collected, but I'm getting OutOfMemoryError instead (I thought the JVM was supposed to guarantee GC would be run before OutOfMemory occurred).
    Any help on how to interpret what it means for objects to be reported under JVMPI_GC_ROOT_MONITOR_USED and any ways to eliminate those objects, will be greatly appreciated!
    Thanks

    I tried researching the meaning of
    JVMPI_GC_ROOT_MONITOR_USED, but found little help.
    Should this be objects that are ready for garbage
    collection? Disclaimer: I haven't written code to use JVMPI, so anything here is speculation.
    However, after reading this: http://java.sun.com/j2se/1.4.2/docs/guide/jvmpi/jvmpi.html
    It appears that the "ROOT" flags in a level-2 dump are used with objects that are considered a "root reference" for GC (those references that are undeniably alive). Most descriptions of "roots" are static class members and variables in a stack frame. My interpretation of this doc is that objects used in a synchonize() statement are also considered roots, at least for the life of the synchronized block (makes a lot of sense when you think about it).

  • Analyse large heap dump file

    Hi,
    I have to analyse large heap dump file (3.6GB) from production environment. However if open it in eclipse mat, it is giving OutOfMemoryError. I tried to increase eclipse workbench java heap size as well. But it doesnt help. I also tried with visualVM as well. Can we split the heap dump file into small size? Or is there any way to set max heap dump file size for jvm options so that we collect reasonable size of heap dumps.
    Thanks,
    Prasad

    Hi, Prasad
    Have you tried open in 64-bit mat on a 64-bit platform with large heap size and CMS gc policy in MemoryAnalyzer.ini file ? the mat is good toolkit on analysing java heapdump file, if it cann't works, you can try Memory Dump Diagnostic for Java(MDD4J) in 64-bit IBM Support Assistant with large heap size.

  • AD4J: Unable to start Heap Dump due to OS Error

    When Java 'Heap Dump' is requested, the following message is shown:
    Unable to start Heap Dump due to OS Error.
    Details of the monitored JDK and application server are given below:
    JDK: Sun JDK 1.4.2_08 on Solaris 9
    Application Server: WebLogic 8.1 SP4
    1. What could be the possible cause? No errors are logged in jamserv/logs/error_log. Is there any way to enable detailed logging?
    2. Each time the heap dump is requested, a file of the format heapdump<n> gets created in /tmp (e.g. /tmp/heapdump12.txt). If you see the file, it contains the following:
    a) a line containing summary of the heap usage, and
    b) stack traces of all the threads
    Thanks!

    Wrong Forum?

  • Internal error occured while parsing heap dump.

    Hello,
    I have a huge heap dump .hprof file (800 MB) in size and I tried to open it with memory analyzer in Eclipse. After parsing the file till 4%, I get internal error occurred. Java heap space. My system has 2GB memory. Below is the command I used to launch eclipse. Can someone help me with this ? Many thanks for your time.
    C:\eclipse\eclipse.exe -vmargs -Xms512M -Xmx512M -XX:PermSize=256M -XX:MaxPermSize=256M
    I have JRE 1.6.0_05-b13 installed on the system.
    Thanks,
    Hari

    Hello Hari,
    I would recommend that you first try to give more memory to eclipse and see if this helps. Try with 1200m for example.
    I can't give you a precise estimation how much memory will be needed, as the limiting factor is the number of objects in the heap dump (not the size of the file). This number varies from case to case. In 800mb you may have only a few huge objects, but it may also happen that there are more than 20.000.000 of very small objects.
    So, please try with more memory, and let me know if you still encounter the problem.
    Regards,
    Krum

  • ERROR while analysing 2.13 GB heap dump using HAT and JHAT.

    I am trying to analyse a 2.13 GB heap dump taken from java1.4 "IBM hotspot" running in solaris 8, but i get an error, java.io.IOException: Bad record length of -2021068228 at byte 0x00da146e. Is there any way that i can read this dump to analyse the objects.

    I have no idea what "IBM HotSpot" is but it sounds like you are running this bug:
    http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6614052
    Grab the latest build of jdk6u update 10 or jdk7 and use that to examine the dump file.

  • Thread Dump vs Heap Dump

    Hi,
    The below question are related to J2EE 7.00.
    - What is the difference between Thred dump and Heap dump?
    - When I go to Config tool then I go to Instance ID.
    There are two nodes under the Instance ID, DIspatcher and Server (could be multiple).
    I see different tabs on Instance ID and they are Message Server and BootStrap, Server General. There are lots of setting under Server General tab.
    My question is that what is the usage of the "Server General" tab?
    Please let me know.
    I will appreciate your reply.
    Regards.
    Sume

    A java engine runs all its work in 'threads' much like WP's in SM50 but unfortunately not so stand alone in 7.0.
    A thread dump is a bit like taking a photo of SM50, that is why you will be asked to take 2 or 3 so as to see what sticks in threads for a while.
    A java engine uses memory to store all its objects. Most memory is a single area called heap. A heap dump lists all objects in memory at the time.
    Thread dump = activities working/waiting
    Heap Dump = objects used
    As for the configtool, I do not have one in front of me to double check but I believe you are looking at the general settings as opposed to local instance settings. So you can set parameters at a local level using an instance number or for all instances by setting it as a general setting. Quite a few settings that are set at the local level are set globally anyway so be aware that that may be the case.

  • IBM Heap Dump  command line utilities

    Hello,
    I am looking for command line parameter for IBM Heap dump location in configtool. I know we can set using environment variable  IBM_HEAPDUMPDIR but I would like to get some command utilities to set it in configtool.
    Thanks in Advance !

    Hi,
    The JVM checks each of the following locations for existence and write-permission, then stores the Heapdump in the first one that is available.
    The location that is specified using the file suboption on the triggered -Xdump:heap agent.
    The location that is specified by the IBM_HEAPDUMPDIR environment variable, if set (_CEE_DMPTARG on z/OS(R)).
    The current working directory of the JVM processes.
    The location that is specified by the TMPDIR environment variable, if set.
    The /tmp directory. On Windows(R), C:\temp.
    Details : http://publib.boulder.ibm.com/infocenter/javasdk/v1r4m2/index.jsp?topic=/com.ibm.java.doc.diagnostics.142j9/html/contents.html
    Regards,
    Sandeep

Maybe you are looking for