<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Dump (OpenJ9 JDK 11)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="keywords" content="com.ibm.jvm.Dump class">
<meta name="keywords" content="JavaDump()">
<meta name="keywords" content="HeapDump()">
<meta name="keywords" content="SystemDump()">
<meta name="keywords" content="SnapDump()">
<meta name="keywords" content="javaDumpToFile()">
<meta name="keywords" content="heapDumpToFile()">
<meta name="keywords" content="systemDumpToFile()">
<meta name="keywords" content="snapDumpToFile()">
<meta name="keywords" content="triggerDump()">
<meta name="keywords" content="setDumpOptions()">
<meta name="keywords" content="queryDumpOptions()">
<meta name="keywords" content="resetDumpOptions()">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="Dump (OpenJ9 JDK 11)";
        }
    }
    catch(err) {
    }
//-->
var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Dump.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><div style="margin-top: 9px;"><strong>OpenJ9 JDK 11</strong></div></div>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="moduleLabelInType">Module</span>&nbsp;<a href="../../../module-summary.html">openj9.jvm</a></div>
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.ibm.jvm</a></div>
<h2 title="Class Dump" class="title">Class Dump</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>com.ibm.jvm.Dump</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre>public class <span class="typeNameLabel">Dump</span>
extends <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">Object</a></pre>
<div class="block">This class is used to trigger and configure the options used to produce different
 types of diagnostic dumps available from the OpenJ9 JVM.
 <p>
 -Xdump must be enabled on the command line or the functions that attempt to cause
 dumps to be created or set options will fail with a java.lang.RuntimeException.
 <p>
 The methods on this class can be used to trigger dumps, configure dump options and
 query those options.
 <p>
 The <a href="#JavaDump()"><code>JavaDump()</code></a>, <a href="#SystemDump()"><code>SystemDump()</code></a>, <a href="#HeapDump()"><code>HeapDump()</code></a> and <a href="#SnapDump()"><code>SnapDump()</code></a>
 methods trigger dumps of the given type with no options and no return value.
 Although they are not configurable they do provide an easy API to use via reflection
 if your code is likely to run on both OpenJ9 and non-OpenJ9 JVMs and you only need the most
 basic ability to create a dump.
 <p>
 The <a href="#javaDumpToFile()"><code>javaDumpToFile()</code></a>, <a href="#systemDumpToFile()"><code>systemDumpToFile()</code></a>, <a href="#heapDumpToFile()"><code>heapDumpToFile()</code></a> and
 <a href="#snapDumpToFile()"><code>snapDumpToFile()</code></a> methods allow a destination file to be optionally specified and
 will return the full path of the file that is created.
 <br>
 The recommended usage of the <a href="#javaDumpToFile()"><code>javaDumpToFile()</code></a>, <a href="#systemDumpToFile()"><code>systemDumpToFile()</code></a>,
 <a href="#heapDumpToFile()"><code>heapDumpToFile()</code></a> and <a href="#snapDumpToFile()"><code>snapDumpToFile()</code></a>
 methods is to call the no argument versions of these calls rather than specifying a file
 name as this will trigger a dump to the default location. Your dump file will go to the
 default location specified by any -Xdump options given to the JVM at startup time following
 the user or administrators preferences.
 The location the dump file was written to will be returned as a String so the generated
 file can be located.
 <p>
 The <a href="#triggerDump(java.lang.String)"><code>triggerDump(String)</code></a> method offers similar functionality as the DumpToFile() methods
 but with the ability to specify any dump options that are meaningful for a dump that occurs
 immediately. The options are passed as a String that follows the same format as the option
 strings passed to -Xdump on the command line.<br>
 For example:
 <ul>
 <li>triggerDump("java") is equivalent to javaDumpToFile() or javaDumpToFile(null) all three
 will cause a javadump to be generated to the default location.</li>
 <li>triggerDump("heap:file=heapdump.phd") is equivalent to heapDumpToFile("heapdump.phd")</li>
 <li>triggerDump("heap:file=heapdump.txt,opts=CLASSIC") allows you to specify the CLASSIC
 option to triggerDump and produce a text format heap dump which is not possible through
 the *DumpToFile(String filename) or *Dump() methods.</li>
 <li>triggerDump("java:request=exclusive") will trigger a java dump with the request option set
 to "exclusive" and any other options, including the file name, taken from the default options
 for java dumps</li>
 </ul>
 <p>
 The <a href="#setDumpOptions(java.lang.String)"><code>setDumpOptions(String)</code></a> method allows dump options that will cause or change how
 a dump occurs for an event in the future to be specified. The options are specified in the
 format expected by the -Xdump command line. Not all options can be configured at runtime and
 this method will throw an InvalidDumpOption exception if it is passed an option that cannot be set.<p>
 For example:
 <ul>
 <li>setDumpOptions("java") - enable java dumps with the default settings.</li>
 <li>setDumpOptions("java:events=vmstop") - enable java dumps on the vmstop event (this will
 occur once when the JVM exits).</li>
 <li>setDumpOptions("none") - disable all dump agents on all events.</li>
 <li>setDumpOptions("heap:none") - disable all heap dump agents on all events.</li>
 <li>setDumpOptions("system:none:events=systhrow,filter=java/lang/OutOfMemoryError") - disable
 system dumps on systhrow events for OutOfMemory errors only.</li>
 </ul>
 For full details of dump options see the section on dump agents in the documentation for the OpenJ9 JVM.
 <p>
 The <a href="#queryDumpOptions()"><code>queryDumpOptions()</code></a> method returns a String array containing a snapshot of the currently
 configured dump options. Each String is in the format expected by the -Xdump command line
 option and setDumpOptions. The Strings can be passed back to setDumpOptions to recreate
 the current dump agent configuration at a later time.
 <p>
 The <a href="#resetDumpOptions()"><code>resetDumpOptions()</code></a> method resets the dump options to the settings specified when the
 JVM was started removing any additional configuration done since then.<br>
 If you wish to change the dump configuration at runtime and then reset it to an earlier
 state that included additional runtime configuration done through this API or JVMTI you should
 consider saving the result of queryDumpOptions and then later use <a href="#setDumpOptions(java.lang.String)"><code>setDumpOptions(String)</code></a>
 to restore that configuration after a call to setDumpOptions("none") to clear all dump agent
 configuration.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#HeapDump()">HeapDump</a></span>()</code></th>
