Creating a thread dump
- Contents
- Creating a thread dump in Windows NT
- Creating a thread dump in UNIX
To help diagnose problems with WebLogic Server, technical support
may ask you to send them a "thread dump."
This page contains instructions for creating a thread dump.
To create a thread dump, you must run WebLogic Server with a Java Software Development Kit
(JDK) . You cannot create a thread if you are
running WebLogic Server in a Java Runtime Environment (JRE) ;
Creating a thread dump in Windows NT
- Run the WebLogic Server with the just-in-time (JIT) compiler
disabled by adding -nojit to the command
line, for example:
$ java -nojit ...
- In the Command Prompt window where the
WebLogic Server is running, open the properties dialog box by right
clicking on the title bar and selecting "Properties".
- Select the Layout tab.
- Under Screen Buffer Size, set the Height to 2000, as shown below:
- Click on OK.
- Press Ctrl-Break. This will output the thread dump to the command window.
- Scroll back in the command window until you reach the beginning of the dump,
which will contain the words "Full thread dump:" Select all the text from that point forward,
for example,
Full thread dump:
"ListenThread" (TID:0xf89110, sys_thread_t:0x96ae90,
Win32ID:0x14a, state:R) prio=5
java.net.PlainSocketImpl.accept(PlainSocketImpl.java:387)
java.net.ServerSocket.implAccept(ServerSocket.java:206)
java.net.ServerSocket.accept(ServerSocket.java:189)
weblogic.common.internal.ServerSocketWrapper.accept
(ServerSocketWrapper.java:34)
weblogic.t3.srvr.ListenThread.run(ListenThread.java:275)
"examples_ejb_containerManaged_server_AccountBean-PrepareThread"
(TID:0xfa26b0,sys_thread_t:0x9693ex148, state:CW) prio=5
...
- Copy the selected text to the clipboard.
- Paste the selection into a text file.
- Email this file to technical support.
Creating a thread dump in UNIX
To capture a thread dump on a UNIX computer, you can either copy the
thread dump from your shell window or redirect the standard out
(stdout) of the java
command to a file.
When you send a SIGQUIT signal
to the java process, a thread
dump is sent to the stdout. If you run WebLogic Server from an
init script at boot time, you cannot get a thread dump. Programs
executed from init scripts run with nohup and are immune to the SIGQUIT signal. You must start WebLogic Server without
nohup if you want to get a thread dump.
- Run WebLogic Server with the just-in-time (JIT) compiler
disabled. This allows the JVM to add
line numbers to the thread dump.
If you are using Solaris, set the JAVA_COMPILER environment variable to "NONE" before you execute the command
to start WebLogic Server: $ setenv JAVA_COMPILER NONE
For other platforms, consult the JVM documentation for the correct procedure.
- In a second shell, find the java process ID using the ps command.
- Send the java
process a SIGQUIT signal:
$ kill -3 pid
where pid is the java process ID. This sends the thread dump to
stdout.
Please note, if you are using KSH: The INT and QUIT signals for an invoked command are ignored
if the command is followed by & and the monitor option is not active. In other words, you can not get a thread dump of a process that is running in the background.
- If you redirected stdout to a file, email that file to
WebLogic support.
Otherwise, scroll back to the beginning of the thread dump,
select, copy, and paste the thread dump to a file, and then
email that file to WebLogic support.

|