Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This articles explains how to create a thread dump series, which can be a useful tool to investigate unexpected behaviourA thread dump gives insights into the state of a Java application at one point in time. It provides an overview of all active threads for the moment the snapshot is taken.

To be more useful for analysis and give a better representation of what is going on within an application it is common to create multiple of these snapshots at regular intervals. Ten dumps, one every 10 seconds could be an example of such a scheme.

Instructions

On a virtual machine

...

  1. Create the following run run-script jstack-series.sh

    Code Block
    languagebash
    #!/bin/bash
    if [ $# -eq 0 ]; then
        echo >&2 "Usage: jstackSeries [ <count> [ <delay> ] ]"
        echo >&2 "    Defaults: count = 10, delay = 0.5 (seconds)"
        exit 1
    fi
    count=${1:-20}  # defaults to 10 times
    delay=${2:-0.5} # defaults to 0.5 seconds
    while [ $count -gt 0 ]
    do
        ./jattach 1 threaddump>jstack.$pid.$(date +%H%M%S.%N)
        sleep $delay
        let count--
        echo -n "."
    done
  2. Run the following inside your Docker container:

    Code Block
    languagebash
    curl -L https://github.com/apangin/jattach/releases/download/v1v2.50/jattach > jattach && \
    chmod +x jattach
  3. Run the created script: ./jstack-series.sh

  4. This will result in 20 files (filename: 'jstack.<pid>.<date>.N') being generated

  5. Please pack these 20 files in a zip file and attach them to your HiveMQ Support issue

...