<td class="colLast">
<div class="block">Trigger a heap dump.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#heapDumpToFile()">heapDumpToFile</a></span>()</code></th>
<td class="colLast">
<div class="block">Trigger a heap dump.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#heapDumpToFile(java.lang.String)">heapDumpToFile</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;fileNamePattern)</code></th>
<td class="colLast">
<div class="block">Trigger a heap dump.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#JavaDump()">JavaDump</a></span>()</code></th>
<td class="colLast">
<div class="block">Trigger a java dump.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#javaDumpToFile()">javaDumpToFile</a></span>()</code></th>
<td class="colLast">
<div class="block">Trigger a java dump.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#javaDumpToFile(java.lang.String)">javaDumpToFile</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;fileNamePattern)</code></th>
<td class="colLast">
<div class="block">Trigger a java dump.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#queryDumpOptions()">queryDumpOptions</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the current dump configuration as an array of Strings.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resetDumpOptions()">resetDumpOptions</a></span>()</code></th>
<td class="colLast">
<div class="block">Reset the JVM dump options to the settings specified when the JVM
 was started removing any additional configuration done since then.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDumpOptions(java.lang.String)">setDumpOptions</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;dumpOptions)</code></th>
<td class="colLast">
<div class="block">Sets options for the dump subsystem.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SnapDump()">SnapDump</a></span>()</code></th>
<td class="colLast">
<div class="block">Trigger a snap dump.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#snapDumpToFile()">snapDumpToFile</a></span>()</code></th>
<td class="colLast">
<div class="block">Trigger a snap dump.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#snapDumpToFile(java.lang.String)">snapDumpToFile</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;fileNamePattern)</code></th>
<td class="colLast">
<div class="block">Trigger a snap dump.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SystemDump()">SystemDump</a></span>()</code></th>
<td class="colLast">
<div class="block">Trigger a system dump.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#systemDumpToFile()">systemDumpToFile</a></span>()</code></th>
<td class="colLast">
<div class="block">Trigger a system dump.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#systemDumpToFile(java.lang.String)">systemDumpToFile</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;fileNamePattern)</code></th>
<td class="colLast">
<div class="block">Trigger a system dump.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#triggerDump(java.lang.String)">triggerDump</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;dumpOptions)</code></th>
<td class="colLast">
<div class="block">Trigger a dump with the specified options.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods declared in class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink" target="_blank">clone</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink" target="_blank">equals</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink" target="_blank">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink" target="_blank">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink" target="_blank">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink" target="_blank">notify</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink" target="_blank">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink" target="_blank">toString</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink" target="_blank">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink" target="_blank">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink" target="_blank">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a id="JavaDump()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>JavaDump</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;JavaDump()</pre>
<div class="block">Trigger a java dump. A java dump is in a human-readable format, and
 summarizes the state of the JVM.

 A security manager check will be made only if the system property
 com.ibm.jvm.enableLegacyDumpSecurity is set to "true" in which case
 a check will be made for com.ibm.jvm.DumpPermission</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">RuntimeException</a></code> - if the vm does not contain RAS dump support</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/SecurityException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">SecurityException</a></code> - if there is a security manager and it doesn't allow the checks required to trigger this dump</dd>
