This page last changed on Mar 25, 2010 by asridhar.

If Confluence stops responding and you cannot access its integrated Generate Thread Dump feature, it is possible to create thread dumps outside the application. External thread dumps are also useful if you require information on locks being held or waited upon by threads.

Generating a Thread Dump on Windows

To take a thread dump from Windows:

  1. Visit http://www.adaptj.com/root/main/download and click Launch
  2. Click Run for any security warnings
  3. Under Process Id, select the '...' button.
  4. From the drop-down list, select the Confluence process. Users running Confluence Standalone, select the 'Java (Tomcat) ...' option. Users running Confluence WAR should select their application server process.
  5. Under Process -> Properties, Ensure that the "Thread dump" and "Keep Remote Thread Running" is selected.
  6. Select Process -> Thread Dump
  7. Save the output to a file, eg 'threaddump.log'

If you were asked by Atlassian technical support to create the thread dump, please take 2 to 3 thread dumps with a time interval in between (eg. 30 seconds) so we can see some patterns. Attach the log file to the support ticket.

Alternatively, if you are not running Confluence as a service, click on the console and press <CTRL>+BREAK

Generating a Thread Dump on Linux, including Solaris and other Unixes

Find the process ID of the JVM and use the ps command to get list of all processes:

kill -3 <pid>

Note: This will not kill your server (so long as you included the "-3" option, no space in between).
The thread dump will be printed to Confluence's standard output (catalina.out).

Generating Thread Dumps using jstack

If you have trouble using kill - 3 <pid> to obtain a thread dump, or are on a Windows machine without internet access then try using jstack: a java utility that will output stack traces of Java threads for a given process.

1) Identify the java process that JIRA is running in:

On *nix and Solaris
This can be achieved by running a command similar to:

ps -ef | grep javaThe process will appear similarly as follows:

adam 22668 0.3 14.9 1691788 903928 ? Sl Jan27 9:36 /usr/lib/jvm/java-6-sun-1.6.0.14/bin/java -Djava.util.logging.config.file=/home/adam/Products/installs/atlassian-jira-enterprise-4.0.1-standalone/conf/logging.properties -XX:MaxPermSize=256m -Xms128m -Xmx1048m -Djava.awt.headless=true -Datlassian.standalone=JIRA -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Dmail.mime.decodeparameters=true -Datlassian.mail.senddisabled=false -Datlassian.mail.fetchdisabled=false -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/home/adam/Products/installs/atlassian-jira-enterprise-4.0.1-standalone/common/endorsed -classpath /home/adam/Products/installs/atlassian-jira-enterprise-4.0.1-standalone/bin/bootstrap.jar -Dcatalina.base=/home/adam/Products/installs/atlassian-jira-enterprise-4.0.1-standalone -Dcatalina.home=/home/adam/Products/installs/atlassian-jira-enterprise-4.0.1-standalone -Djava.io.tmpdir=/home/adam/Products/installs/atlassian-jira-enterprise-4.0.1-standalone/temp org.apache.catalina.startup.Bootstrap start

On windows
Launch the task manager by, pressing Ctrl + Alt + Del and find the Process ID of the JAVA (Confluence) process

2) Run jstack <pid> to Capture a Single Thread Dump:

This command will take one thread dump of the process id <pid>, in this case the pid is 22668,

adam@track:~$ jstack 22668
if the jstack executable is not in your $PATH, then please look for it in your <JDK_HOME>/bin directory
3) Take Multiple Thread Dumps

Typically you'll want to take several dumps about 10 seconds apart, in which case you can generate several dumps and output the stack traces to a single file as follows:

adam@track:~$ jstack 22668
adam@track:~$ jstack 22668
adam@track:~$ jstack 22668

Output

Standard logging for Confluence Stand-alone is sent to the atlassian-confluence.log, in the confluence-home directory, not in the confluence-install directory. Thread dumps are an exception since they dump the threads of the entire application server - they'll appear in the catalina.out file in the application directory's logs folder. You can search for the term "thread dump" in the log file for the beginning of the dump. Submit this along with the atlassian-confluence.log in your support ticket.

Thread Dump Tools

Document generated by Confluence on Mar 28, 2010 19:36