cancel
Showing results for 
Search instead for 
Did you mean: 

Dificulty generating Heap dump....

Former Member
0 Kudos

Hi,

We are on NW04s SPS 12 on JAVA with Solaris and Oracle.

We get OutOfMemory on intermittent basis and I want to take a heap dump.

It is taking forever to take the dump and it consumes lots of memory on the server to generate a dump.

Last time it took almost 6GB and dump was not complete. It ran for 30 mnts. It dumped only 50MB. It starts writing to a file but eventually I kill it because it takes too long and lots of memory.

I am taking a dump using a jmap command u2013

/usr/sap/j2se/j2sdk1.4.2_13/bin/jmap -d64 -heap:format=b <pid>

I am little afraid to put the parameter in Visual Admin to get the dump because it may crash the box or the dump may never complete.

Please let me know if I am doing anything wrong.

I will appreciate your help.

Regards.

SC

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hello Sume,

Please refer to the note 1004255

&

How can I get a heapdump ?

https://wiki.sdn.sap.com/wiki/pages/viewpage.action?pageId=33456

you need these parameters configured correctly for the engine to generate a heapdump on out of memory situation. By itself, the parameters don't cause any issues/crashing of the system. You can only generate heapdump manually when the parameter -XX:+HeapDumpOnCtrlBreak is maintained. The command to generate a heapdump manually is kill -3 which is the same as generating threaddump as well. Usually, SAP support rarely recommends generating a heapdump manually. If you have OOM issues, we need the heapdump which is generated automatically at that time for the correct analysis.

Regards,

Snehal

former_member698570
Active Participant
0 Kudos

Hi,

you should create the DUMP using jcmon.

Goto your SYS/profile directory:

e.g. /usr/sap/<SID>/SYS/profile or X:\usr\sap.... on Windows

Start jcmon using:

jcmon pf=<PROFILE>

The Profile to be used is <SID>_JC<InstanceNo>_<hostname>

This will show up jcmon:

============================================================

JControl Monitor Program - Main Menu

============================================================

0 : exit

10 : Cluster Administration Menu

20 : Local Administration Menu

30 : Shared Memory Menu (Solid Rock, experimental)

-


Choose 20 for Local Administration Menu

You see a list of processes:

Idx

Name

PID

State

Error

Restart

---






0

dispatcher

16670

Running

0

yes

1

server0

16671

Running

0

yes

2

SDM

16672

Running

0

yes

-


============================================================

JControl Monitor Program - Administration Menu (Local)

Instance : JC_<hostname>_<SID>_<InstanceNo>

============================================================

0 : exit

1 : Refresh list

2 : Shutdown instance

3 : Enable process

4 : Disable process

5 : Restart process

6 : Enable bootstrapping on restart

7 : Disable bootstrapping on restart

8 : Enable debugging

9 : Disable debugging

10 : Dump stacktrace

11 : Process list

12 : Port list

13 : Activate debug session

14 : Deactivate debug session

15 : Increment trace level

16 : Decrement trace level

17 : Enable process restart

18 : Disable process restart

19 : Restart instance

-


40 : Enable bootstrapping for all processes with specified process type

41 : Enable bootstrapping for all processes excluding specified process type

-


99 : Extended process list on/off

-


Now use option 10 to Dump the stacktrace

Hope this helps (Reward points for helpful answers are appreciated

Cheers

Former Member
0 Kudos

Thank you Marcel.

I do no think you have read my question completely. I have said that I am afraid to follow the method you have mentioned. This method generates only thread dump if parameters are not set.

I am afraid that dump may never complete with these parameters.

That is why I have asked if anybody faced simillar situation.

regards

SC