</dl>
</li>
</ul>
<a id="HeapDump()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>HeapDump</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;HeapDump()</pre>
<div class="block">Trigger a heap dump. The default heap dump format (a phd file) is not
 human-readable.

 A security manager check will be made only if the system property
 com.ibm.jvm.enableLegacyDumpSecurity is set to "true" in which case
 a check will be made for com.ibm.jvm.DumpPermission</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">RuntimeException</a></code> - if the vm does not contain RAS dump support</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/SecurityException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">SecurityException</a></code> - if there is a security manager and it doesn't allow the checks required to trigger this dump</dd>
</dl>
</li>
</ul>
<a id="SystemDump()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SystemDump</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;SystemDump()</pre>
<div class="block">Trigger a system dump. A system dump is a platform-specific
 file that contains information about the active processes, threads, and
 system memory. System dumps are usually large.

 A security manager check will be made only if the system property
 com.ibm.jvm.enableLegacyDumpSecurity is set to "true" in which case
 a check will be made for com.ibm.jvm.DumpPermission</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">RuntimeException</a></code> - if the vm does not contain RAS dump support</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/SecurityException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">SecurityException</a></code> - if there is a security manager and it doesn't allow the checks required to trigger this dump</dd>
</dl>
</li>
</ul>
<a id="SnapDump()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SnapDump</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;SnapDump()</pre>
<div class="block">Trigger a snap dump. The snap dump format is not human-readable
 and must be processed using the trace formatting tool supplied
 with the OpenJ9 JVM.

 A security manager check will be made only if the system property
 com.ibm.jvm.enableLegacyDumpSecurity is set to "true" in which case
 a check will be made for com.ibm.jvm.DumpPermission</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">RuntimeException</a></code> - if the vm does not contain RAS dump support</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/SecurityException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">SecurityException</a></code> - if there is a security manager and it doesn't allow the checks required to trigger this dump</dd>
</dl>
</li>
</ul>
<a id="javaDumpToFile(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>javaDumpToFile</h4>
<pre class="methodSignature">public static&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;javaDumpToFile&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;fileNamePattern)
                             throws <a href="InvalidDumpOptionException.html" title="class in com.ibm.jvm">InvalidDumpOptionException</a></pre>
