Archive for March, 2016

Generating dumps on Websphere 8.5

22 March 2016 Leave a comment

In the last 2 weeks or so, I’ve been busy with troubleshooting a performance problem on Websphere 8.5. And it was a pain in the rear to figure how to generate dumps.. so, here’s what I figured out, that others my profit and enjoy it!

There are 2 ways to generate dumps (and 3 different types of dumps) on Websphere.

  1. Open the console (probably at https://localhost:9043/ibm/console/ )
  2. Open (click on)  the “Troubelshooting” group on the left side.
  3. Open (click on) “Java dumps and cores”
  4. Voila, select “Heap dump”, “Java core” or “System dump”!
    1. If you’re on Linux and are getting messages when generating a “System dump” (otherwise known as a core dump), you probably have to modify systemd’s coredump preferences (and/or a coredump preference file in /etc/sysctl.d/).

Otherwise, you can also make websphere generate dumps when receiving a SIGQUIT signal. However, you have to make sure that the IBM JDK receives some parameters in order to do this.

  1. Open the console (probably at https://localhost:9043/ibm/console/ )
  2. Open (click on) the “Servers” group on the left side.
  3. Open (click on) the “Server Types” group, under which you’ll see “Websphere application servers” — click on that as well.
  4. Click on your server in order to go your server preferences.
  5. Scroll down until you see “Java and Process Management” under the “Server Infrastructure” heading on the right side.
  6. Open (click on) “Java and Process Management” and click on “Process Definition”
  7. Click on “Java Virtual Machine” on the right of the page, under the “Additional Properties” heading.
  8. On the “Configuration” tab of the “Java Virtual Machine”, you’ll see a “Generic JVM arguments” text box.
  9. Add the following arguments to the text box:

-Xdump:system:events=abort+user+vmstop,label=core.%pid-%Y%m%d.%H%M%S.dmp,request=exclusive+prepwalk+compact -Xdump:heap:events=abort+user+vmstop,,request=exclusive+compact -Xdump:java:events=abort+user+vmstop+slow,label=javacore.%pid-%Y%m%d.%H%M%S.txt,request=exclusive+compact

Once you’ve started websphere, you can then generate these dumps by sending a SIGQUIT signal to the process, for example, like so:

kill -QUIT <websphere-process-id>

kill -3 <websphere-process-id>

(I unfortunately don’t know how you would do that on windows.. :/ )

These dumps will probably be generated in the home directory of your websphere installation (or somewhere under that, depending on how you configured your websphere installation).

If you need more info about these options, then I recommend either runing any of the following (IBM JDK) java commands:

  • java -Xdump:events
  • java -Xdump:request

Or otherwise, use google to search for things “Xdump websphere“.

Once you’ve gnerated the dumps, your main 2 tools will be:

The ISA support tool suite is better and has a far broader array of tools to use, but (in my experience) harder to find your way around.

At this point, I wish you the best of luck in figuring out your problem, whether it be a memory leak or a performance issue! While I’ve sometimes been very lucky in finding issues, at other times it can be very similar to looking for a needle in a haystack.

Categories: Other