When to generate ? How to generate ? how to debug ?
If you get unexplained server hangs under WebSphere, you can obtain, from the WebSphere server, a thread dump to help diagnose the problem.
In the case of a server hang, you can force an application to create a thread dump.
On unix/Linux machines find the process id (PID) of the hung JVM and issue kill -3 PID. Look for an output file in the installation root directory with a name like javacore.date.time.id.txt.
Using wasadmin prompt,
get the handle of the server
wsadmin>set jvm [$AdminControl completeObjectName type=JVM,process=server1,*]
wsadmin>$AdminControl invoke $jvm dumpThreads
If an application server spontaneously dies, look for a file. The JVM creates the file in the product directory structure, with a name like javacore[number].txt.
Download thread analyzer from IBM website to analyze the generated thread dumps. (http://www.alphaworks.ibm.com/tech/jca)
A heapdump is a snapshot of JVM memory – it shows the live objects on the heap along with references between objects. It is used to determine memory usage patterns and memory leak suspects.
To enable automated heap dump generation support, perform the following steps in the administrative console: (heap dump will generated upon receiving the out.of.memory exceptios)
1. Click Servers > Application servers in the administrative console navigation tree.
2. Click server_name >Runtime Performance Advisor Configuration.
3. Click the Runtime tab.
4. Select the Enable automatic heap dump collection check box.
5. Click OK.
use kill -3 PID on unix/linux machines.
Invoke the generateHeapDump operation on a JVM MBean, for example,
* Finding JVM objectName:
<wsadmin> set objectName [$AdminControl queryNames
* Invoking the generateHeapDump operation on JVM MBean:
<wsadmin> $AdminControl invoke $objectName generateHeapDump
heap dumps can be found under profile_root\profile-name with naming heapdump.<date>..<timestamp><pid>.phd
Use HeapAnalyzer or MDD4J for analyzing heap dumps
Note: we always generate multiple dumps with some interval gap and then compare them for analysis.