<div class="block">Trigger a java dump. A java dump is in a human-readable format, and
 summarizes the state of the JVM.

 The JVM will attempt to write the file to the specified file name. This may
 include replacement tokens as documented in the section on dump agents
 in the documentation for the OpenJ9 JVM.

 A string containing the actual file name written to is returned. This may not
 be the same as the requested filename for several reasons:
 <ul>
 <li>null or the empty string were specified, this will cause the JVM to write the
  dump to the default location based on the current dump settings and return that
  path.</li>
 <li>Replacement (%) tokens were specified in the file name. These will have been
  expanded.</li>
 <li>The full path is returned, if only a file name with no directory was specified
  the full path with the directory the dump was written to will be returned.</li>
 <li>The JVM couldn't write to the specified location. In this case it will attempt
  to write the dump to another location, unless -Xdump:nofailover was specified on
  the command line.</li>
 </ul>

 If a security manager exists a permission check for com.ibm.jvm.DumpPermission will be
 made, if this fails a SecurityException will be thrown.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fileNamePattern</code> - the file name to write to, which may be null, empty or include replacement tokens</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the file name that the dump was actually written to</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="InvalidDumpOptionException.html" title="class in com.ibm.jvm">InvalidDumpOptionException</a></code> - if the filename was invalid</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/SecurityException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">SecurityException</a></code> - if there is a security manager and it doesn't allow the checks required to trigger this dump</dd>
</dl>
</li>
</ul>
<a id="javaDumpToFile()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>javaDumpToFile</h4>
<pre class="methodSignature">public static&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;javaDumpToFile()</pre>
<div class="block">Trigger a java dump. A java dump is in a human-readable format, and
 summarizes the state of the JVM.

 The JVM will attempt to write the file to the default location.

 A string containing the actual file name written to is returned.

 If a security manager exists a permission check for com.ibm.jvm.DumpPermission will be
 made, if this fails a SecurityException will be thrown.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the file name that the dump was actually written to</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/SecurityException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">SecurityException</a></code> - if there is a security manager and it doesn't allow the checks required to trigger this dump</dd>
</dl>
</li>
</ul>
<a id="heapDumpToFile(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>heapDumpToFile</h4>
<pre class="methodSignature">public static&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;heapDumpToFile&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;fileNamePattern)
                             throws <a href="InvalidDumpOptionException.html" title="class in com.ibm.jvm">InvalidDumpOptionException</a></pre>
<div class="block">Trigger a heap dump. The default heap dump format (a phd file) is not
 human-readable.

 The JVM will attempt to write the file to the specified file name. This may
 include replacement tokens as documented in the section on dump agents
 in the documentation for the OpenJ9 JVM.

 A string containing the actual file name written to is returned. This may not
 be the same as the requested filename for several reasons:
 <ul>
 <li>null or the empty string were specified, this will cause the JVM to write the
  dump to the default location based on the current dump settings and return that
  path.</li>
 <li>Replacement (%) tokens were specified in the file name. These will have been
  expanded.</li>
 <li>The full path is returned, if only a file name with no directory was specified
  the full path with the directory the dump was written to will be returned.</li>
 <li>The JVM couldn't write to the specified location. In this case it will attempt
  to write the dump to another location, unless -Xdump:nofailover was specified on
  the command line.</li>
 </ul>

 If a security manager exists a permission check for com.ibm.jvm.DumpPermission will be
 made, if this fails a SecurityException will be thrown.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fileNamePattern</code> - the file name to write to, which may be null, empty or include replacement tokens</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the file name that the dump was actually written to</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="InvalidDumpOptionException.html" title="class in com.ibm.jvm">InvalidDumpOptionException</a></code> - if the filename was invalid</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/SecurityException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">SecurityException</a></code> - if there is a security manager and it doesn't allow the checks required to trigger this dump</dd>
