IBM Support

MustGather: Native OutOfMemoryErrors on Solaris

Troubleshooting


Problem

Processes on Solaris are a bit more adaptive when it comes to memory segment allocation. This reduces the likihood of any native memory problems. However like any 32bit process, or even 64bit processes, leaks can occur. This MustGather will provide instructions to collect data for Native OutOfMemoryErrors on the Solaris platform to be submitted to IBM Support.

Cause

Native memory problems can occur when:

  • JVM is unable to allocate memory to create or execute threads or JNI code
  • Physical resource exhaustion

Resolving The Problem

The following steps outline how to troubleshoot java.lang.OutOfMemoryError errors on an Solaris platform when you suspect that there is a native memory leak

1. Enable verbosegc. For details, see How to enable verbosegc on WebSphere Application Server.

2. Stop the application server and clear the logs.


NOTE: If requested by IBM Support, you will want to enable libumem at this time.

See "Using libumem to diagnose Native OutOfMemoryErrors or leaks on Solaris" for information:


3. Start the application server.

4. Run the Solaris_ps.sh and Solaris_pmap.sh scripts (see attached scripts).

These scripts will collect data at specified intervals. The frequency of these intervals are determined by the number you pass to the scripts. This number is the number of seconds for each interval.

For example, if the problem can be reproduced in 1 hour, pass the script 300 so that the documentation is collected every 5 minutes. For a problem that takes 2 days to reproduce, 1200 is a good sample period.


5. Wait for problem to re-occur.

6. Execute the following script (see attached) where PID is the process ID of the Java process.

./wsasprocess.sh  PID


7. Stop the Application Server and the script.

8. Obtain the kernel message logs, normally located as /var/adm/messages. (Older message logs often have '.0', '.1', '.2', ... etc. appended to the name of the log file should additional log files be needed.)

9. Collect the following:
    For WebSphere Application Server Version 6.0, 6.1, 7.0, and 8.x:
      -All files in install_root/profiles/profile_name/logs/server_name directory.
      -A copy of server.xml located in install_root/profiles/profile_name/config/cells/cell_name/nodes
      -/
      node_name/servers/server_name directory
      -All jtc*.log files created from running the scripts in Step 4
      -All of the *.out files created by the wascpu.sh script in Step 6

    For WebSphere Application Server Version 5.0 and 5.1:
      -Include all of the files from the install_root/logs/server_name directory.
      -A copy of server.xml located at install_root/config/cells/cell_name
      /nodes/
      node_name/servers/server_name directory
      -All jtc*.log files created from running the scripts in Step 4
      -All of the *.out files created by the wascpu.sh script in Step 6
Follow instructions to send diagnostic information to IBM support.

For a listing of all technotes, downloads, and educational materials specific to the Out of Memory component, search the WebSphere Application Server support site.

Solaris_ps.shSolaris_pmap.shwsasprocess.sh

[{"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Out of Memory","Platform":[{"code":"PF027","label":"Solaris"}],"Version":"9.0;8.5.5;8.5;8.0;7.0;6.1;6.0;5.1","Edition":"Base;Express;Network Deployment","Line of Business":{"code":"LOB45","label":"Automation"}},{"Product":{"code":"SSNVBF","label":"Runtimes for Java Technology"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"Java SDK","Platform":[{"code":"","label":""}],"Version":"","Edition":"","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
15 June 2018

UID

swg21104470