JVM Thread Dump

A thread dump contains information about active threads in the Replication Agent JVM and can therefore be useful in troubleshooting a Replication Agent deadlock or performance issue.

Obtaining a thread dump on a Windows machine

In the command window in which you started Replication Agent, press Ctrl-Break.

Obtaining a thread dump on a UNIX or Linux machine

  • Find the process ID of the JVM in which Replication Agent is running using ps and grep:
    %>ps -ef | grep RAX-15_5

    The e and f options show full output for every running process. The grep command filters results on the string “RAX-15_5”. The result returned looks something like this:

    sybase 12345 67890 0 14:21 pts/1 00:00:22
    /software/sybase/RAX-15_5/JRE6/bin/java -server

    where 12345 is the process ID (PID) of the Replication Agent Java process.

  • Terminate the process with the kill command and QUIT option:
    %>kill -QUIT pid

    where pid is the PID you obtained from the last step.

On UNIX or Linux, it is customary to start the Replication Agent process in the background, so the console in which the Replication Agent process was started may no longer be available when you decide to obtain a thread dump. The JVM always prints a thread dump to the console in which the Replication Agent process was started, so you should always redirect process output to a file when you start Replication Agent. For example:
%>RUN_inst_name >! output.txt
where inst_name is the server name of the Replication Agent instance.
Note: On AIX, the process output contains a path to the javacore file containing the thread dump.
Related concepts
Replication Agent Instance Availability Monitoring
Primary Database Log Access
Replication Agent Logs
Available Memory
Skipped DDL Commands
Related tasks
Verifying that a Primary Database Object Is Marked for Replication
Checking the Current Replication Agent Status
Using ra_statistics to Check Replication Agent Operations and Performance
Debugging LTL