</dl>
</li>
</ul>
<a id="heapDumpToFile()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>heapDumpToFile</h4>
<pre class="methodSignature">public static&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;heapDumpToFile()</pre>
<div class="block">Trigger a heap dump. The default heap dump format (a phd file) is not
 human-readable.

 The JVM will attempt to write the file to the default location.

 A string containing the actual file name written to is returned.

 If a security manager exists a permission check for com.ibm.jvm.DumpPermission will be
 made, if this fails a SecurityException will be thrown.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the file name that the dump was actually written to</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/SecurityException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">SecurityException</a></code> - if there is a security manager and it doesn't allow the checks required to trigger this dump</dd>
</dl>
</li>
</ul>
<a id="systemDumpToFile(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>systemDumpToFile</h4>
<pre class="methodSignature">public static&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;systemDumpToFile&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;fileNamePattern)
                               throws <a href="InvalidDumpOptionException.html" title="class in com.ibm.jvm">InvalidDumpOptionException</a></pre>
<div class="block">Trigger a system dump. A system dump is a platform-specific
 file that contains information about the active processes, threads, and
 system memory. System dumps are usually large.

 The JVM will attempt to write the file to the specified file name. This may
 include replacement tokens as documented in the section on dump agents
 in the documentation for the OpenJ9 JVM.

 A string containing the actual file name written to is returned. This may not
 be the same as the requested filename for several reasons:
 <ul>
 <li>null or the empty string were specified, this will cause the JVM to write the
  dump to the default location based on the current dump settings and return that
  path.</li>
 <li>Replacement (%) tokens were specified in the file name. These will have been
  expanded.</li>
 <li>The full path is returned, if only a file name with no directory was specified
  the full path with the directory the dump was written to will be returned.</li>
 <li>The JVM couldn't write to the specified location. In this case it will attempt
  to write the dump to another location, unless -Xdump:nofailover was specified on
  the command line.</li>
 </ul>

 If a security manager exists a permission check for com.ibm.jvm.DumpPermission will be
 made, if this fails a SecurityException will be thrown.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fileNamePattern</code> - the file name to write to, which may be null, empty or include replacement tokens</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the file name that the dump was actually written to</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="InvalidDumpOptionException.html" title="class in com.ibm.jvm">InvalidDumpOptionException</a></code> - if the filename was invalid</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/SecurityException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">SecurityException</a></code> - if there is a security manager and it doesn't allow the checks required to trigger this dump</dd>
</dl>
</li>
</ul>
<a id="systemDumpToFile()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>systemDumpToFile</h4>
<pre class="methodSignature">public static&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;systemDumpToFile()</pre>
<div class="block">Trigger a system dump. A system dump is a platform-specific
 file that contains information about the active processes, threads, and
 system memory. System dumps are usually large.

 The JVM will attempt to write the file to the default location.

 A string containing the actual file name written to is returned.

 If a security manager exists a permission check for com.ibm.jvm.DumpPermission will be
 made, if this fails a SecurityException will be thrown.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the file name that the dump was actually written to</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/SecurityException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">SecurityException</a></code> - if there is a security manager and it doesn't allow the checks required to trigger this dump</dd>
</dl>
</li>
</ul>
<a id="snapDumpToFile(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>snapDumpToFile</h4>
<pre class="methodSignature">public static&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;snapDumpToFile&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;fileNamePattern)
                             throws <a href="InvalidDumpOptionException.html" title="class in com.ibm.jvm">InvalidDumpOptionException</a></pre>
