Troubleshooting Tools on Solaris OS and Linux for Java SE
Java™ VisualVM is a monitoring and profiling tool for
troubleshooting Java applications. It incorporates various
technologies, including jvmstat and JMX, as well as CPU and memory
profiling, to provide one easy-to-use integrated visualization
tool. Developers can rapidly create their own extensions using a
public API, and may share them with the community on a central
- Display local and remote Java applications.
- Display application configuration and runtime environment.
- Monitor application memory consumption and runtime
- Monitor application threads.
- Profile application performance or analyze memory allocation.
(Local applications only.)
- Create and display thread dumps.
- Create and browse heap dumps.
- Analyze core dumps.
- Analyze applications offline.
- Get additional plugins contributed by the community.
- Write and share your own plugins.
Launch a GUI to monitor and manage Java applications and Java
VMs on a local or remote machine.
- Connection to Java process, host, or JMX agent.
- Graphical overview of CPU usage, heap memory, threads,
- Summary of key data, for example, uptime, compilation time,
objects pending finalization, and more.
- Memory statistics, including garbage collection.
- Request garbage collection.
- Thread statistics.
- Deadlock detection.
- Class statistics.
- Tree structure of all platform and application MBeans.
- Set the value of an MBean attribute.
- Invoke operation on an MBean, for example, perform a heap
- Subscribe to notification for an MBean.
- Information about the virtual machine, the compiler, the
- Pass flags to VM on which JConsole is running.
List instrumented Java virtual machines.
Display performance statistics for an instrumented Java VM:
- Behavior of the class loader
- Behavior of the HotSpot Just-in-Time compiler, totals and by
- Behavior of the GC heap
- Behavior and sizes of the generation areas
- Monitor for creation and termination of instrumented HotSpot
- Provide an interface for remote monitoring tools to attach to
Writes class profiling information to a file or a socket, in
ASCII or binary.
- Heap allocation profiling.
- Heap dump.
- CPU usage - for threads, methods.
- Monitor contention profiling.
To invoke the HPROF tool: java -agentlib:hprof
To print the complete list of options: java
Launch a simple interactive command-line debugger.
- Display Java objects and primitive values.
- List currently running threads.
- Dump the current thread stack.
- Set breakpoints.
- Step through execution.
- Examine exceptions.
Parse a binary heap dump, launch a web browser, and present
- Execute standard queries, for example, classes, objects, class
instances, reference chains from object rootset, reachable objects,
- Turn on or off object allocation tracking.
- Turn on or off object reference tracking.
- Specify objects to exclude from "reachable objects" query.
- Pass flags to the Java VM on which jhat is
- Develop custom queries with buit-in Object Query Language.
- Compare objects in two dumps.
- Print command line flags and system properties for a running
process, from a core file, or for a remote debug server.
- Dynamically set, unset, or change the value of certain Java VM
flags for a process.
- Print shared object mappings for a process, a core file, or a
remote debug server.
- Dump the Java heap (all objects or only live objects) of a
process, a core file, or a remote debug server in binary format to
- Force the Java heap dump of a process if the process does not
- Print a heap summary for a process, a core file, or a remote
- Print a histogram (all objects or only live objects) of a
process, a core file, or a remote debug server.
- Print information on objects awaiting finalization.
- Print class loader statistics of the permanent generation.
- Pass flags to the VM.
Serviceability Agent Debug Daemon, which acts as debug
- Attach to a Java process or a core file.
- Remote clients can attach to the server using RMI.
- Print stack traces of threads for a process, core file, or
remote debug server
- Print information about concurrent locks for a process, core
file, or remote debug server
- Force the stack dump for a process if the process does not
- Command-line script shell: Evaluate or execute a script in
interactive or batch mode.
- Pass flag to the VM.
- Set Java system properties.