How do I perform a thread dump?

View some of the Frequently Asked Questions to our support staff. Included are some tips and tricks making this forum ideal for users getting started with GoAnywhere MFT. Note: Users can reply to existing topics but only our support staff can add new topics to this forum.
1 post Page 1 of 1

Support_Alisa

User avatar
Posts: 12
Joined: Thu Jul 26, 2018 2:03 pm

Post by Support_Alisa » Wed Aug 01, 2018 12:41 pm
Question:

How do I perform a thread dump on my system to give me further insight into what GoAnywhere MFT is doing during a specific timeframe?

Answer:

Thread dumps can be a great way to troubleshoot performance issues within MFT, including jobs stuck in an active state, active sessions, or stability issues that suddenly have crept up out of nowhere. Nearly all of the examples I just listed are occasionally observed and have a number of differing causes. A thread dump can help in analyzing where the threads the application is using are being allocated. Before conducting dumps on any system, be sure to check your system has adequate disk space so your dump does not get truncated. It is recommended to create multiple thread dumps to be sure to catch the issue at hand.

Windows:

To get a GoAnywhere thread dump on a Windows server, use JStack

For the Java thread dump utility “JStack”, simply download and install the Java JDK as you would a JRE, then follow these instructions to get the thread dump when the process will not stop using Services Manager (stuck). GoAnywhere does not need to be running on the JDK, it just needs to be on the server.

If you have more than one GoAnywhere instance running on a server, you can identify the correct instance by right-clicking the process name and viewing the location.

1. Open Task Manager as you would to kill the process, but instead click the Details tab to get the PID. You will need it in step 3.
2. Open a Command window as Administrator, and navigate to the JDK Home folder’s \bin folder. -- Example: C:\Program Files\Java\jdk1.8.0_191\bin
3. Run the following command: jstack -l [PID] > threaddump.txt
4. Attach the threaddump.txt file (from bin folder) to an email and send it to us with the case number.

IBM i:

IBM I utilizes the WRKJVMJOB command to generate thread dumps.

1. Type in the WRKJVMJOB command. This will return a list of all the JVMs on the system.
2. Find the JVM you are wanting to perform the dump on and press 5 (work with) and then enter to select the appropriate JVM.
3. Select 32 (Java dump). This make take a minute.
4. Select option 9 (Display Job Log). Here you can find the location of the dump within the file system.

From here you open the dump and analyze it to locate possible issues.

Linux/Unix:

Linux also offers a couple options for obtaining thread dumps.

Kill -3 [pid of tomcat]

Without redirection, this will print the dump to catalina.out. A very large catalina.out file can cause problems with the dump. Redirect the output of the command to another file to combat this issue.

For additional information on thread dumps, please view the referenced sources below:

https://stackoverflow.com/questions/185 ... hread-dump

http://www-01.ibm.com/support/docview.w ... s8N1012559

https://helpx.adobe.com/experience-mana ... dDump.html

https://dzone.com/articles/how-analyze- ... read-dumps
Alisa Bohac
Support Analyst
e. goanywhere.support@helpsystems.com
p. 1.800.949.4696
w. HelpSystems.com
1 post Page 1 of 1