<div class="block">Trigger a snap dump. The snap dump format is not human-readable
 and must be processed using the trace formatting tool supplied
 with the OpenJ9 JVM.

 The JVM will attempt to write the file to the specified file name. This may
 include replacement tokens as documented in the section on dump agents
 in the documentation for the OpenJ9 JVM.

 A string containing the actual file name written to is returned. This may not
 be the same as the requested filename for several reasons:
 <ul>
 <li>null or the empty string were specified, this will cause the JVM to write the
  dump to the default location based on the current dump settings and return that
  path.</li>
 <li>Replacement (%) tokens were specified in the file name. These will have been
  expanded.</li>
 <li>The full path is returned, if only a file name with no directory was specified
  the full path with the directory the dump was written to will be returned.</li>
 <li>The JVM couldn't write to the specified location. In this case it will attempt
  to write the dump to another location, unless -Xdump:nofailover was specified on
  the command line.</li>
 </ul>

 If a security manager exists a permission check for com.ibm.jvm.DumpPermission will be
 made, if this fails a SecurityException will be thrown.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fileNamePattern</code> - the file name to write to, which may be null, empty or include replacement tokens</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the file name that the dump was actually written to</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="InvalidDumpOptionException.html" title="class in com.ibm.jvm">InvalidDumpOptionException</a></code> - if the filename was invalid</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/SecurityException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">SecurityException</a></code> - if there is a security manager and it doesn't allow the checks required to trigger this dump</dd>
</dl>
</li>
</ul>
<a id="snapDumpToFile()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>snapDumpToFile</h4>
<pre class="methodSignature">public static&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;snapDumpToFile()</pre>
<div class="block">Trigger a snap dump. The snap dump format is not human-readable
 and must be processed using the trace formatting tool supplied
 with the OpenJ9 JVM.

 The JVM will attempt to write the file to the default location.

 A string containing the actual file name written to is returned.

 If a security manager exists a permission check for com.ibm.jvm.DumpPermission will be
 made, if this fails a SecurityException will be thrown.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the file name that the dump was actually written to</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/SecurityException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">SecurityException</a></code> - if there is a security manager and it doesn't allow the checks required to trigger this dump</dd>
</dl>
</li>
</ul>
<a id="triggerDump(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>triggerDump</h4>
<pre class="methodSignature">public static&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;triggerDump&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;dumpOptions)
                          throws <a href="InvalidDumpOptionException.html" title="class in com.ibm.jvm">InvalidDumpOptionException</a></pre>
<div class="block">Trigger a dump with the specified options.
 This method will trigger a dump of the specified type,
 with the specified options, immediately. The dump type and
 options are specified using the same string parameters
 as the -Xdump flag as described in the section on dump agents
 in the documentation for the OpenJ9 JVM.

 Settings that do not apply to dumps that occur immediately
 ("range=", "priority=", "filter=", "events=", "none" and "defaults")
 will be ignored.

 The "opts=" setting is supported if an option is used that causes two
 dumps to occur only the filename for the first will be returned.

 If a filename is specified for the dump it may contain replacement strings
 as specified in the documentation. In addition if a dump cannot be created
 with the specified filename the JVM may attempt to write it to another location.
 For these reasons you should always use the file name that is returned from this function
 when looking for the dump rather than the name you supplied.

 If a security manager exists a permission check for com.ibm.jvm.DumpPermission will be
 made, if this fails a SecurityException will be thrown. If a "tool" dump is requested an
 additional check for com.ibm.jvm.ToolDumpPermission will also be made.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dumpOptions</code> - a dump settings string</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The file name of the dump that was created. The String "-" means the dump was written to stderr.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">RuntimeException</a></code> - if the vm does not contain RAS dump support</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/SecurityException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">SecurityException</a></code> - if there is a security manager and it doesn't allow the checks required to trigger this dump</dd>
<dd><code><a href="InvalidDumpOptionException.html" title="class in com.ibm.jvm">InvalidDumpOptionException</a></code> - If the dump options are invalid or the dump operation fails</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">NullPointerException</a></code> - if dumpSettings is null</dd>
</dl>
</li>
</ul>
<a id="setDumpOptions(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDumpOptions</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;setDumpOptions&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;dumpOptions)
                           throws <a href="InvalidDumpOptionException.html" title="class in com.ibm.jvm">InvalidDumpOptionException</a>,
                                  <a href="DumpConfigurationUnavailableException.html" title="class in com.ibm.jvm">DumpConfigurationUnavailableException</a></pre>
