Module jdk.management
Package com.sun.management

# 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 Summary

  Modifier and Type
  Method
  Description
  `void`
  `dumpHeap(String outputFile, boolean live)`
  Dumps the heap to the `outputFile` file in the same format as the hprof heap dump.
  `List<VMOption>`
  `getDiagnosticOptions()`
  Returns a list of `VMOption` objects for all diagnostic options.
  `VMOption`
  `getVMOption(String name)`
  Returns a `VMOption` object for a VM option of the given name.
  `void`
  `setVMOption(String name, String value)`
  Sets a VM option of the given name to the specified value.

  ### Methods declared in interface java.lang.management.PlatformManagedObject

  `getObjectName`

- ## 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").