Interface HotSpotDiagnosticMXBean

All Superinterfaces:
PlatformManagedObject

public interface HotSpotDiagnosticMXBean extends PlatformManagedObject
Diagnostic management interface for the HotSpot Virtual Machine.

The diagnostic MBean is registered to the platform MBeanServer as are other platform MBeans.

The ObjectName for uniquely identifying the diagnostic MXBean within an MBeanServer is:

com.sun.management:type=HotSpotDiagnostic
It can be obtained by calling the PlatformManagedObject.getObjectName() method. All methods throw a NullPointerException if any input argument is null unless it's stated otherwise.
See Also:
ManagementFactory.getPlatformMXBeans(Class)
  • Method Details

    • dumpHeap

      void dumpHeap(String outputFile, boolean live) throws IOException
      Dumps the heap to the outputFile file in the same format as the hprof heap dump.

      If this method is called remotely from another process, the heap dump output is written to a file named outputFile on the machine where the target VM is running. If outputFile is a relative path, it is relative to the working directory where the target VM was started.

      Parameters:
      outputFile - the system-dependent filename
      live - if true dump only live objects i.e. objects that are reachable from others
      Throws:
      IOException - if the outputFile already exists, cannot be created, opened, or written to.
      UnsupportedOperationException - if this operation is not supported.
      IllegalArgumentException - if outputFile does not end with ".hprof" suffix.
      NullPointerException - if outputFile is null.
      SecurityException - If a security manager exists and its SecurityManager.checkWrite(java.lang.String) method denies write access to the named file or the caller does not have ManagmentPermission("control").
    • getDiagnosticOptions

      List<VMOption> getDiagnosticOptions()
      Returns a list of VMOption objects for all diagnostic options. A diagnostic option is a writeable VM option that can be set dynamically mainly for troubleshooting and diagnosis.
      Returns:
      a list of VMOption objects for all diagnostic options.
    • getVMOption

      VMOption getVMOption(String name)
      Returns a VMOption object for a VM option of the given name.
      Returns:
      a VMOption object for a VM option of the given name.
      Throws:
      NullPointerException - if name is null.
      IllegalArgumentException - if a VM option of the given name does not exist.
    • setVMOption

      void setVMOption(String name, String value)
      Sets a VM option of the given name to the specified value. The new value will be reflected in a new VMOption object returned by the getVMOption(java.lang.String) method or the getDiagnosticOptions() method. This method does not change the value of this VMOption object.
      Parameters:
      name - Name of a VM option
      value - New value of the VM option to be set
      Throws:
      IllegalArgumentException - if the VM option of the given name does not exist.
      IllegalArgumentException - if the new value is invalid.
      IllegalArgumentException - if the VM option is not writable.
      NullPointerException - if name or value is null.
      SecurityException - if a security manager exists and the caller does not have ManagementPermission("control").
    • dumpThreads

      default void dumpThreads(String outputFile, HotSpotDiagnosticMXBean.ThreadDumpFormat format) throws IOException
      Generate a thread dump to the given file and format. The outputFile parameter must be an absolute path.

      The thread dump will include output for all platform threads. It may include output for some or all virtual threads.

      API Note:
      The output file is required to be an absolute path as the MXBean may be accessed remotely from a tool or program with a different current user directory.
      Implementation Requirements:
      The default implementation throws UnsupportedOperationException.
      Parameters:
      outputFile - the path to the file to create
      format - the format to use (TEXT_PLAIN or JSON)
      Throws:
      IllegalArgumentException - if the file path is not absolute
      IOException - if an I/O exception is thrown writing to the file
      NullPointerException - if either parameter is null.
      SecurityException - If a security manager is set and its SecurityManager.checkWrite(java.lang.String) method denies write access to the file or ManagementPermission("control") is denied.
      Since:
      99
      See Also:
      Threads.virtualThreads()