<div class="block">Sets options for the dump subsystem.
 The dump option is passed in as an String.
 Use the same syntax as the -Xdump command-line option, with the initial -Xdump: omitted.
 See the -Xdump option section on dump agents
 in the documentation for the OpenJ9 JVM.

 This method may throw a DumpConfigurationUnavailableException if the dump configuration
 cannot be altered. If this occurs it will usually be because a dump event is currently
 being handled. As this can take some time depending on the dumps being generated an
 exception is thrown rather than this call blocking the calling thread potentially for
 minutes.

 If a security manager exists a permission check for com.ibm.jvm.DumpPermission will be
 made, if this fails a SecurityException will be thrown. If a "tool" dump is specified an
 additional check for com.ibm.jvm.ToolDumpPermission will also be made.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dumpOptions</code> - the options string to set</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="InvalidDumpOptionException.html" title="class in com.ibm.jvm">InvalidDumpOptionException</a></code> - if the specified option cannot be set or is incorrect</dd>
<dd><code><a href="DumpConfigurationUnavailableException.html" title="class in com.ibm.jvm">DumpConfigurationUnavailableException</a></code> - If the dump configuration cannot be changed because a dump is currently in progress</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/SecurityException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">SecurityException</a></code> - if there is a security manager and it doesn't allow the checks required to change the dump settings</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">NullPointerException</a></code> - if options is null</dd>
</dl>
</li>
</ul>
<a id="queryDumpOptions()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>queryDumpOptions</h4>
<pre class="methodSignature">public static&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>[]&nbsp;queryDumpOptions()</pre>
<div class="block">Returns the current dump configuration as an array of Strings.
 The syntax of the option Strings is the same as the -Xdump command-line option,
 with the initial -Xdump: omitted. See the -Xdump option
 section on dump agents in the documentation for the OpenJ9 JVM.

 If a security manager exists a permission check for com.ibm.jvm.DumpPermission will be
 made, if this fails a SecurityException will be thrown.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the options strings</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/SecurityException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">SecurityException</a></code> - if there is a security manager and it doesn't allow the checks required to read the dump settings</dd>
</dl>
</li>
</ul>
<a id="resetDumpOptions()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>resetDumpOptions</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;resetDumpOptions()
                             throws <a href="DumpConfigurationUnavailableException.html" title="class in com.ibm.jvm">DumpConfigurationUnavailableException</a></pre>
<div class="block">Reset the JVM dump options to the settings specified when the JVM
 was started removing any additional configuration done since then.

 This method may throw a DumpConfigurationUnavailableException if the dump configuration
 cannot be altered. If this occurs it will usually be because a dump event is currently
 being handled. As this can take some time depending on the dumps being generated an
 exception is thrown rather than this call blocking the calling thread potentially for
 minutes.

 If a security manager exists a permission check for com.ibm.jvm.DumpPermission will be
 made, if this fails a SecurityException will be thrown.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DumpConfigurationUnavailableException.html" title="class in com.ibm.jvm">DumpConfigurationUnavailableException</a></code> - if the dump configuration cannot be changed because a dump is currently in progress</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/SecurityException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">SecurityException</a></code> - if there is a security manager and it doesn't allow the checks required to change the dump settings</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Dump.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><div style="margin-top: 9px;"><strong>OpenJ9 JDK 11</strong></div></div>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small><a href="https://www.eclipse.org/openj9/" target="_blank">Eclipse OpenJ9 website.</a><br> To raise a bug report or suggest an improvement create an <a href="https://github.com/eclipse-openj9/openj9/issues" target="_blank">Eclipse Openj9 issue.</a><br> Copyright &copy; 1998, 2021, IBM Corp. and others.</small></p>
</footer>
</body>
</html>
