blob: fc663b5f525feb471beffbaa249d786815b3daab [file] [log] [blame]
<!--
* Copyright (c) 2017, 2019 IBM Corp. and others
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution and is available at
* https://www.eclipse.org/legal/epl-2.0/ or the Apache
* License, Version 2.0 which accompanies this distribution and
* is available at https://www.apache.org/licenses/LICENSE-2.0.
*
* This Source Code may also be made available under the
* following Secondary Licenses when the conditions for such
* availability set forth in the Eclipse Public License, v. 2.0
* are satisfied: GNU General Public License, version 2 with
* the GNU Classpath Exception [1] and GNU General Public
* License, version 2 with the OpenJDK Assembly Exception [2].
*
* [1] https://www.gnu.org/software/classpath/license.html
* [2] http://openjdk.java.net/legal/assembly-exception.html
*
* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH
* Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception
-->
<!DOCTYPE html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="Eclipse OpenJ9 documentation">
<link rel="canonical" href="https://www.eclipse.org/openj9/docs/dump_javadump/">
<meta name="lang:clipboard.copy" content="">
<meta name="lang:clipboard.copied" content="">
<meta name="lang:search.language" content="">
<meta name="lang:search.pipeline.stopwords" content="">
<meta name="lang:search.pipeline.trimmer" content="">
<meta name="lang:search.result.none" content="">
<meta name="lang:search.result.one" content="">
<meta name="lang:search.result.other" content="">
<meta name="lang:search.tokenizer" content="">
<link rel="shortcut icon" href="../cr/oj9logo_img9.ico">
<meta name="generator" content="mkdocs-1.0.4, mkdocs-material-3.0.4">
<title>Java dump - </title>
<link rel="stylesheet" href="../assets/stylesheets/application.451f80e5.css">
<link rel="stylesheet" href="../assets/stylesheets/application-palette.22915126.css">
<meta name="theme-color" content="#00bcd4">
<script src="../assets/javascripts/modernizr.1aa3b519.js"></script>
<link href="https://fonts.gstatic.com" rel="preconnect" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700|Roboto+Mono">
<style>body,input{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono","Courier New",Courier,monospace}</style>
<link rel="stylesheet" href="../assets/fonts/material-icons.css">
<link rel="stylesheet" href="../stylesheets/oj9.css">
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f (https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore%28j,f) );
})(window,document,'script','dataLayer','GTM-5WLCZXC');</script>
<!-- End Google Tag Manager -->
</head>
<body dir="" data-md-color-primary="cyan" data-md-color-accent="cyan">
<svg class="md-svg">
<defs>
<svg xmlns="http://www.w3.org/2000/svg" width="416" height="448"
viewBox="0 0 416 448" id="__github">
<path fill="currentColor" d="M160 304q0 10-3.125 20.5t-10.75 19-18.125
8.5-18.125-8.5-10.75-19-3.125-20.5 3.125-20.5 10.75-19 18.125-8.5
18.125 8.5 10.75 19 3.125 20.5zM320 304q0 10-3.125 20.5t-10.75
19-18.125 8.5-18.125-8.5-10.75-19-3.125-20.5 3.125-20.5 10.75-19
18.125-8.5 18.125 8.5 10.75 19 3.125 20.5zM360
304q0-30-17.25-51t-46.75-21q-10.25 0-48.75 5.25-17.75 2.75-39.25
2.75t-39.25-2.75q-38-5.25-48.75-5.25-29.5 0-46.75 21t-17.25 51q0 22 8
38.375t20.25 25.75 30.5 15 35 7.375 37.25 1.75h42q20.5 0
37.25-1.75t35-7.375 30.5-15 20.25-25.75 8-38.375zM416 260q0 51.75-15.25
82.75-9.5 19.25-26.375 33.25t-35.25 21.5-42.5 11.875-42.875 5.5-41.75
1.125q-19.5 0-35.5-0.75t-36.875-3.125-38.125-7.5-34.25-12.875-30.25-20.25-21.5-28.75q-15.5-30.75-15.5-82.75
0-59.25 34-99-6.75-20.5-6.75-42.5 0-29 12.75-54.5 27 0 47.5 9.875t47.25
30.875q36.75-8.75 77.25-8.75 37 0 70 8 26.25-20.5
46.75-30.25t47.25-9.75q12.75 25.5 12.75 54.5 0 21.75-6.75 42 34 40 34
99.5z" />
</svg>
</defs>
</svg>
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" data-md-component="overlay" for="__drawer"></label>
<a href="../#java-dump" tabindex="1" class="md-skip">
</a>
<!--
* Copyright (c) 2017, 2019 IBM Corp. and others
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution and is available at
* https://www.eclipse.org/legal/epl-2.0/ or the Apache
* License, Version 2.0 which accompanies this distribution and
* is available at https://www.apache.org/licenses/LICENSE-2.0.
*
* This Source Code may also be made available under the
* following Secondary Licenses when the conditions for such
* availability set forth in the Eclipse Public License, v. 2.0
* are satisfied: GNU General Public License, version 2 with
* the GNU Classpath Exception [1] and GNU General Public
* License, version 2 with the OpenJDK Assembly Exception [2].
*
* [1] https://www.gnu.org/software/classpath/license.html
* [2] http://openjdk.java.net/legal/assembly-exception.html
*
* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH
* Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception
-->
<header class="md-header" data-md-component="header">
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="https://www.eclipse.org/openj9/docs" title=" " class="md-header-nav__button md-logo">
<img src="../cr/openj9_6b.png">
</a>
</div>
<div class="md-flex__cell md-flex__cell--shrink">
<label class="md-icon md-icon--menu md-header-nav__button" for="drawer"></label>
</div>
<div class="md-flex__cell md-flex__cell--stretch">
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
</div>
</div>
<div class="md-flex__cell md-flex__cell--shrink">
<label class="md-icon md-icon--search md-header-nav__button" for="search"></label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="query" data-md-state="active">
<label class="md-icon md-search__icon" for="__search"></label>
<button type="reset" class="md-icon md-search__icon" data-md-component="reset" tabindex="-1">
&#xE5CD;
</button>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="result">
<div class="md-search-result__meta">
</div>
<ol class="md-search-result__list"></ol>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="md-flex__cell md-flex__cell--shrink">
<div class="md-header-nav__source">
<a href="https://github.com/eclipse/openj9-docs/" title="Go to repository" class="md-source" data-md-source="github">
<div class="md-source__icon">
<svg viewBox="0 0 24 24" width="24" height="24">
<use xlink:href="#__github" width="24" height="24"></use>
</svg>
</div>
<div class="md-source__repository">
GitHub
</div>
</a>
</div>
</div>
<!-- Eclipse Incubator link -->
<div class="md-flex__cell md-flex__cell--shrink">
<a href="http://wiki.eclipse.org/Development_Resources/Process_Guidelines/What_is_Incubation" target="_blank"><img class="egg" src="../cr/egg-incubation.png" alt="Eclipse Incubation"></a>
</div>
</div>
</nav>
</header>
<div class="md-container">
<main class="md-main">
<div class="md-main__inner md-grid" data-md-component="container">
<div class="md-sidebar md-sidebar--primary" data-md-component="navigation">
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="https://www.eclipse.org/openj9/docs" title=" " class="md-nav__button md-logo">
<img src="../cr/openj9_6b.png" width="48" height="48">
</a>
</label>
<div class="md-nav__source">
<a href="https://github.com/eclipse/openj9-docs/" title="Go to repository" class="md-source" data-md-source="github">
<div class="md-source__icon">
<svg viewBox="0 0 24 24" width="24" height="24">
<use xlink:href="#__github" width="24" height="24"></use>
</svg>
</div>
<div class="md-source__repository">
GitHub
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href=".." title="About" class="md-nav__link">
About
</a>
</li>
<li class="md-nav__item">
<a href="../adoptopenjdk/" title="AdoptOpenJDK builds" class="md-nav__link">
AdoptOpenJDK builds
</a>
</li>
<li class="md-nav__item">
<a href="../introduction/" title="Getting started" class="md-nav__link">
Getting started
</a>
</li>
<li class="md-nav__item">
<a href="../openj9_newuser/" title="New to OpenJ9?" class="md-nav__link">
New to OpenJ9?
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-5" type="checkbox" id="nav-5">
<label class="md-nav__link" for="nav-5">
Release notes
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="1">
<label class="md-nav__title" for="nav-5">
Release notes
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../version0.14.2/" title="Version 0.14.2" class="md-nav__link">
Version 0.14.2
</a>
</li>
<li class="md-nav__item">
<a href="../version0.14/" title="Version 0.14.0" class="md-nav__link">
Version 0.14.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.13/" title="Version 0.13.0" class="md-nav__link">
Version 0.13.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.12.1/" title="Version 0.12.1" class="md-nav__link">
Version 0.12.1
</a>
</li>
<li class="md-nav__item">
<a href="../version0.12/" title="Version 0.12.0" class="md-nav__link">
Version 0.12.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.11/" title="Version 0.11.0" class="md-nav__link">
Version 0.11.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.10/" title="Version 0.10.0" class="md-nav__link">
Version 0.10.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.9/" title="Version 0.9.0" class="md-nav__link">
Version 0.9.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.8/" title="Version 0.8.0" class="md-nav__link">
Version 0.8.0
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../gc/" title="Garbage Collection" class="md-nav__link">
Garbage Collection
</a>
</li>
<li class="md-nav__item">
<a href="../jit/" title="JIT Compiler" class="md-nav__link">
JIT Compiler
</a>
</li>
<li class="md-nav__item">
<a href="../aot/" title="AOT Compiler" class="md-nav__link">
AOT Compiler
</a>
</li>
<li class="md-nav__item">
<a href="../shrc/" title="Class data sharing" class="md-nav__link">
Class data sharing
</a>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-10" type="checkbox" id="nav-10" checked>
<label class="md-nav__link" for="nav-10">
Diagnostics
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="1">
<label class="md-nav__title" for="nav-10">
Diagnostics
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../diag_overview/" title="Tools and data" class="md-nav__link">
Tools and data
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
Java dump
</label>
<a href="./" title="Java dump" class="md-nav__link md-nav__link--active">
Java dump
</a>
<nav class="md-nav md-nav--secondary">
<label class="md-nav__title" for="__toc">On this page ...</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="#java-dump-contents" title="Java dump contents" class="md-nav__link">
Java dump contents
</a>
<nav class="md-nav">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#title" title="TITLE" class="md-nav__link">
TITLE
</a>
</li>
<li class="md-nav__item">
<a href="#gpinfo" title="GPINFO" class="md-nav__link">
GPINFO
</a>
</li>
<li class="md-nav__item">
<a href="#envinfo" title="ENVINFO" class="md-nav__link">
ENVINFO
</a>
</li>
<li class="md-nav__item">
<a href="#nativememinfo" title="NATIVEMEMINFO" class="md-nav__link">
NATIVEMEMINFO
</a>
</li>
<li class="md-nav__item">
<a href="#meminfo" title="MEMINFO" class="md-nav__link">
MEMINFO
</a>
</li>
<li class="md-nav__item">
<a href="#locks" title="LOCKS" class="md-nav__link">
LOCKS
</a>
</li>
<li class="md-nav__item">
<a href="#threads" title="THREADS" class="md-nav__link">
THREADS
</a>
</li>
<li class="md-nav__item">
<a href="#hooks" title="HOOKS" class="md-nav__link">
HOOKS
</a>
</li>
<li class="md-nav__item">
<a href="#shared-classes" title="SHARED CLASSES" class="md-nav__link">
SHARED CLASSES
</a>
</li>
<li class="md-nav__item">
<a href="#classes" title="CLASSES" class="md-nav__link">
CLASSES
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#scenarios" title="Scenarios" class="md-nav__link">
Scenarios
</a>
<nav class="md-nav">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#general-protection-fault" title="General Protection Fault" class="md-nav__link">
General Protection Fault
</a>
</li>
<li class="md-nav__item">
<a href="#java-outofmemoryerror" title="Java OutOfMemoryError" class="md-nav__link">
Java OutOfMemoryError
</a>
</li>
<li class="md-nav__item">
<a href="#native-outofmemoryerror" title="Native OutOfMemoryError" class="md-nav__link">
Native OutOfMemoryError
</a>
</li>
<li class="md-nav__item">
<a href="#deadlock" title="Deadlock" class="md-nav__link">
Deadlock
</a>
</li>
<li class="md-nav__item">
<a href="#hang" title="Hang" class="md-nav__link">
Hang
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../dump_heapdump/" title="Heap dump" class="md-nav__link">
Heap dump
</a>
</li>
<li class="md-nav__item">
<a href="../dump_systemdump/" title="System dump" class="md-nav__link">
System dump
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-11" type="checkbox" id="nav-11">
<label class="md-nav__link" for="nav-11">
Command-line options
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="1">
<label class="md-nav__title" for="nav-11">
Command-line options
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../cmdline_specifying/" title="Specifying options" class="md-nav__link">
Specifying options
</a>
</li>
<li class="md-nav__item">
<a href="../cmdline_general/" title="Standard options" class="md-nav__link">
Standard options
</a>
</li>
<li class="md-nav__item">
<a href="../cmdline_migration/" title="Switching to OpenJ9" class="md-nav__link">
Switching to OpenJ9
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-11-4" type="checkbox" id="nav-11-4">
<label class="md-nav__link" for="nav-11-4">
System property options
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="2">
<label class="md-nav__title" for="nav-11-4">
System property options
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../d_jvm_commands/" title="Using System properties" class="md-nav__link">
Using System properties
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmenableclasscaching/" title="-Dcom.ibm.enableClassCaching" class="md-nav__link">
-Dcom.ibm.enableClassCaching
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmenablelegacydumpsecurity/" title="-Dcom.ibm.enableLegacyDumpSecurity" class="md-nav__link">
-Dcom.ibm.enableLegacyDumpSecurity
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmenablelegacylogsecurity/" title="-Dcom.ibm.enableLegacyLogSecurity" class="md-nav__link">
-Dcom.ibm.enableLegacyLogSecurity
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmenablelegacytracesecurity/" title="-Dcom.ibm.enableLegacyTraceSecurity" class="md-nav__link">
-Dcom.ibm.enableLegacyTraceSecurity
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmlangmanagementosmxbeaniscputime100ns/" title="-Dcom.ibm.lang.management.OperatingSystemMXBean.isCpuTime100ns" class="md-nav__link">
-Dcom.ibm.lang.management.OperatingSystemMXBean.isCpuTime100ns
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmlangmanagementverbose/" title="-Dcom.ibm.lang.management.verbose" class="md-nav__link">
-Dcom.ibm.lang.management.verbose
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmtoolsattachdirectory/" title="-Dcom.ibm.tools.attach.directory" class="md-nav__link">
-Dcom.ibm.tools.attach.directory
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmtoolsattachdisplayname/" title="-Dcom.ibm.tools.attach.displayName" class="md-nav__link">
-Dcom.ibm.tools.attach.displayName
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmtoolsattachenable/" title="-Dcom.ibm.tools.attach.enable" class="md-nav__link">
-Dcom.ibm.tools.attach.enable
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmtoolsattachid/" title="-Dcom.ibm.tools.attach.id" class="md-nav__link">
-Dcom.ibm.tools.attach.id
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmtoolsattachtimeout/" title="-Dcom.ibm.tools.attach.timeout" class="md-nav__link">
-Dcom.ibm.tools.attach.timeout
</a>
</li>
<li class="md-nav__item">
<a href="../dfileencoding/" title="-Dfile.encoding" class="md-nav__link">
-Dfile.encoding
</a>
</li>
<li class="md-nav__item">
<a href="../djavacompiler/" title="-Djava.compiler" class="md-nav__link">
-Djava.compiler
</a>
</li>
<li class="md-nav__item">
<a href="../djdknativecbc/" title="-Djdk.nativeCBC" class="md-nav__link">
-Djdk.nativeCBC
</a>
</li>
<li class="md-nav__item">
<a href="../djdknativecrypto/" title="-Djdk.nativeCrypto" class="md-nav__link">
-Djdk.nativeCrypto
</a>
</li>
<li class="md-nav__item">
<a href="../djdknativedigest/" title="-Djdk.nativeDigest" class="md-nav__link">
-Djdk.nativeDigest
</a>
</li>
<li class="md-nav__item">
<a href="../djdknativegcm/" title="-Djdk.nativeGCM" class="md-nav__link">
-Djdk.nativeGCM
</a>
</li>
<li class="md-nav__item">
<a href="../djdknativersa/" title="-Djdk.nativeRSA" class="md-nav__link">
-Djdk.nativeRSA
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-11-5" type="checkbox" id="nav-11-5">
<label class="md-nav__link" for="nav-11-5">
JVM -X options
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="2">
<label class="md-nav__title" for="nav-11-5">
JVM -X options
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../x_jvm_commands/" title="Using -X options" class="md-nav__link">
Using -X options
</a>
</li>
<li class="md-nav__item">
<a href="../x/" title="-X" class="md-nav__link">
-X
</a>
</li>
<li class="md-nav__item">
<a href="../xaggressive/" title="-Xaggressive" class="md-nav__link">
-Xaggressive
</a>
</li>
<li class="md-nav__item">
<a href="../xalwaysclassgc/" title="-Xalwaysclassgc" class="md-nav__link">
-Xalwaysclassgc
</a>
</li>
<li class="md-nav__item">
<a href="../xaot/" title="-Xaot" class="md-nav__link">
-Xaot
</a>
</li>
<li class="md-nav__item">
<a href="../xargencoding/" title="-Xargencoding" class="md-nav__link">
-Xargencoding
</a>
</li>
<li class="md-nav__item">
<a href="../xbootclasspath/" title="-Xbootclasspath" class="md-nav__link">
-Xbootclasspath
</a>
</li>
<li class="md-nav__item">
<a href="../xceehdlr/" title="-XCEEHDLR" class="md-nav__link">
-XCEEHDLR
</a>
</li>
<li class="md-nav__item">
<a href="../xcheck/" title="-Xcheck" class="md-nav__link">
-Xcheck
</a>
</li>
<li class="md-nav__item">
<a href="../xclassgc/" title="-Xclassgc" class="md-nav__link">
-Xclassgc
</a>
</li>
<li class="md-nav__item">
<a href="../xcodecache/" title="-Xcodecache" class="md-nav__link">
-Xcodecache
</a>
</li>
<li class="md-nav__item">
<a href="../xcodecachetotal/" title="-Xcodecachetotal" class="md-nav__link">
-Xcodecachetotal
</a>
</li>
<li class="md-nav__item">
<a href="../xcomp/" title="-Xcomp" class="md-nav__link">
-Xcomp
</a>
</li>
<li class="md-nav__item">
<a href="../xcompactexplicitgc/" title="-Xcompactexplicitgc" class="md-nav__link">
-Xcompactexplicitgc
</a>
</li>
<li class="md-nav__item">
<a href="../xcompactgc/" title="-Xcompactgc" class="md-nav__link">
-Xcompactgc
</a>
</li>
<li class="md-nav__item">
<a href="../xcompilationthreads/" title="-XcompilationThreads" class="md-nav__link">
-XcompilationThreads
</a>
</li>
<li class="md-nav__item">
<a href="../xcompressedrefs/" title="-Xcompressedrefs" class="md-nav__link">
-Xcompressedrefs
</a>
</li>
<li class="md-nav__item">
<a href="../xconcurrentbackground/" title="-Xconcurrentbackground" class="md-nav__link">
-Xconcurrentbackground
</a>
</li>
<li class="md-nav__item">
<a href="../xconcurrentlevel/" title="-Xconcurrentlevel" class="md-nav__link">
-Xconcurrentlevel
</a>
</li>
<li class="md-nav__item">
<a href="../xconcurrentslack/" title="-Xconcurrentslack" class="md-nav__link">
-Xconcurrentslack
</a>
</li>
<li class="md-nav__item">
<a href="../xconmeter/" title="-Xconmeter" class="md-nav__link">
-Xconmeter
</a>
</li>
<li class="md-nav__item">
<a href="../xdiagnosticscollector/" title="-Xdiagnosticscollector" class="md-nav__link">
-Xdiagnosticscollector
</a>
</li>
<li class="md-nav__item">
<a href="../xenableexcessivegc/" title="-Xdisableexcessivegc" class="md-nav__link">
-Xdisableexcessivegc
</a>
</li>
<li class="md-nav__item">
<a href="../xenableexplicitgc/" title="-Xdisableexplicitgc" class="md-nav__link">
-Xdisableexplicitgc
</a>
</li>
<li class="md-nav__item">
<a href="../xdisablejavadump/" title="-Xdisablejavadump" class="md-nav__link">
-Xdisablejavadump
</a>
</li>
<li class="md-nav__item">
<a href="../xenablestringconstantgc/" title="-Xdisablestringconstantgc" class="md-nav__link">
-Xdisablestringconstantgc
</a>
</li>
<li class="md-nav__item">
<a href="../xdump/" title="-Xdump" class="md-nav__link">
-Xdump
</a>
</li>
<li class="md-nav__item">
<a href="../xenableexcessivegc/" title="-Xenableexcessivegc" class="md-nav__link">
-Xenableexcessivegc
</a>
</li>
<li class="md-nav__item">
<a href="../xenableexplicitgc/" title="-Xenableexplicitgc" class="md-nav__link">
-Xenableexplicitgc
</a>
</li>
<li class="md-nav__item">
<a href="../xenablestringconstantgc/" title="-Xenablestringconstantgc" class="md-nav__link">
-Xenablestringconstantgc
</a>
</li>
<li class="md-nav__item">
<a href="../xfastresolve/" title="-Xfastresolve" class="md-nav__link">
-Xfastresolve
</a>
</li>
<li class="md-nav__item">
<a href="../xfuture/" title="-Xfuture" class="md-nav__link">
-Xfuture
</a>
</li>
<li class="md-nav__item">
<a href="../xgc/" title="-Xgc" class="md-nav__link">
-Xgc
</a>
</li>
<li class="md-nav__item">
<a href="../xgcsplitheap/" title="-Xgc:splitheap" class="md-nav__link">
-Xgc:splitheap
</a>
</li>
<li class="md-nav__item">
<a href="../xgcpolicy/" title="-Xgcpolicy" class="md-nav__link">
-Xgcpolicy
</a>
</li>
<li class="md-nav__item">
<a href="../xgcthreads/" title="-Xgcthreads" class="md-nav__link">
-Xgcthreads
</a>
</li>
<li class="md-nav__item">
<a href="../xgcworkpackets/" title="-Xgcworkpackets" class="md-nav__link">
-Xgcworkpackets
</a>
</li>
<li class="md-nav__item">
<a href="../xifa/" title="-Xifa" class="md-nav__link">
-Xifa
</a>
</li>
<li class="md-nav__item">
<a href="../xint/" title="-Xint" class="md-nav__link">
-Xint
</a>
</li>
<li class="md-nav__item">
<a href="../xss/" title="-Xiss" class="md-nav__link">
-Xiss
</a>
</li>
<li class="md-nav__item">
<a href="../xjit/" title="-Xjit" class="md-nav__link">
-Xjit
</a>
</li>
<li class="md-nav__item">
<a href="../xjni/" title="-Xjni" class="md-nav__link">
-Xjni
</a>
</li>
<li class="md-nav__item">
<a href="../xlinenumbers/" title="-Xlinenumbers" class="md-nav__link">
-Xlinenumbers
</a>
</li>
<li class="md-nav__item">
<a href="../xloa/" title="-Xloa" class="md-nav__link">
-Xloa
</a>
</li>
<li class="md-nav__item">
<a href="../xloaminimum/" title="-Xloainitial" class="md-nav__link">
-Xloainitial
</a>
</li>
<li class="md-nav__item">
<a href="../xloaminimum/" title="-Xloamaximum" class="md-nav__link">
-Xloamaximum
</a>
</li>
<li class="md-nav__item">
<a href="../xloaminimum/" title="-Xloaminimum" class="md-nav__link">
-Xloaminimum
</a>
</li>
<li class="md-nav__item">
<a href="../xlockreservation/" title="-XlockReservation" class="md-nav__link">
-XlockReservation
</a>
</li>
<li class="md-nav__item">
<a href="../xlockword/" title="-Xlockword" class="md-nav__link">
-Xlockword
</a>
</li>
<li class="md-nav__item">
<a href="../xlog/" title="-Xlog" class="md-nav__link">
-Xlog
</a>
</li>
<li class="md-nav__item">
<a href="../xlp/" title="-Xlp" class="md-nav__link">
-Xlp
</a>
</li>
<li class="md-nav__item">
<a href="../xlpcodecache/" title="-Xlp:codecache" class="md-nav__link">
-Xlp:codecache
</a>
</li>
<li class="md-nav__item">
<a href="../xlpobjectheap/" title="-Xlp:objectheap" class="md-nav__link">
-Xlp:objectheap
</a>
</li>
<li class="md-nav__item">
<a href="../xmine/" title="-Xmaxe" class="md-nav__link">
-Xmaxe
</a>
</li>
<li class="md-nav__item">
<a href="../xminf/" title="-Xmaxf" class="md-nav__link">
-Xmaxf
</a>
</li>
<li class="md-nav__item">
<a href="../xmint/" title="-Xmaxt" class="md-nav__link">
-Xmaxt
</a>
</li>
<li class="md-nav__item">
<a href="../xmca/" title="-Xmca" class="md-nav__link">
-Xmca
</a>
</li>
<li class="md-nav__item">
<a href="../xmca/" title="-Xmco" class="md-nav__link">
-Xmco
</a>
</li>
<li class="md-nav__item">
<a href="../xmcrs/" title="-Xmcrs" class="md-nav__link">
-Xmcrs
</a>
</li>
<li class="md-nav__item">
<a href="../xmine/" title="-Xmine" class="md-nav__link">
-Xmine
</a>
</li>
<li class="md-nav__item">
<a href="../xminf/" title="-Xminf" class="md-nav__link">
-Xminf
</a>
</li>
<li class="md-nav__item">
<a href="../xmint/" title="-Xmint" class="md-nav__link">
-Xmint
</a>
</li>
<li class="md-nav__item">
<a href="../xmn/" title="-Xmn" class="md-nav__link">
-Xmn
</a>
</li>
<li class="md-nav__item">
<a href="../xmn/" title="-Xmns" class="md-nav__link">
-Xmns
</a>
</li>
<li class="md-nav__item">
<a href="../xmn/" title="-Xmnx" class="md-nav__link">
-Xmnx
</a>
</li>
<li class="md-nav__item">
<a href="../xmo/" title="-Xmo" class="md-nav__link">
-Xmo
</a>
</li>
<li class="md-nav__item">
<a href="../xmo/" title="-Xmoi" class="md-nav__link">
-Xmoi
</a>
</li>
<li class="md-nav__item">
<a href="../xmo/" title="-Xmos" class="md-nav__link">
-Xmos
</a>
</li>
<li class="md-nav__item">
<a href="../xmo/" title="-Xmox" class="md-nav__link">
-Xmox
</a>
</li>
<li class="md-nav__item">
<a href="../xmr/" title="-Xmr" class="md-nav__link">
-Xmr
</a>
</li>
<li class="md-nav__item">
<a href="../xmr/" title="-Xmrx" class="md-nav__link">
-Xmrx
</a>
</li>
<li class="md-nav__item">
<a href="../xms/" title="-Xms" class="md-nav__link">
-Xms
</a>
</li>
<li class="md-nav__item">
<a href="../xmso/" title="-Xmso" class="md-nav__link">
-Xmso
</a>
</li>
<li class="md-nav__item">
<a href="../xms/" title="-Xmx" class="md-nav__link">
-Xmx
</a>
</li>
<li class="md-nav__item">
<a href="../xaot/" title="-Xnoaot" class="md-nav__link">
-Xnoaot
</a>
</li>
<li class="md-nav__item">
<a href="../xclassgc/" title="-Xnoclassgc" class="md-nav__link">
-Xnoclassgc
</a>
</li>
<li class="md-nav__item">
<a href="../xcompactexplicitgc/" title="-Xnocompactexplicitgc" class="md-nav__link">
-Xnocompactexplicitgc
</a>
</li>
<li class="md-nav__item">
<a href="../xcompactgc/" title="-Xnocompactgc" class="md-nav__link">
-Xnocompactgc
</a>
</li>
<li class="md-nav__item">
<a href="../xcompressedrefs/" title="-Xnocompressedrefs" class="md-nav__link">
-Xnocompressedrefs
</a>
</li>
<li class="md-nav__item">
<a href="../xjit/" title="-Xnojit" class="md-nav__link">
-Xnojit
</a>
</li>
<li class="md-nav__item">
<a href="../xlinenumbers/" title="-Xnolinenumbers" class="md-nav__link">
-Xnolinenumbers
</a>
</li>
<li class="md-nav__item">
<a href="../xloa/" title="-Xnoloa" class="md-nav__link">
-Xnoloa
</a>
</li>
<li class="md-nav__item">
<a href="../xsigcatch/" title="-Xnosigcatch" class="md-nav__link">
-Xnosigcatch
</a>
</li>
<li class="md-nav__item">
<a href="../xsigchain/" title="-Xnosigchain" class="md-nav__link">
-Xnosigchain
</a>
</li>
<li class="md-nav__item">
<a href="../xnumanone/" title="-Xnuma:none" class="md-nav__link">
-Xnuma:none
</a>
</li>
<li class="md-nav__item">
<a href="../xoptionsfile/" title="-Xoptionsfile" class="md-nav__link">
-Xoptionsfile
</a>
</li>
<li class="md-nav__item">
<a href="../xquickstart/" title="-Xquickstart" class="md-nav__link">
-Xquickstart
</a>
</li>
<li class="md-nav__item">
<a href="../xrs/" title="-Xrs" class="md-nav__link">
-Xrs
</a>
</li>
<li class="md-nav__item">
<a href="../xsamplingexpirationtime/" title="-XsamplingExpirationTime" class="md-nav__link">
-XsamplingExpirationTime
</a>
</li>
<li class="md-nav__item">
<a href="../xscdmx/" title="-Xscdmx" class="md-nav__link">
-Xscdmx
</a>
</li>
<li class="md-nav__item">
<a href="../xscminaot/" title="-Xscmaxaot" class="md-nav__link">
-Xscmaxaot
</a>
</li>
<li class="md-nav__item">
<a href="../xscminjitdata/" title="-Xscmaxjitdata" class="md-nav__link">
-Xscmaxjitdata
</a>
</li>
<li class="md-nav__item">
<a href="../xscminaot/" title="-Xscminaot" class="md-nav__link">
-Xscminaot
</a>
</li>
<li class="md-nav__item">
<a href="../xscminjitdata/" title="-Xscminjitdata" class="md-nav__link">
-Xscminjitdata
</a>
</li>
<li class="md-nav__item">
<a href="../xscmx/" title="-Xscmx" class="md-nav__link">
-Xscmx
</a>
</li>
<li class="md-nav__item">
<a href="../xshareclasses/" title="-Xshareclasses" class="md-nav__link">
-Xshareclasses
</a>
</li>
<li class="md-nav__item">
<a href="../xsigcatch/" title="-Xsigcatch" class="md-nav__link">
-Xsigcatch
</a>
</li>
<li class="md-nav__item">
<a href="../xsigchain/" title="-Xsigchain" class="md-nav__link">
-Xsigchain
</a>
</li>
<li class="md-nav__item">
<a href="../xsignal/" title="-Xsignal" class="md-nav__link">
-Xsignal
</a>
</li>
<li class="md-nav__item">
<a href="../xsoftmx/" title="-Xsoftmx" class="md-nav__link">
-Xsoftmx
</a>
</li>
<li class="md-nav__item">
<a href="../xsoftrefthreshold/" title="-Xsoftrefthreshold" class="md-nav__link">
-Xsoftrefthreshold
</a>
</li>
<li class="md-nav__item">
<a href="../xss/" title="-Xss" class="md-nav__link">
-Xss
</a>
</li>
<li class="md-nav__item">
<a href="../xss/" title="-Xssi" class="md-nav__link">
-Xssi
</a>
</li>
<li class="md-nav__item">
<a href="../xtgc/" title="-Xtgc" class="md-nav__link">
-Xtgc
</a>
</li>
<li class="md-nav__item">
<a href="../xthr/" title="-Xthr" class="md-nav__link">
-Xthr
</a>
</li>
<li class="md-nav__item">
<a href="../xtlhprefetch/" title="-XtlhPrefetch" class="md-nav__link">
-XtlhPrefetch
</a>
</li>
<li class="md-nav__item">
<a href="../xtrace/" title="-Xtrace" class="md-nav__link">
-Xtrace
</a>
</li>
<li class="md-nav__item">
<a href="../xtunevirtualized/" title="-Xtune:virtualized" class="md-nav__link">
-Xtune:virtualized
</a>
</li>
<li class="md-nav__item">
<a href="../xverbosegclog/" title="-Xverbosegclog" class="md-nav__link">
-Xverbosegclog
</a>
</li>
<li class="md-nav__item">
<a href="../xverify/" title="-Xverify" class="md-nav__link">
-Xverify
</a>
</li>
<li class="md-nav__item">
<a href="../xzero/" title="-Xzero" class="md-nav__link">
-Xzero
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-11-6" type="checkbox" id="nav-11-6">
<label class="md-nav__link" for="nav-11-6">
JVM -XX options
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="2">
<label class="md-nav__title" for="nav-11-6">
JVM -XX options
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../xx_jvm_commands/" title="Using -XX options" class="md-nav__link">
Using -XX options
</a>
</li>
<li class="md-nav__item">
<a href="../xxactiveprocessorcount/" title="-XXActiveProcessorCount" class="md-nav__link">
-XXActiveProcessorCount
</a>
</li>
<li class="md-nav__item">
<a href="../xxallowvmshutdown/" title="-XXallowvmshutdown" class="md-nav__link">
-XXallowvmshutdown
</a>
</li>
<li class="md-nav__item">
<a href="../xxcodecachetotal/" title="-XX:codecachetotal" class="md-nav__link">
-XX:codecachetotal
</a>
</li>
<li class="md-nav__item">
<a href="../xxdisableexplicitgc/" title="-XX:[+|-]DisableExplicitGC" class="md-nav__link">
-XX:[+|-]DisableExplicitGC
</a>
</li>
<li class="md-nav__item">
<a href="../xxdisclaimjitscratch/" title="-XX:[+|-]DisclaimJitScratch" class="md-nav__link">
-XX:[+|-]DisclaimJitScratch
</a>
</li>
<li class="md-nav__item">
<a href="../xxenablecpumonitor/" title="-XX:[+|-]EnableCPUMonitor" class="md-nav__link">
-XX:[+|-]EnableCPUMonitor
</a>
</li>
<li class="md-nav__item">
<a href="../xxhandlesigxfsz/" title="-XX:[+|-]handleSIGXFSZ" class="md-nav__link">
-XX:[+|-]handleSIGXFSZ
</a>
</li>
<li class="md-nav__item">
<a href="../xxheapdumponoutofmemory/" title="-XX:[+|-]HeapDumpOnOutOfMemory" class="md-nav__link">
-XX:[+|-]HeapDumpOnOutOfMemory
</a>
</li>
<li class="md-nav__item">
<a href="../xxheapdumppath/" title="-XX:HeapDumpPath" class="md-nav__link">
-XX:HeapDumpPath
</a>
</li>
<li class="md-nav__item">
<a href="../xxheapmanagementmxbeancompatibility/" title="-XX:[+|-]HeapManagementMXBeanCompatibility" class="md-nav__link">
-XX:[+|-]HeapManagementMXBeanCompatibility
</a>
</li>
<li class="md-nav__item">
<a href="../xxidletuningcompactonidle/" title="-XX:[+|-]IdleTuningCompactOnIdle" class="md-nav__link">
-XX:[+|-]IdleTuningCompactOnIdle
</a>
</li>
<li class="md-nav__item">
<a href="../xxidletuninggconidle/" title="-XX:[+|-]IdleTuningGcOnIdle" class="md-nav__link">
-XX:[+|-]IdleTuningGcOnIdle
</a>
</li>
<li class="md-nav__item">
<a href="../xxidletuningminfreeheaponidle/" title="-XX:IdleTuningMinFreeHeapOnIdle" class="md-nav__link">
-XX:IdleTuningMinFreeHeapOnIdle
</a>
</li>
<li class="md-nav__item">
<a href="../xxidletuningminidlewaittime/" title="-XX:IdleTuningMinIdleWaitTime" class="md-nav__link">
-XX:IdleTuningMinIdleWaitTime
</a>
</li>
<li class="md-nav__item">
<a href="../xxignoreunrecognizedvmoptions/" title="-XX:[+|-]IgnoreUnrecognizedVMOptions" class="md-nav__link">
-XX:[+|-]IgnoreUnrecognizedVMOptions
</a>
</li>
<li class="md-nav__item">
<a href="../xxignoreunrecognizedxxcolonoptions/" title="-XX:[+|-]IgnoreUnrecognizedXXColonOptions" class="md-nav__link">
-XX:[+|-]IgnoreUnrecognizedXXColonOptions
</a>
</li>
<li class="md-nav__item">
<a href="../xxinitialrampercentage/" title="-XX:InitialRAMPercentage" class="md-nav__link">
-XX:InitialRAMPercentage
</a>
</li>
<li class="md-nav__item">
<a href="../xxinitialheapsize/" title="-XX:InitialHeapSize" class="md-nav__link">
-XX:InitialHeapSize
</a>
</li>
<li class="md-nav__item">
<a href="../xxinterleavememory/" title="-XX:[+|-]InterleaveMemory" class="md-nav__link">
-XX:[+|-]InterleaveMemory
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitinlinewatches/" title="-XX:[+|-]JITInlineWatches" class="md-nav__link">
-XX:[+|-]JITInlineWatches
</a>
</li>
<li class="md-nav__item">
<a href="../xxlazysymbolresolution/" title="-XX:[+|-]LazySymbolResolution" class="md-nav__link">
-XX:[+|-]LazySymbolResolution
</a>
</li>
<li class="md-nav__item">
<a href="../xxmaxdirectmemorysize/" title="-XX:MaxDirectMemorySize" class="md-nav__link">
-XX:MaxDirectMemorySize
</a>
</li>
<li class="md-nav__item">
<a href="../xxinitialheapsize/" title="-XX:MaxHeapSize" class="md-nav__link">
-XX:MaxHeapSize
</a>
</li>
<li class="md-nav__item">
<a href="../xxinitialrampercentage/" title="-XX:MaxRAMPercentage" class="md-nav__link">
-XX:MaxRAMPercentage
</a>
</li>
<li class="md-nav__item">
<a href="../xxnosuballoc32bitmem/" title="-XXnosuballoc32bitmem" class="md-nav__link">
-XXnosuballoc32bitmem
</a>
</li>
<li class="md-nav__item">
<a href="../xxpagealigndirectmemory/" title="-XX:[+|-]PageAlignDirectMemory" class="md-nav__link">
-XX:[+|-]PageAlignDirectMemory
</a>
</li>
<li class="md-nav__item">
<a href="../xxpositiveidentityhash/" title="-XX:[+|-]PositiveIdentityHash" class="md-nav__link">
-XX:[+|-]PositiveIdentityHash
</a>
</li>
<li class="md-nav__item">
<a href="../xxreadipinfoforras/" title="-XX:[+|-]ReadIPInfoForRAS" class="md-nav__link">
-XX:[+|-]ReadIPInfoForRAS
</a>
</li>
<li class="md-nav__item">
<a href="../xxreducecpumonitoroverhead/" title="-XX:[+|-]ReduceCPUMonitorOverhead" class="md-nav__link">
-XX:[+|-]ReduceCPUMonitorOverhead
</a>
</li>
<li class="md-nav__item">
<a href="../xxruntimeinstrumentation/" title="-XX:[+|-]RuntimeInstrumentation" class="md-nav__link">
-XX:[+|-]RuntimeInstrumentation
</a>
</li>
<li class="md-nav__item">
<a href="../xxsethwprefetch/" title="-XXsetHWPrefetch" class="md-nav__link">
-XXsetHWPrefetch
</a>
</li>
<li class="md-nav__item">
<a href="../xxshareclassesenablebci/" title="-XX:ShareClassesDisableBCI" class="md-nav__link">
-XX:ShareClassesDisableBCI
</a>
</li>
<li class="md-nav__item">
<a href="../xxshareclassesenablebci/" title="-XX:ShareClassesEnableBCI" class="md-nav__link">
-XX:ShareClassesEnableBCI
</a>
</li>
<li class="md-nav__item">
<a href="../xxsharedcachehardlimit/" title="-XX:SharedCacheHardLimit" class="md-nav__link">
-XX:SharedCacheHardLimit
</a>
</li>
<li class="md-nav__item">
<a href="../xxstacktraceinthrowable/" title="-XX:-StackTraceInThrowable" class="md-nav__link">
-XX:-StackTraceInThrowable
</a>
</li>
<li class="md-nav__item">
<a href="../xxusecompressedoops/" title="-XX:[+|-]UseCompressedOops" class="md-nav__link">
-XX:[+|-]UseCompressedOops
</a>
</li>
<li class="md-nav__item">
<a href="../xxusecontainersupport/" title="-XX:[+|-]UseContainerSupport" class="md-nav__link">
-XX:[+|-]UseContainerSupport
</a>
</li>
<li class="md-nav__item">
<a href="../xxusenogc/" title="-XX:[+|-]UseNoGC" class="md-nav__link">
-XX:[+|-]UseNoGC
</a>
</li>
<li class="md-nav__item">
<a href="../xxverboseverification/" title="-XX:[+|-]VerboseVerification" class="md-nav__link">
-XX:[+|-]VerboseVerification
</a>
</li>
<li class="md-nav__item">
<a href="../xxvmlockclassloader/" title="-XX:[+|-]VMLockClassLoader" class="md-nav__link">
-XX:[+|-]VMLockClassLoader
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-12" type="checkbox" id="nav-12">
<label class="md-nav__link" for="nav-12">
Tools
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="1">
<label class="md-nav__title" for="nav-12">
Tools
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../tool_jdmpview/" title="Dump viewer" class="md-nav__link">
Dump viewer
</a>
</li>
<li class="md-nav__item">
<a href="../tool_traceformat/" title="Trace formatter" class="md-nav__link">
Trace formatter
</a>
</li>
<li class="md-nav__item">
<a href="../tool_builder/" title="Option builder" class="md-nav__link">
Option builder
</a>
</li>
<li class="md-nav__item">
<a href="../tool_jps/" title="Java process status (jps) tool" class="md-nav__link">
Java process status (jps) tool
</a>
</li>
<li class="md-nav__item">
<a href="../tool_jstack/" title="Java stack (jstack) tool" class="md-nav__link">
Java stack (jstack) tool
</a>
</li>
<li class="md-nav__item">
<a href="../tool_migration/" title="Switching to OpenJ9" class="md-nav__link">
Switching to OpenJ9
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-13" type="checkbox" id="nav-13">
<label class="md-nav__link" for="nav-13">
Reference
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="1">
<label class="md-nav__title" for="nav-13">
Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../openj9_support/" title="Supported environments" class="md-nav__link">
Supported environments
</a>
</li>
<li class="md-nav__item">
<a href="../openj9_defaults/" title="Default settings" class="md-nav__link">
Default settings
</a>
</li>
<li class="md-nav__item">
<a href="../openj9_directories/" title="Directory conventions" class="md-nav__link">
Directory conventions
</a>
</li>
<li class="md-nav__item">
<a href="../messages_intro/" title="OpenJ9 messages" class="md-nav__link">
OpenJ9 messages
</a>
</li>
<li class="md-nav__item">
<a href="../env_var/" title="Environment variables" class="md-nav__link">
Environment variables
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../legal/" title="Legal" class="md-nav__link">
Legal
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary">
<label class="md-nav__title" for="__toc">On this page ...</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="#java-dump-contents" title="Java dump contents" class="md-nav__link">
Java dump contents
</a>
<nav class="md-nav">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#title" title="TITLE" class="md-nav__link">
TITLE
</a>
</li>
<li class="md-nav__item">
<a href="#gpinfo" title="GPINFO" class="md-nav__link">
GPINFO
</a>
</li>
<li class="md-nav__item">
<a href="#envinfo" title="ENVINFO" class="md-nav__link">
ENVINFO
</a>
</li>
<li class="md-nav__item">
<a href="#nativememinfo" title="NATIVEMEMINFO" class="md-nav__link">
NATIVEMEMINFO
</a>
</li>
<li class="md-nav__item">
<a href="#meminfo" title="MEMINFO" class="md-nav__link">
MEMINFO
</a>
</li>
<li class="md-nav__item">
<a href="#locks" title="LOCKS" class="md-nav__link">
LOCKS
</a>
</li>
<li class="md-nav__item">
<a href="#threads" title="THREADS" class="md-nav__link">
THREADS
</a>
</li>
<li class="md-nav__item">
<a href="#hooks" title="HOOKS" class="md-nav__link">
HOOKS
</a>
</li>
<li class="md-nav__item">
<a href="#shared-classes" title="SHARED CLASSES" class="md-nav__link">
SHARED CLASSES
</a>
</li>
<li class="md-nav__item">
<a href="#classes" title="CLASSES" class="md-nav__link">
CLASSES
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#scenarios" title="Scenarios" class="md-nav__link">
Scenarios
</a>
<nav class="md-nav">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#general-protection-fault" title="General Protection Fault" class="md-nav__link">
General Protection Fault
</a>
</li>
<li class="md-nav__item">
<a href="#java-outofmemoryerror" title="Java OutOfMemoryError" class="md-nav__link">
Java OutOfMemoryError
</a>
</li>
<li class="md-nav__item">
<a href="#native-outofmemoryerror" title="Native OutOfMemoryError" class="md-nav__link">
Native OutOfMemoryError
</a>
</li>
<li class="md-nav__item">
<a href="#deadlock" title="Deadlock" class="md-nav__link">
Deadlock
</a>
</li>
<li class="md-nav__item">
<a href="#hang" title="Hang" class="md-nav__link">
Hang
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content">
<article class="md-content__inner md-typeset">
<!-- this adds 'pencil' icon to H1 so that you can edit the page directly in GitHub
<a href="https://github.com/eclipse/openj9-docs/edit/master/docs/dump_javadump.md" title="Edit this page" class="md-icon md-content__icon">&#xE3C9;</a>
-->
<!--
* Copyright (c) 2017, 2019 IBM Corp. and others
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution and is available at
* https://www.eclipse.org/legal/epl-2.0/ or the Apache
* License, Version 2.0 which accompanies this distribution and
* is available at https://www.apache.org/licenses/LICENSE-2.0.
*
* This Source Code may also be made available under the
* following Secondary Licenses when the conditions for such
* availability set forth in the Eclipse Public License, v. 2.0
* are satisfied: GNU General Public License, version 2 with
* the GNU Classpath Exception [1] and GNU General Public
* License, version 2 with the OpenJDK Assembly Exception [2].
*
* [1] https://www.gnu.org/software/classpath/license.html
* [2] http://openjdk.java.net/legal/assembly-exception.html
*
* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH
* Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception
-->
<h1 id="java-dump">Java dump</h1>
<p>Java dumps, sometimes referred to as <em>Java cores</em>, are produced when the VM ends unexpectedly because of an operating system signal, <code>OutOfMemoryError</code>, or a user-initiated keystroke combination. You can also generate a Java dump by calling the Dump API programmatically from your application or specifying the <code>-Xdump:java</code> option on the command line.</p>
<p>If your Java application crashes or hangs, Java dumps can provide useful information to help you diagnose the root cause.</p>
<ul>
<li>If your application crashes, Javadumps are generated automatically for the following types of failure:<ul>
<li>the VM receives an unexpected signal or an assertion failure</li>
<li>the VM runs out of memory</li>
</ul>
</li>
<li>
<p>If your application hangs, you can trigger the generation of a Java dump by sending a SIGQUIT signal (<code>kill -3</code>) to the VM.</p>
<p><i class="fa fa-pencil-square-o" aria-hidden="true"></i> <strong>Note:</strong> On Windows, if you started the VM in a console window you can force the VM to produce a Java dump in response to a SIGBREAK signal
(Ctrl-Break keyboard combination). If you didn't start in a console window there is no equivalent to a Linux <code>kill</code> command on Windows for sending signals.
The only option here is to trigger a full system dump by finding the VM process in the <strong>Processes</strong> tab of the Windows Task Manager and clicking
<strong>Create dump file</strong>.</p>
</li>
</ul>
<p>To help you understand how a Java dump can help you with problem diagnosis, this topic includes a few scenarios to help you interpret the data:</p>
<ul>
<li><a href="#general-protection-fault">A crash caused by a general protection fault (gpf)</a></li>
<li><a href="#java-outofmemoryerror">A Java heap OutOfMemoryError (OOM)</a></li>
<li><a href="#native-outofmemoryerror">A native OutOfMemoryError (OOM)</a></li>
<li><a href="#deadlock">A deadlock situation</a></li>
<li><a href="#hang">A hang</a></li>
</ul>
<h2 id="java-dump-contents">Java dump contents</h2>
<p>Java dumps summarize the state of the VM when the event occurs, with most of the information relating to components of the VM.
The file is made up of a number of sections that provide different types of information.</p>
<h3 id="title">TITLE</h3>
<p>The first section of the Java dump file provides information about the event that triggered the production of the dump.
In the following example you can see that a <code>vmstop</code> event triggered the dump at a specified date and time.</p>
<div class="codehilite"><pre><span></span>0SECTION TITLE subcomponent dump routine
NULL ===============================
1TICHARSET UTF-8
1TISIGINFO Dump Event &quot;vmstop&quot; (00000002) Detail &quot;#0000000000000000&quot; received
1TIDATETIME Date: 2018/08/30 at 21:55:47:607
1TINANOTIME System nanotime: 22012355276134
1TIFILENAME Javacore filename: /home/doc-javacore/javacore.20180830.215547.30285.0001.txt
1TIREQFLAGS Request Flags: 0x81 (exclusive+preempt)
1TIPREPSTATE Prep State: 0x106 (vm_access+exclusive_vm_access+trace_disabled)
</pre></div>
<h3 id="gpinfo">GPINFO</h3>
<p>The GPINFO section provides general information about the system that the VM is running on. The following example is taken
from a Java dump that was generated on a Linux system.</p>
<div class="codehilite"><pre><span></span>NULL ------------------------------------------------------------------------
0SECTION GPINFO subcomponent dump routine
NULL ================================
2XHOSLEVEL OS Level : Linux 3.10.0-862.11.6.el7.x86_64
2XHCPUS Processors -
3XHCPUARCH Architecture : amd64
3XHNUMCPUS How Many : 4
3XHNUMASUP NUMA is either not supported or has been disabled by user
NULL
1XHERROR2 Register dump section only produced for SIGSEGV, SIGILL or SIGFPE.
NULL
</pre></div>
<p>The content of this section can vary, depending on the cause of the dump. For example, if the dump was caused by a
general protection fault (gpf), the library in which the crash occurred is also recorded, together with a value shown
as <code>VM flags</code>. This value can provide some clues about which component of the VM might have been involved. Look for the
following line in the output:</p>
<div class="codehilite"><pre><span></span>1XHFLAGS VM flags:0000000000000000
</pre></div>
<p>The hexadecimal number recorded for <code>VM flags</code> ends in MSSSS, where M is the VM component and SSSS is component-specific code as shown in the following table:</p>
<table>
<thead>
<tr>
<th>Component</th>
<th>Code value</th>
</tr>
</thead>
<tbody>
<tr>
<td>INTERPRETER</td>
<td>0x10000</td>
</tr>
<tr>
<td>GC</td>
<td>0x20000</td>
</tr>
<tr>
<td>GROW_STACK</td>
<td>0x30000</td>
</tr>
<tr>
<td>JNI</td>
<td>0x40000</td>
</tr>
<tr>
<td>JIT_CODEGEN</td>
<td>0x50000</td>
</tr>
<tr>
<td>BCVERIFY</td>
<td>0x60000</td>
</tr>
<tr>
<td>RTVERIFY</td>
<td>0x70000</td>
</tr>
<tr>
<td>SHAREDCLASSES</td>
<td>0x80000</td>
</tr>
</tbody>
</table>
<p>A value of <code>0000000000000000</code> (0x00000) indicates that a crash occurred outside of the VM.</p>
<h3 id="envinfo">ENVINFO</h3>
<p>This section contains useful information about the environment in which the crash took place, including the following data:</p>
<ul>
<li>Java version (<code>1CIJAVAVERSION</code>)</li>
<li>OpenJ9 VM and subcomponent version information (<code>1CIVMVERSION</code>, <code>1CIJ9VMVERSION</code>, <code>1CIJITVERSION</code>, <code>1CIOMRVERSION</code>, <code>1CIJCLVERSION</code>)</li>
<li>VM start time (<code>1CISTARTTIME</code>) and process information (<code>1CIPROCESSID</code>)</li>
<li>Java home (<code>1CIJAVAHOMEDIR</code>) and DLL (<code>1CIJAVADLLDIR</code>) directories</li>
<li>User arguments passed on the command line (<code>1CIUSERARG</code>)</li>
<li>User limits imposed by the system (<code>1CIUSERLIMITS</code>)</li>
<li>Environment variables in place (<code>1CIENVVARS</code>)</li>
<li>System information (<code>1CISYSINFO</code>)</li>
<li>CPU information (<code>1CICPUINFO</code>)</li>
<li>Control group (Cgroup) information (<code>1CICGRPINFO</code>)</li>
</ul>
<p>For clarity, the following example shows a shortened version of this section, where <code>...</code> indicates that lines are removed:</p>
<div class="codehilite"><pre><span></span><span class="nb">NULL</span> <span class="o">------------------------------------------------------------------------</span>
<span class="mi">0</span><span class="n">SECTION</span> <span class="n">ENVINFO</span> <span class="n">subcomponent</span> <span class="n">dump</span> <span class="n">routine</span>
<span class="nb">NULL</span> <span class="o">=================================</span>
<span class="mi">1</span><span class="n">CIJAVAVERSION</span> <span class="n">JRE</span> <span class="mi">9</span> <span class="n">Linux</span> <span class="n">amd64</span><span class="o">-</span><span class="mi">64</span> <span class="p">(</span><span class="n">build</span> <span class="mf">9.0.4</span><span class="o">-</span><span class="n">internal</span><span class="o">+</span><span class="mi">0</span><span class="o">-</span><span class="n">adhoc</span><span class="p">..</span><span class="n">openj9</span><span class="o">-</span><span class="n">openjdk</span><span class="o">-</span><span class="n">jdk9</span><span class="p">)</span>
<span class="mi">1</span><span class="n">CIVMVERSION</span> <span class="mi">20180830</span><span class="n">_000000</span>
<span class="mi">1</span><span class="n">CIJ9VMVERSION</span> <span class="mf">8e7</span><span class="n">c6ec</span>
<span class="mi">1</span><span class="n">CIJITVERSION</span> <span class="mf">8e7</span><span class="n">c6ec</span>
<span class="mi">1</span><span class="n">CIOMRVERSION</span> <span class="mi">553811</span><span class="n">b_CMPRSS</span>
<span class="mi">1</span><span class="n">CIJCLVERSION</span> <span class="n">ec1d223</span> <span class="n">based</span> <span class="n">on</span> <span class="n">jdk</span><span class="o">-</span><span class="mf">9.0.4</span><span class="o">+</span><span class="mi">12</span>
<span class="mi">1</span><span class="n">CIJITMODES</span> <span class="n">JIT</span> <span class="n">enabled</span><span class="p">,</span> <span class="n">AOT</span> <span class="n">enabled</span><span class="p">,</span> <span class="n">FSD</span> <span class="n">disabled</span><span class="p">,</span> <span class="n">HCR</span> <span class="n">enabled</span>
<span class="mi">1</span><span class="n">CIRUNNINGAS</span> <span class="n">Running</span> <span class="n">as</span> <span class="n">a</span> <span class="n">standalone</span> <span class="n">JVM</span>
<span class="mi">1</span><span class="n">CIVMIDLESTATE</span> <span class="n">VM</span> <span class="n">Idle</span> <span class="nl">State</span><span class="p">:</span> <span class="n">ACTIVE</span>
<span class="mi">1</span><span class="n">CICONTINFO</span> <span class="n">Running</span> <span class="k">in</span> <span class="nl">container</span> <span class="p">:</span> <span class="nb">FALSE</span>
<span class="mi">1</span><span class="n">CICGRPINFO</span> <span class="n">JVM</span> <span class="n">support</span> <span class="k">for</span> <span class="n">cgroups</span> <span class="nl">enabled</span> <span class="p">:</span> <span class="nb">TRUE</span>
<span class="mi">1</span><span class="n">CISTARTTIME</span> <span class="n">JVM</span> <span class="n">start</span> <span class="nl">time</span><span class="p">:</span> <span class="mi">2018</span><span class="o">/</span><span class="mi">08</span><span class="o">/</span><span class="mi">30</span> <span class="n">at</span> <span class="mi">21</span><span class="o">:</span><span class="mi">55</span><span class="o">:</span><span class="mi">47</span><span class="o">:</span><span class="mi">387</span>
<span class="mi">1</span><span class="n">CISTARTNANO</span> <span class="n">JVM</span> <span class="n">start</span> <span class="nl">nanotime</span><span class="p">:</span> <span class="mi">22012135233549</span>
<span class="mi">1</span><span class="n">CIPROCESSID</span> <span class="n">Process</span> <span class="nl">ID</span><span class="p">:</span> <span class="mi">30285</span> <span class="p">(</span><span class="mh">0x764D</span><span class="p">)</span>
<span class="mi">1</span><span class="n">CICMDLINE</span> <span class="p">[</span><span class="n">not</span> <span class="n">available</span><span class="p">]</span>
<span class="mi">1</span><span class="n">CIJAVAHOMEDIR</span> <span class="n">Java</span> <span class="n">Home</span> <span class="nl">Dir</span><span class="p">:</span> <span class="o">/</span><span class="n">home</span><span class="o">/</span><span class="n">me</span><span class="o">/</span><span class="n">openj9</span><span class="o">-</span><span class="n">openjdk</span><span class="o">-</span><span class="n">jdk9</span><span class="o">/</span><span class="n">build</span><span class="o">/</span><span class="n">linux</span><span class="o">-</span><span class="n">x86_64</span><span class="o">-</span><span class="n">normal</span><span class="o">-</span><span class="n">server</span><span class="o">-</span><span class="k">release</span><span class="o">/</span><span class="n">images</span><span class="o">/</span><span class="n">jdk</span>
<span class="mi">1</span><span class="n">CIJAVADLLDIR</span> <span class="n">Java</span> <span class="n">DLL</span> <span class="nl">Dir</span><span class="p">:</span> <span class="o">/</span><span class="n">home</span><span class="o">/</span><span class="n">me</span><span class="o">/</span><span class="n">openj9</span><span class="o">-</span><span class="n">openjdk</span><span class="o">-</span><span class="n">jdk9</span><span class="o">/</span><span class="n">build</span><span class="o">/</span><span class="n">linux</span><span class="o">-</span><span class="n">x86_64</span><span class="o">-</span><span class="n">normal</span><span class="o">-</span><span class="n">server</span><span class="o">-</span><span class="k">release</span><span class="o">/</span><span class="n">images</span><span class="o">/</span><span class="n">jdk</span><span class="o">/</span><span class="n">bin</span>
<span class="mi">1</span><span class="n">CISYSCP</span> <span class="n">Sys</span> <span class="nl">Classpath</span><span class="p">:</span>
<span class="mi">1</span><span class="n">CIUSERARGS</span> <span class="nl">UserArgs</span><span class="p">:</span>
<span class="mi">2</span><span class="n">CIUSERARG</span> <span class="o">-</span><span class="n">Xoptionsfile</span><span class="o">=/</span><span class="n">home</span><span class="o">/</span><span class="n">me</span><span class="o">/</span><span class="n">openj9</span><span class="o">-</span><span class="n">openjdk</span><span class="o">-</span><span class="n">jdk9</span><span class="o">/</span><span class="n">build</span><span class="o">/</span><span class="n">linux</span><span class="o">-</span><span class="n">x86_64</span><span class="o">-</span><span class="n">normal</span><span class="o">-</span><span class="n">server</span><span class="o">-</span><span class="k">release</span><span class="o">/</span><span class="n">images</span><span class="o">/</span><span class="n">jdk</span><span class="o">/</span><span class="n">lib</span><span class="o">/</span><span class="n">options</span><span class="p">.</span><span class="k">default</span>
<span class="p">...</span>
<span class="nb">NULL</span>
<span class="mi">1</span><span class="n">CIUSERLIMITS</span> <span class="n">User</span> <span class="n">Limits</span> <span class="p">(</span><span class="k">in</span> <span class="n">bytes</span> <span class="n">except</span> <span class="k">for</span> <span class="n">NOFILE</span> <span class="n">and</span> <span class="n">NPROC</span><span class="p">)</span>
<span class="nb">NULL</span> <span class="o">------------------------------------------------------------------------</span>
<span class="nb">NULL</span> <span class="n">type</span> <span class="n">soft</span> <span class="n">limit</span> <span class="n">hard</span> <span class="n">limit</span>
<span class="mi">2</span><span class="n">CIUSERLIMIT</span> <span class="n">RLIMIT_AS</span> <span class="n">unlimited</span> <span class="n">unlimited</span>
<span class="mi">2</span><span class="n">CIUSERLIMIT</span> <span class="n">RLIMIT_CORE</span> <span class="mi">0</span> <span class="n">unlimited</span>
<span class="mi">2</span><span class="n">CIUSERLIMIT</span> <span class="n">RLIMIT_CPU</span> <span class="n">unlimited</span> <span class="n">unlimited</span>
<span class="mi">2</span><span class="n">CIUSERLIMIT</span> <span class="n">RLIMIT_DATA</span> <span class="n">unlimited</span> <span class="n">unlimited</span>
<span class="mi">2</span><span class="n">CIUSERLIMIT</span> <span class="n">RLIMIT_FSIZE</span> <span class="n">unlimited</span> <span class="n">unlimited</span>
<span class="mi">2</span><span class="n">CIUSERLIMIT</span> <span class="n">RLIMIT_LOCKS</span> <span class="n">unlimited</span> <span class="n">unlimited</span>
<span class="mi">2</span><span class="n">CIUSERLIMIT</span> <span class="n">RLIMIT_MEMLOCK</span> <span class="mi">65536</span> <span class="mi">65536</span>
<span class="mi">2</span><span class="n">CIUSERLIMIT</span> <span class="n">RLIMIT_NOFILE</span> <span class="mi">4096</span> <span class="mi">4096</span>
<span class="mi">2</span><span class="n">CIUSERLIMIT</span> <span class="n">RLIMIT_NPROC</span> <span class="mi">4096</span> <span class="mi">30592</span>
<span class="mi">2</span><span class="n">CIUSERLIMIT</span> <span class="n">RLIMIT_RSS</span> <span class="n">unlimited</span> <span class="n">unlimited</span>
<span class="mi">2</span><span class="n">CIUSERLIMIT</span> <span class="n">RLIMIT_STACK</span> <span class="mi">8388608</span> <span class="n">unlimited</span>
<span class="mi">2</span><span class="n">CIUSERLIMIT</span> <span class="n">RLIMIT_MSGQUEUE</span> <span class="mi">819200</span> <span class="mi">819200</span>
<span class="mi">2</span><span class="n">CIUSERLIMIT</span> <span class="n">RLIMIT_NICE</span> <span class="mi">0</span> <span class="mi">0</span>
<span class="mi">2</span><span class="n">CIUSERLIMIT</span> <span class="n">RLIMIT_RTPRIO</span> <span class="mi">0</span> <span class="mi">0</span>
<span class="mi">2</span><span class="n">CIUSERLIMIT</span> <span class="n">RLIMIT_SIGPENDING</span> <span class="mi">30592</span> <span class="mi">30592</span>
<span class="nb">NULL</span>
<span class="mi">1</span><span class="n">CIENVVARS</span> <span class="n">Environment</span> <span class="n">Variables</span>
<span class="nb">NULL</span> <span class="o">------------------------------------------------------------------------</span>
<span class="mi">2</span><span class="n">CIENVVAR</span> <span class="n">XDG_VTNR</span><span class="o">=</span><span class="mi">1</span>
<span class="mi">2</span><span class="n">CIENVVAR</span> <span class="n">SSH_AGENT_PID</span><span class="o">=</span><span class="mi">2653</span>
<span class="p">...</span>
<span class="nb">NULL</span>
<span class="mi">1</span><span class="n">CISYSINFO</span> <span class="n">System</span> <span class="n">Information</span>
<span class="nb">NULL</span> <span class="o">------------------------------------------------------------------------</span>
<span class="mi">2</span><span class="n">CISYSINFO</span> <span class="o">/</span><span class="n">proc</span><span class="o">/</span><span class="n">sys</span><span class="o">/</span><span class="n">kernel</span><span class="o">/</span><span class="n">core_pattern</span> <span class="o">=</span> <span class="n">core</span>
<span class="mi">2</span><span class="n">CISYSINFO</span> <span class="o">/</span><span class="n">proc</span><span class="o">/</span><span class="n">sys</span><span class="o">/</span><span class="n">kernel</span><span class="o">/</span><span class="n">core_uses_pid</span> <span class="o">=</span> <span class="mi">1</span>
<span class="nb">NULL</span>
<span class="mi">1</span><span class="n">CICPUINFO</span> <span class="n">CPU</span> <span class="n">Information</span>
<span class="nb">NULL</span> <span class="o">------------------------------------------------------------------------</span>
<span class="mi">2</span><span class="n">CIPHYSCPU</span> <span class="n">Physical</span> <span class="nl">CPUs</span><span class="p">:</span> <span class="mi">4</span>
<span class="mi">2</span><span class="n">CIONLNCPU</span> <span class="n">Online</span> <span class="nl">CPUs</span><span class="p">:</span> <span class="mi">4</span>
<span class="mi">2</span><span class="n">CIBOUNDCPU</span> <span class="n">Bound</span> <span class="nl">CPUs</span><span class="p">:</span> <span class="mi">4</span>
<span class="mi">2</span><span class="n">CIACTIVECPU</span> <span class="n">Active</span> <span class="nl">CPUs</span><span class="p">:</span> <span class="mi">0</span>
<span class="mi">2</span><span class="n">CITARGETCPU</span> <span class="n">Target</span> <span class="nl">CPUs</span><span class="p">:</span> <span class="mi">4</span>
<span class="nb">NULL</span>
<span class="mi">1</span><span class="n">CICGRPINFO</span> <span class="n">Cgroup</span> <span class="n">Information</span>
<span class="nb">NULL</span> <span class="o">------------------------------------------------------------------------</span>
<span class="mi">2</span><span class="n">CICGRPINFO</span> <span class="nl">subsystem</span> <span class="p">:</span> <span class="n">cpu</span>
<span class="mi">2</span><span class="n">CICGRPINFO</span> <span class="n">cgroup</span> <span class="nl">name</span> <span class="p">:</span> <span class="o">/</span>
<span class="mi">3</span><span class="n">CICGRPINFO</span> <span class="n">CPU</span> <span class="nl">Period</span> <span class="p">:</span> <span class="mi">100000</span> <span class="n">microseconds</span>
<span class="mi">3</span><span class="n">CICGRPINFO</span> <span class="n">CPU</span> <span class="nl">Quota</span> <span class="p">:</span> <span class="n">Not</span> <span class="n">Set</span>
<span class="mi">3</span><span class="n">CICGRPINFO</span> <span class="n">CPU</span> <span class="nl">Shares</span> <span class="p">:</span> <span class="mi">1024</span>
<span class="mi">3</span><span class="n">CICGRPINFO</span> <span class="n">Period</span> <span class="n">intervals</span> <span class="n">elapsed</span> <span class="nl">count</span> <span class="p">:</span> <span class="mi">0</span>
<span class="mi">3</span><span class="n">CICGRPINFO</span> <span class="n">Throttled</span> <span class="nl">count</span> <span class="p">:</span> <span class="mi">0</span>
<span class="mi">3</span><span class="n">CICGRPINFO</span> <span class="n">Total</span> <span class="n">throttle</span> <span class="nl">time</span> <span class="p">:</span> <span class="mi">0</span> <span class="n">nanoseconds</span>
<span class="mi">2</span><span class="n">CICGRPINFO</span> <span class="nl">subsystem</span> <span class="p">:</span> <span class="n">cpuset</span>
<span class="mi">2</span><span class="n">CICGRPINFO</span> <span class="n">cgroup</span> <span class="nl">name</span> <span class="p">:</span> <span class="o">/</span>
<span class="mi">3</span><span class="n">CICGRPINFO</span> <span class="n">CPU</span> <span class="nl">exclusive</span> <span class="p">:</span> <span class="mi">1</span>
<span class="mi">3</span><span class="n">CICGRPINFO</span> <span class="n">Mem</span> <span class="nl">exclusive</span> <span class="p">:</span> <span class="mi">1</span>
<span class="mi">3</span><span class="n">CICGRPINFO</span> <span class="nl">CPUs</span> <span class="p">:</span> <span class="mi">0</span><span class="o">-</span><span class="mi">3</span>
<span class="mi">3</span><span class="n">CICGRPINFO</span> <span class="nl">Mems</span> <span class="p">:</span> <span class="mi">0</span>
<span class="mi">2</span><span class="n">CICGRPINFO</span> <span class="nl">subsystem</span> <span class="p">:</span> <span class="n">memory</span>
<span class="mi">2</span><span class="n">CICGRPINFO</span> <span class="n">cgroup</span> <span class="nl">name</span> <span class="p">:</span> <span class="o">/</span>
<span class="mi">3</span><span class="n">CICGRPINFO</span> <span class="n">Memory</span> <span class="nl">Limit</span> <span class="p">:</span> <span class="n">Not</span> <span class="n">Set</span>
<span class="mi">3</span><span class="n">CICGRPINFO</span> <span class="n">Memory</span> <span class="o">+</span> <span class="n">Swap</span> <span class="nl">Limit</span> <span class="p">:</span> <span class="n">Not</span> <span class="n">Set</span>
<span class="mi">3</span><span class="n">CICGRPINFO</span> <span class="n">Memory</span> <span class="nl">Usage</span> <span class="p">:</span> <span class="mi">5363396608</span> <span class="n">bytes</span>
<span class="mi">3</span><span class="n">CICGRPINFO</span> <span class="n">Memory</span> <span class="o">+</span> <span class="n">Swap</span> <span class="nl">Usage</span> <span class="p">:</span> <span class="mi">5363396608</span> <span class="n">bytes</span>
<span class="mi">3</span><span class="n">CICGRPINFO</span> <span class="n">Memory</span> <span class="n">Max</span> <span class="nl">Usage</span> <span class="p">:</span> <span class="mi">0</span> <span class="n">bytes</span>
<span class="mi">3</span><span class="n">CICGRPINFO</span> <span class="n">Memory</span> <span class="o">+</span> <span class="n">Swap</span> <span class="n">Max</span> <span class="nl">Usage</span> <span class="p">:</span> <span class="mi">0</span> <span class="n">bytes</span>
<span class="mi">3</span><span class="n">CICGRPINFO</span> <span class="n">Memory</span> <span class="n">limit</span> <span class="n">exceeded</span> <span class="nl">count</span> <span class="p">:</span> <span class="mi">0</span>
<span class="mi">3</span><span class="n">CICGRPINFO</span> <span class="n">Memory</span> <span class="o">+</span> <span class="n">Swap</span> <span class="n">limit</span> <span class="n">exceeded</span> <span class="nl">count</span> <span class="p">:</span> <span class="mi">0</span>
<span class="mi">3</span><span class="n">CICGRPINFO</span> <span class="n">OOM</span> <span class="n">Killer</span> <span class="nl">Disabled</span> <span class="p">:</span> <span class="mi">0</span>
<span class="mi">3</span><span class="n">CICGRPINFO</span> <span class="n">Under</span> <span class="nl">OOM</span> <span class="p">:</span> <span class="mi">0</span>
<span class="nb">NULL</span>
</pre></div>
<h3 id="nativememinfo">NATIVEMEMINFO</h3>
<p>This section records information about native memory that is requested by using library functions such as <code>malloc()</code> and <code>mmap()</code>.
Values are provided as a breakdown, per component, indicating the total number of bytes allocated and the number of native memory allocations.
In the following example, 4,682,840 bytes of native memory are allocated (but not yet freed) to VM Classes, which corresponds to 141 allocations.</p>
<div class="codehilite"><pre><span></span>NULL ------------------------------------------------------------------------
0SECTION NATIVEMEMINFO subcomponent dump routine
NULL =================================
0MEMUSER
1MEMUSER JRE: 2,569,088,312 bytes / 4653 allocations
1MEMUSER |
2MEMUSER +--VM: 2,280,088,336 bytes / 2423 allocations
2MEMUSER | |
3MEMUSER | +--Classes: 4,682,840 bytes / 141 allocations
2MEMUSER | |
3MEMUSER | +--Memory Manager (GC): 2,054,966,784 bytes / 433 allocations
3MEMUSER | | |
4MEMUSER | | +--Java Heap: 2,014,113,792 bytes / 1 allocation
3MEMUSER | | |
4MEMUSER | | +--Other: 40,852,992 bytes / 432 allocations
2MEMUSER | |
3MEMUSER | +--Threads: 10,970,016 bytes / 156 allocations
3MEMUSER | | |
4MEMUSER | | +--Java Stack: 197,760 bytes / 16 allocations
3MEMUSER | | |
4MEMUSER | | +--Native Stack: 10,616,832 bytes / 17 allocations
3MEMUSER | | |
4MEMUSER | | +--Other: 155,424 bytes / 123 allocations
2MEMUSER | |
3MEMUSER | +--Trace: 180,056 bytes / 263 allocations
2MEMUSER | |
3MEMUSER | +--JVMTI: 17,776 bytes / 13 allocations
2MEMUSER | |
3MEMUSER | +--JNI: 36,184 bytes / 52 allocations
2MEMUSER | |
3MEMUSER | +--Port Library: 208,179,632 bytes / 72 allocations
3MEMUSER | | |
4MEMUSER | | +--Unused &lt;32bit allocation regions: 208,168,752 bytes / 1 allocation
3MEMUSER | | |
4MEMUSER | | +--Other: 10,880 bytes / 71 allocations
2MEMUSER | |
3MEMUSER | +--Other: 1,055,048 bytes / 1293 allocations
1MEMUSER |
2MEMUSER +--JIT: 288,472,816 bytes / 140 allocations
2MEMUSER | |
3MEMUSER | +--JIT Code Cache: 268,435,456 bytes / 1 allocation
2MEMUSER | |
3MEMUSER | +--JIT Data Cache: 2,097,216 bytes / 1 allocation
2MEMUSER | |
3MEMUSER | +--Other: 17,940,144 bytes / 138 allocations
1MEMUSER |
2MEMUSER +--Class Libraries: 13,432 bytes / 25 allocations
2MEMUSER | |
3MEMUSER | +--VM Class Libraries: 13,432 bytes / 25 allocations
3MEMUSER | | |
4MEMUSER | | +--sun.misc.Unsafe: 3,184 bytes / 13 allocations
4MEMUSER | | | |
5MEMUSER | | | +--Direct Byte Buffers: 1,056 bytes / 12 allocations
4MEMUSER | | | |
5MEMUSER | | | +--Other: 2,128 bytes / 1 allocation
3MEMUSER | | |
4MEMUSER | | +--Other: 10,248 bytes / 12 allocations
1MEMUSER |
2MEMUSER +--Unknown: 513,728 bytes / 2065 allocations
NULL
</pre></div>
<p>This section does not record memory that is allocated by application or JNI code and is typically a little less than the
value recorded by operating system tools.</p>
<h3 id="meminfo">MEMINFO</h3>
<p>This section relates to memory management, providing a breakdown of memory usage in the VM for the object heap,
internal memory, memory used for classes, the JIT code cache, and JIT data cache in decimal and hexadecimal format.
You can also find out which garbage collection policy is in use when the dump is produced. </p>
<p>The object memory area (<code>1STHEAPTYPE</code>) records each memory region in use, its start and end address, and region size.
Further information is recorded about the memory segments used for internal memory, class memory, the JIT code cache and JIT data cache (<code>1STSEGMENT</code>).
This information includes the address of the segment control data structure, the start and end address of the native memory segment, as well as
the segment size.</p>
<p>For clarity, the following example shows a shortened version of this section, where <code>...</code> indicates that lines are removed:</p>
<div class="codehilite"><pre><span></span>NULL ------------------------------------------------------------------------
0SECTION MEMINFO subcomponent dump routine
NULL =================================
NULL
1STHEAPTYPE Object Memory
NULL id start end size space/region
1STHEAPSPACE 0x00007FF4F00744A0 -- -- -- Generational
1STHEAPREGION 0x00007FF4F0074CE0 0x0000000087F40000 0x0000000088540000 0x0000000000600000 Generational/Tenured Region
1STHEAPREGION 0x00007FF4F0074930 0x00000000FFE00000 0x00000000FFF00000 0x0000000000100000 Generational/Nursery Region
1STHEAPREGION 0x00007FF4F0074580 0x00000000FFF00000 0x0000000100000000 0x0000000000100000 Generational/Nursery Region
NULL
1STHEAPTOTAL Total memory: 8388608 (0x0000000000800000)
1STHEAPINUSE Total memory in use: 2030408 (0x00000000001EFB48)
1STHEAPFREE Total memory free: 6358200 (0x00000000006104B8)
NULL
1STSEGTYPE Internal Memory
NULL segment start alloc end type size
1STSEGMENT 0x00007FF4F004CBC8 0x00007FF4CD33C000 0x00007FF4CD33C000 0x00007FF4CE33C000 0x01000440 0x0000000001000000
1STSEGMENT 0x00007FF4F004CB08 0x00007FF4DE43D030 0x00007FF4DE517770 0x00007FF4DE53D030 0x00800040 0x0000000000100000
NULL
1STSEGTOTAL Total memory: 17825792 (0x0000000001100000)
1STSEGINUSE Total memory in use: 894784 (0x00000000000DA740)
1STSEGFREE Total memory free: 16931008 (0x00000000010258C0)
NULL
1STSEGTYPE Class Memory
NULL segment start alloc end type size
1STSEGMENT 0x00007FF4F03B5638 0x0000000001053D98 0x000000000105BD98 0x000000000105BD98 0x00010040 0x0000000000008000
1STSEGMENT 0x00007FF4F03B5578 0x0000000001048188 0x0000000001050188 0x0000000001050188 0x00010040 0x0000000000008000
...
NULL
1STSEGTOTAL Total memory: 3512520 (0x00000000003598C8)
1STSEGINUSE Total memory in use: 3433944 (0x00000000003465D8)
1STSEGFREE Total memory free: 78576 (0x00000000000132F0)
NULL
1STSEGTYPE JIT Code Cache
NULL segment start alloc end type size
1STSEGMENT 0x00007FF4F00961F8 0x00007FF4CE43D000 0x00007FF4CE445790 0x00007FF4DE43D000 0x00000068 0x0000000010000000
NULL
1STSEGTOTAL Total memory: 268435456 (0x0000000010000000)
1STSEGINUSE Total memory in use: 34704 (0x0000000000008790)
1STSEGFREE Total memory free: 268400752 (0x000000000FFF7870)
1STSEGLIMIT Allocation limit: 268435456 (0x0000000010000000)
NULL
1STSEGTYPE JIT Data Cache
NULL segment start alloc end type size
1STSEGMENT 0x00007FF4F0096668 0x00007FF4CC553030 0x00007FF4CC753030 0x00007FF4CC753030 0x00000048 0x0000000000200000
NULL
1STSEGTOTAL Total memory: 2097152 (0x0000000000200000)
1STSEGINUSE Total memory in use: 2097152 (0x0000000000200000)
1STSEGFREE Total memory free: 0 (0x0000000000000000)
1STSEGLIMIT Allocation limit: 402653184 (0x0000000018000000)
NULL
1STGCHTYPE GC History
NULL
</pre></div>
<p>In the example, the GC History (<code>1STGCHTYPE</code>) section is blank. This section is populated if a garbage collection cycle occurred in
a VM that is being diagnosed with the trace facility.</p>
<h3 id="locks">LOCKS</h3>
<p>This section of the Java dump provides information about locks, which protect shared resources from being accessed by more than one entity at a time. The information is essential in a deadlock situation, where two threads attempt to synchronize on an object and lock an instance of a class. Precise information is recorded about the threads that are causing the problem, which enables you to identify the root cause.</p>
<p>The following example shows a typical LOCKS section, where no deadlocks existed at the time the dump was triggered. For clarity, the following example shows a shortened version of this section, where <code>...</code> indicates that lines are removed:</p>
<div class="codehilite"><pre><span></span><span class="nb">NULL</span> <span class="o">------------------------------------------------------------------------</span>
<span class="mi">0</span><span class="n">SECTION</span> <span class="n">LOCKS</span> <span class="n">subcomponent</span> <span class="n">dump</span> <span class="n">routine</span>
<span class="nb">NULL</span> <span class="o">===============================</span>
<span class="nb">NULL</span>
<span class="mi">1L</span><span class="n">KPOOLINFO</span> <span class="n">Monitor</span> <span class="n">pool</span> <span class="nl">info</span><span class="p">:</span>
<span class="mi">2L</span><span class="n">KPOOLTOTAL</span> <span class="n">Current</span> <span class="n">total</span> <span class="n">number</span> <span class="n">of</span> <span class="nl">monitors</span><span class="p">:</span> <span class="mi">3</span>
<span class="nb">NULL</span>
<span class="mi">1L</span><span class="n">KMONPOOLDUMP</span> <span class="n">Monitor</span> <span class="n">Pool</span> <span class="n">Dump</span> <span class="p">(</span><span class="n">flat</span> <span class="o">&amp;</span> <span class="n">inflated</span> <span class="n">object</span><span class="o">-</span><span class="n">monitors</span><span class="p">)</span><span class="o">:</span>
<span class="mi">2L</span><span class="n">KMONINUSE</span> <span class="nl">sys_mon_t</span><span class="p">:</span><span class="mh">0x00007FF4B0001D78</span> <span class="nl">infl_mon_t</span><span class="p">:</span> <span class="mh">0x00007FF4B0001DF8</span><span class="o">:</span>
<span class="mi">3L</span><span class="n">KMONOBJECT</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">ref</span><span class="o">/</span><span class="n">ReferenceQueue</span><span class="mh">@0x00000000FFE26A10</span><span class="o">:</span> <span class="o">&lt;</span><span class="n">unowned</span><span class="o">&gt;</span>
<span class="mi">3L</span><span class="n">KNOTIFYQ</span> <span class="n">Waiting</span> <span class="n">to</span> <span class="n">be</span> <span class="nl">notified</span><span class="p">:</span>
<span class="mi">3L</span><span class="n">KWAITNOTIFY</span> <span class="s">&quot;Common-Cleaner&quot;</span> <span class="p">(</span><span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x0000000000FD0100</span><span class="p">)</span>
<span class="nb">NULL</span>
<span class="mi">1L</span><span class="n">KREGMONDUMP</span> <span class="n">JVM</span> <span class="n">System</span> <span class="n">Monitor</span> <span class="n">Dump</span> <span class="p">(</span><span class="n">registered</span> <span class="n">monitors</span><span class="p">)</span><span class="o">:</span>
<span class="mi">2L</span><span class="n">KREGMON</span> <span class="n">Thread</span> <span class="n">global</span> <span class="n">lock</span> <span class="p">(</span><span class="mh">0x00007FF4F0004FE8</span><span class="p">)</span><span class="o">:</span> <span class="o">&lt;</span><span class="n">unowned</span><span class="o">&gt;</span>
<span class="mi">2L</span><span class="n">KREGMON</span> <span class="o">&amp;</span><span class="p">(</span><span class="n">PPG_mem_mem32_subAllocHeapMem32</span><span class="p">.</span><span class="n">monitor</span><span class="p">)</span> <span class="n">lock</span> <span class="p">(</span><span class="mh">0x00007FF4F0005098</span><span class="p">)</span><span class="o">:</span> <span class="o">&lt;</span><span class="n">unowned</span><span class="o">&gt;</span>
<span class="mi">2L</span><span class="n">KREGMON</span> <span class="n">NLS</span> <span class="n">hash</span> <span class="n">table</span> <span class="n">lock</span> <span class="p">(</span><span class="mh">0x00007FF4F0005148</span><span class="p">)</span><span class="o">:</span> <span class="o">&lt;</span><span class="n">unowned</span><span class="o">&gt;</span>
<span class="p">...</span>
<span class="nb">NULL</span>
</pre></div>
<h3 id="threads">THREADS</h3>
<p>The THREADS section of a Java dump file provides summary information about the VM thread pool and detailed information about Java threads, native threads, and stack traces. Understanding the content of this section can help you diagnose problems that are caused by blocked or waiting threads.</p>
<p>A Java thread runs on a native thread. Several lines are recorded for each Java thread in the <code>Thread Details</code> subsection, which include the following key pieces of information:</p>
<ul>
<li><code>3XMTHREADINFO</code>: The thread name, address information for the VM thread structures and Java thread object, the thread state, and thread priority.</li>
<li><code>3XMJAVALTHREAD</code>: The Java thread ID and daemon status from the thread object.</li>
<li><code>3XMTHREADINFO1</code>: The native operating system thread ID, priority, scheduling policy, internal VM thread state, and VM thread flags.</li>
<li><code>3XMTHREADINFO2</code>: The native stack address range.</li>
<li><code>3XMTHREADINFO3</code>: Java callstack information (<code>4XESTACKTRACE</code>) or Native call stack information (<code>4XENATIVESTACK</code>).</li>
<li><code>5XESTACKTRACE</code>: This line indicates whether locks were taken by a specific method.</li>
</ul>
<p>Java thread priorities are mapped to operating system priority values. Thread states are shown in the following table:</p>
<table>
<thead>
<tr>
<th>Thread state value</th>
<th>Status</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>R</td>
<td>Runnable</td>
<td>The thread is able to run</td>
</tr>
<tr>
<td>CW</td>
<td>Condition Wait</td>
<td>The thread is waiting</td>
</tr>
<tr>
<td>S</td>
<td>Suspended</td>
<td>The thread is suspended by another thread</td>
</tr>
<tr>
<td>Z</td>
<td>Zombie</td>
<td>The thread is destroyed</td>
</tr>
<tr>
<td>P</td>
<td>Parked</td>
<td>The thread is parked by <code>java.util.concurrent</code></td>
</tr>
<tr>
<td>B</td>
<td>Blocked</td>
<td>The thread is waiting to obtain a lock</td>
</tr>
</tbody>
</table>
<p>For threads that are parked (P), blocked (B), or waiting (CW), an additional line (<code>3XMTHREADBLOCK</code>) is included in the output that shows what the thread is parked on, blocked on, or waiting for.</p>
<p>For clarity, the following example shows a shortened version of a typical THREADS section, where <code>...</code> indicates that lines are removed:</p>
<div class="codehilite"><pre><span></span><span class="nv">NULL</span> <span class="s s-Atom">------------------------------------------------------------------------</span>
<span class="mi">0</span><span class="nv">SECTION</span> <span class="nv">THREADS</span> <span class="s s-Atom">subcomponent</span> <span class="s s-Atom">dump</span> <span class="s s-Atom">routine</span>
<span class="nv">NULL</span> <span class="s s-Atom">=================================</span>
<span class="nv">NULL</span>
<span class="mi">1</span><span class="nv">XMPOOLINFO</span> <span class="nv">JVM</span> <span class="nv">Thread</span> <span class="s s-Atom">pool</span> <span class="nn">info</span><span class="p">:</span>
<span class="mi">2</span><span class="nv">XMPOOLTOTAL</span> <span class="nv">Current</span> <span class="s s-Atom">total</span> <span class="s s-Atom">number</span> <span class="s s-Atom">of</span> <span class="s s-Atom">pooled</span> <span class="nn">threads</span><span class="p">:</span> <span class="mi">18</span>
<span class="mi">2</span><span class="nv">XMPOOLLIVE</span> <span class="nv">Current</span> <span class="s s-Atom">total</span> <span class="s s-Atom">number</span> <span class="s s-Atom">of</span> <span class="s s-Atom">live</span> <span class="nn">threads</span><span class="p">:</span> <span class="mi">16</span>
<span class="mi">2</span><span class="nv">XMPOOLDAEMON</span> <span class="nv">Current</span> <span class="s s-Atom">total</span> <span class="s s-Atom">number</span> <span class="s s-Atom">of</span> <span class="s s-Atom">live</span> <span class="s s-Atom">daemon</span> <span class="nn">threads</span><span class="p">:</span> <span class="mi">15</span>
<span class="nv">NULL</span>
<span class="mi">1</span><span class="nv">XMTHDINFO</span> <span class="nv">Thread</span> <span class="nv">Details</span>
<span class="nv">NULL</span>
<span class="mi">3</span><span class="nv">XMTHREADINFO</span> <span class="s2">&quot;JIT Diagnostic Compilation Thread-7 Suspended&quot;</span> <span class="nv">J9VMThread</span><span class="s s-Atom">:</span><span class="mh">0x0000000000EFC500</span><span class="p">,</span> <span class="s s-Atom">omrthread_t:</span><span class="mh">0x00007FF4F00A77E8</span><span class="p">,</span> <span class="s s-Atom">java</span><span class="o">/</span><span class="s s-Atom">lang</span><span class="o">/</span><span class="nv">Thread</span><span class="s s-Atom">:</span><span class="mh">0x00000000FFE97480</span><span class="p">,</span> <span class="nn">state</span><span class="p">:</span><span class="nv">R</span><span class="p">,</span> <span class="s s-Atom">prio</span><span class="o">=</span><span class="mi">10</span>
<span class="mi">3</span><span class="nv">XMJAVALTHREAD</span> <span class="p">(</span><span class="s s-Atom">java</span><span class="o">/</span><span class="s s-Atom">lang</span><span class="o">/</span><span class="nv">Thread</span> <span class="s s-Atom">getId:</span><span class="mh">0xA</span><span class="p">,</span> <span class="s s-Atom">isDaemon:true</span><span class="p">)</span>
<span class="mi">3</span><span class="nv">XMTHREADINFO1</span> <span class="p">(</span><span class="s s-Atom">native</span> <span class="s s-Atom">thread</span> <span class="nv">ID</span><span class="s s-Atom">:</span><span class="mh">0x7657</span><span class="p">,</span> <span class="s s-Atom">native</span> <span class="nn">priority</span><span class="p">:</span><span class="mh">0xB</span><span class="p">,</span> <span class="s s-Atom">native</span> <span class="nn">policy</span><span class="p">:</span><span class="nv">UNKNOWN</span><span class="p">,</span> <span class="nn">vmstate</span><span class="p">:</span><span class="nv">CW</span><span class="p">,</span> <span class="s s-Atom">vm</span> <span class="s s-Atom">thread</span> <span class="nn">flags</span><span class="p">:</span><span class="mh">0x00000081</span><span class="p">)</span>
<span class="mi">3</span><span class="nv">XMTHREADINFO2</span> <span class="p">(</span><span class="s s-Atom">native</span> <span class="s s-Atom">stack</span> <span class="s s-Atom">address</span> <span class="s s-Atom">range</span> <span class="nn">from</span><span class="p">:</span><span class="mh">0x00007FF4CCC36000</span><span class="p">,</span> <span class="nn">to</span><span class="p">:</span><span class="mh">0x00007FF4CCD36000</span><span class="p">,</span> <span class="nn">size</span><span class="p">:</span><span class="mh">0x100000</span><span class="p">)</span>
<span class="mi">3</span><span class="nv">XMCPUTIME</span> <span class="nv">CPU</span> <span class="s s-Atom">usage</span> <span class="nn">total</span><span class="p">:</span> <span class="mf">0.000037663</span> <span class="s s-Atom">secs</span><span class="p">,</span> <span class="s s-Atom">current</span> <span class="s s-Atom">category=</span><span class="s2">&quot;JIT&quot;</span>
<span class="mi">3</span><span class="nv">XMHEAPALLOC</span> <span class="nv">Heap</span> <span class="s s-Atom">bytes</span> <span class="s s-Atom">allocated</span> <span class="s s-Atom">since</span> <span class="s s-Atom">last</span> <span class="nv">GC</span> <span class="s s-Atom">cycle</span><span class="o">=</span><span class="mi">0</span> <span class="p">(</span><span class="mh">0x0</span><span class="p">)</span>
<span class="mi">3</span><span class="nv">XMTHREADINFO3</span> <span class="nv">No</span> <span class="nv">Java</span> <span class="s s-Atom">callstack</span> <span class="s s-Atom">associated</span> <span class="s s-Atom">with</span> <span class="s s-Atom">this</span> <span class="s s-Atom">thread</span>
<span class="mi">3</span><span class="nv">XMTHREADINFO3</span> <span class="nv">No</span> <span class="s s-Atom">native</span> <span class="s s-Atom">callstack</span> <span class="s s-Atom">available</span> <span class="s s-Atom">for</span> <span class="s s-Atom">this</span> <span class="s s-Atom">thread</span>
<span class="nv">NULL</span>
<span class="p">...</span>
<span class="mi">3</span><span class="nv">XMTHREADINFO</span> <span class="s2">&quot;Common-Cleaner&quot;</span> <span class="nv">J9VMThread</span><span class="s s-Atom">:</span><span class="mh">0x0000000000FD0100</span><span class="p">,</span> <span class="s s-Atom">omrthread_t:</span><span class="mh">0x00007FF4F022A520</span><span class="p">,</span> <span class="s s-Atom">java</span><span class="o">/</span><span class="s s-Atom">lang</span><span class="o">/</span><span class="nv">Thread</span><span class="s s-Atom">:</span><span class="mh">0x00000000FFE26F40</span><span class="p">,</span> <span class="nn">state</span><span class="p">:</span><span class="nv">CW</span><span class="p">,</span> <span class="s s-Atom">prio</span><span class="o">=</span><span class="mi">8</span>
<span class="mi">3</span><span class="nv">XMJAVALTHREAD</span> <span class="p">(</span><span class="s s-Atom">java</span><span class="o">/</span><span class="s s-Atom">lang</span><span class="o">/</span><span class="nv">Thread</span> <span class="s s-Atom">getId:</span><span class="mh">0x2</span><span class="p">,</span> <span class="s s-Atom">isDaemon:true</span><span class="p">)</span>
<span class="mi">3</span><span class="nv">XMTHREADINFO1</span> <span class="p">(</span><span class="s s-Atom">native</span> <span class="s s-Atom">thread</span> <span class="nv">ID</span><span class="s s-Atom">:</span><span class="mh">0x765A</span><span class="p">,</span> <span class="s s-Atom">native</span> <span class="nn">priority</span><span class="p">:</span><span class="mh">0x8</span><span class="p">,</span> <span class="s s-Atom">native</span> <span class="nn">policy</span><span class="p">:</span><span class="nv">UNKNOWN</span><span class="p">,</span> <span class="nn">vmstate</span><span class="p">:</span><span class="nv">CW</span><span class="p">,</span> <span class="s s-Atom">vm</span> <span class="s s-Atom">thread</span> <span class="nn">flags</span><span class="p">:</span><span class="mh">0x00080181</span><span class="p">)</span>
<span class="mi">3</span><span class="nv">XMTHREADINFO2</span> <span class="p">(</span><span class="s s-Atom">native</span> <span class="s s-Atom">stack</span> <span class="s s-Atom">address</span> <span class="s s-Atom">range</span> <span class="nn">from</span><span class="p">:</span><span class="mh">0x00007FF4CC0B8000</span><span class="p">,</span> <span class="nn">to</span><span class="p">:</span><span class="mh">0x00007FF4CC0F8000</span><span class="p">,</span> <span class="nn">size</span><span class="p">:</span><span class="mh">0x40000</span><span class="p">)</span>
<span class="mi">3</span><span class="nv">XMCPUTIME</span> <span class="nv">CPU</span> <span class="s s-Atom">usage</span> <span class="nn">total</span><span class="p">:</span> <span class="mf">0.000150926</span> <span class="s s-Atom">secs</span><span class="p">,</span> <span class="s s-Atom">current</span> <span class="s s-Atom">category=</span><span class="s2">&quot;Application&quot;</span>
<span class="mi">3</span><span class="nv">XMTHREADBLOCK</span> <span class="nv">Waiting</span> <span class="nn">on</span><span class="p">:</span> <span class="s s-Atom">java</span><span class="o">/</span><span class="s s-Atom">lang</span><span class="o">/</span><span class="s s-Atom">ref</span><span class="o">/</span><span class="nv">ReferenceQueue</span><span class="s s-Atom">@</span><span class="mh">0x00000000FFE26A10</span> <span class="nv">Owned</span> <span class="nn">by</span><span class="p">:</span> <span class="o">&lt;</span><span class="s s-Atom">unowned</span><span class="o">&gt;</span>
<span class="mi">3</span><span class="nv">XMHEAPALLOC</span> <span class="nv">Heap</span> <span class="s s-Atom">bytes</span> <span class="s s-Atom">allocated</span> <span class="s s-Atom">since</span> <span class="s s-Atom">last</span> <span class="nv">GC</span> <span class="s s-Atom">cycle</span><span class="o">=</span><span class="mi">0</span> <span class="p">(</span><span class="mh">0x0</span><span class="p">)</span>
<span class="mi">3</span><span class="nv">XMTHREADINFO3</span> <span class="nv">Java</span> <span class="nn">callstack</span><span class="p">:</span>
<span class="mi">4</span><span class="nv">XESTACKTRACE</span> <span class="s s-Atom">at</span> <span class="s s-Atom">java</span><span class="o">/</span><span class="s s-Atom">lang</span><span class="o">/</span><span class="nv">Object</span><span class="p">.</span><span class="nf">wait</span><span class="p">(</span><span class="nv">Native</span> <span class="nv">Method</span><span class="p">)</span>
<span class="mi">4</span><span class="nv">XESTACKTRACE</span> <span class="s s-Atom">at</span> <span class="s s-Atom">java</span><span class="o">/</span><span class="s s-Atom">lang</span><span class="o">/</span><span class="nv">Object</span><span class="p">.</span><span class="nf">wait</span><span class="p">(</span><span class="nv">Object</span><span class="p">.</span><span class="nn">java</span><span class="p">:</span><span class="mi">221</span><span class="p">)</span>
<span class="mi">4</span><span class="nv">XESTACKTRACE</span> <span class="s s-Atom">at</span> <span class="s s-Atom">java</span><span class="o">/</span><span class="s s-Atom">lang</span><span class="o">/</span><span class="s s-Atom">ref</span><span class="o">/</span><span class="nv">ReferenceQueue</span><span class="p">.</span><span class="nf">remove</span><span class="p">(</span><span class="nv">ReferenceQueue</span><span class="p">.</span><span class="nn">java</span><span class="p">:</span><span class="mi">138</span><span class="p">)</span>
<span class="mi">5</span><span class="nv">XESTACKTRACE</span> <span class="p">(</span><span class="s s-Atom">entered</span> <span class="nn">lock</span><span class="p">:</span> <span class="s s-Atom">java</span><span class="o">/</span><span class="s s-Atom">lang</span><span class="o">/</span><span class="s s-Atom">ref</span><span class="o">/</span><span class="nv">ReferenceQueue</span><span class="s s-Atom">@</span><span class="mh">0x00000000FFE26A10</span><span class="p">,</span> <span class="s s-Atom">entry</span> <span class="nn">count</span><span class="p">:</span> <span class="mi">1</span><span class="p">)</span>
<span class="mi">4</span><span class="nv">XESTACKTRACE</span> <span class="s s-Atom">at</span> <span class="s s-Atom">jdk</span><span class="o">/</span><span class="s s-Atom">internal</span><span class="o">/</span><span class="s s-Atom">ref</span><span class="o">/</span><span class="nv">CleanerImpl</span><span class="p">.</span><span class="nf">run</span><span class="p">(</span><span class="nv">CleanerImpl</span><span class="p">.</span><span class="nn">java</span><span class="p">:</span><span class="mi">148</span><span class="p">)</span>
<span class="mi">4</span><span class="nv">XESTACKTRACE</span> <span class="s s-Atom">at</span> <span class="s s-Atom">java</span><span class="o">/</span><span class="s s-Atom">lang</span><span class="o">/</span><span class="nv">Thread</span><span class="p">.</span><span class="nf">run</span><span class="p">(</span><span class="nv">Thread</span><span class="p">.</span><span class="nn">java</span><span class="p">:</span><span class="mi">835</span><span class="p">)</span>
<span class="mi">4</span><span class="nv">XESTACKTRACE</span> <span class="s s-Atom">at</span> <span class="s s-Atom">jdk</span><span class="o">/</span><span class="s s-Atom">internal</span><span class="o">/</span><span class="s s-Atom">misc</span><span class="o">/</span><span class="nv">InnocuousThread</span><span class="p">.</span><span class="nf">run</span><span class="p">(</span><span class="nv">InnocuousThread</span><span class="p">.</span><span class="nn">java</span><span class="p">:</span><span class="mi">122</span><span class="p">)</span>
<span class="mi">3</span><span class="nv">XMTHREADINFO3</span> <span class="nv">No</span> <span class="s s-Atom">native</span> <span class="s s-Atom">callstack</span> <span class="s s-Atom">available</span> <span class="s s-Atom">for</span> <span class="s s-Atom">this</span> <span class="s s-Atom">thread</span>
<span class="nv">NULL</span>
<span class="nv">NULL</span>
<span class="mi">3</span><span class="nv">XMTHREADINFO</span> <span class="s2">&quot;IProfiler&quot;</span> <span class="nv">J9VMThread</span><span class="s s-Atom">:</span><span class="mh">0x0000000000F03D00</span><span class="p">,</span> <span class="s s-Atom">omrthread_t:</span><span class="mh">0x00007FF4F00B06F8</span><span class="p">,</span> <span class="s s-Atom">java</span><span class="o">/</span><span class="s s-Atom">lang</span><span class="o">/</span><span class="nv">Thread</span><span class="s s-Atom">:</span><span class="mh">0x00000000FFE97B60</span><span class="p">,</span> <span class="nn">state</span><span class="p">:</span><span class="nv">R</span><span class="p">,</span> <span class="s s-Atom">prio</span><span class="o">=</span><span class="mi">5</span>
<span class="mi">3</span><span class="nv">XMJAVALTHREAD</span> <span class="p">(</span><span class="s s-Atom">java</span><span class="o">/</span><span class="s s-Atom">lang</span><span class="o">/</span><span class="nv">Thread</span> <span class="s s-Atom">getId:</span><span class="mh">0xC</span><span class="p">,</span> <span class="s s-Atom">isDaemon:true</span><span class="p">)</span>
<span class="mi">3</span><span class="nv">XMTHREADINFO1</span> <span class="p">(</span><span class="s s-Atom">native</span> <span class="s s-Atom">thread</span> <span class="nv">ID</span><span class="s s-Atom">:</span><span class="mh">0x7659</span><span class="p">,</span> <span class="s s-Atom">native</span> <span class="nn">priority</span><span class="p">:</span><span class="mh">0x5</span><span class="p">,</span> <span class="s s-Atom">native</span> <span class="nn">policy</span><span class="p">:</span><span class="nv">UNKNOWN</span><span class="p">,</span> <span class="nn">vmstate</span><span class="p">:</span><span class="nv">CW</span><span class="p">,</span> <span class="s s-Atom">vm</span> <span class="s s-Atom">thread</span> <span class="nn">flags</span><span class="p">:</span><span class="mh">0x00000081</span><span class="p">)</span>
<span class="mi">3</span><span class="nv">XMTHREADINFO2</span> <span class="p">(</span><span class="s s-Atom">native</span> <span class="s s-Atom">stack</span> <span class="s s-Atom">address</span> <span class="s s-Atom">range</span> <span class="nn">from</span><span class="p">:</span><span class="mh">0x00007FF4F8940000</span><span class="p">,</span> <span class="nn">to</span><span class="p">:</span><span class="mh">0x00007FF4F8960000</span><span class="p">,</span> <span class="nn">size</span><span class="p">:</span><span class="mh">0x20000</span><span class="p">)</span>
<span class="mi">3</span><span class="nv">XMCPUTIME</span> <span class="nv">CPU</span> <span class="s s-Atom">usage</span> <span class="nn">total</span><span class="p">:</span> <span class="mf">0.004753103</span> <span class="s s-Atom">secs</span><span class="p">,</span> <span class="s s-Atom">current</span> <span class="s s-Atom">category=</span><span class="s2">&quot;JIT&quot;</span>
<span class="mi">3</span><span class="nv">XMHEAPALLOC</span> <span class="nv">Heap</span> <span class="s s-Atom">bytes</span> <span class="s s-Atom">allocated</span> <span class="s s-Atom">since</span> <span class="s s-Atom">last</span> <span class="nv">GC</span> <span class="s s-Atom">cycle</span><span class="o">=</span><span class="mi">0</span> <span class="p">(</span><span class="mh">0x0</span><span class="p">)</span>
<span class="mi">3</span><span class="nv">XMTHREADINFO3</span> <span class="nv">No</span> <span class="nv">Java</span> <span class="s s-Atom">callstack</span> <span class="s s-Atom">associated</span> <span class="s s-Atom">with</span> <span class="s s-Atom">this</span> <span class="s s-Atom">thread</span>
<span class="mi">3</span><span class="nv">XMTHREADINFO3</span> <span class="nv">No</span> <span class="s s-Atom">native</span> <span class="s s-Atom">callstack</span> <span class="s s-Atom">available</span> <span class="s s-Atom">for</span> <span class="s s-Atom">this</span> <span class="s s-Atom">thread</span>
<span class="nv">NULL</span>
<span class="p">...</span>
<span class="mi">1</span><span class="nv">XMWLKTHDERR</span> <span class="nv">The</span> <span class="s s-Atom">following</span> <span class="s s-Atom">was</span> <span class="s s-Atom">reported</span> <span class="s s-Atom">while</span> <span class="s s-Atom">collecting</span> <span class="s s-Atom">native</span> <span class="nn">stacks</span><span class="p">:</span>
<span class="mi">2</span><span class="nv">XMWLKTHDERR</span> <span class="s s-Atom">unable</span> <span class="s s-Atom">to</span> <span class="s s-Atom">count</span> <span class="nf">threads</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="o">-</span><span class="mi">2</span><span class="p">)</span>
<span class="nv">NULL</span>
<span class="mi">1</span><span class="nv">XMTHDSUMMARY</span> <span class="nv">Threads</span> <span class="nv">CPU</span> <span class="nv">Usage</span> <span class="nv">Summary</span>
<span class="nv">NULL</span> <span class="s s-Atom">=========================</span>
<span class="nv">NULL</span>
<span class="mi">1</span><span class="nv">XMTHDCATINFO</span> <span class="nv">Warning</span><span class="s s-Atom">:</span> <span class="s s-Atom">to</span> <span class="s s-Atom">get</span> <span class="s s-Atom">more</span> <span class="s s-Atom">accurate</span> <span class="nv">CPU</span> <span class="s s-Atom">times</span> <span class="s s-Atom">for</span> <span class="s s-Atom">the</span> <span class="nv">GC</span><span class="p">,</span> <span class="s s-Atom">the</span> <span class="s s-Atom">option</span> <span class="o">-</span><span class="nv">XX</span><span class="p">:-</span><span class="nv">ReduceCPUMonitorOverhead</span> <span class="s s-Atom">can</span> <span class="s s-Atom">be</span> <span class="s s-Atom">used</span><span class="p">.</span> <span class="nv">See</span> <span class="s s-Atom">the</span> <span class="s s-Atom">user</span> <span class="s s-Atom">guide</span> <span class="s s-Atom">for</span> <span class="s s-Atom">more</span> <span class="s s-Atom">information</span><span class="p">.</span>
<span class="nv">NULL</span>
<span class="mi">1</span><span class="nv">XMTHDCATEGORY</span> <span class="nv">All</span> <span class="nv">JVM</span> <span class="s s-Atom">attached</span> <span class="nn">threads</span><span class="p">:</span> <span class="mf">0.280083000</span> <span class="s s-Atom">secs</span>
<span class="mi">1</span><span class="nv">XMTHDCATEGORY</span> <span class="p">|</span>
<span class="mi">2</span><span class="nv">XMTHDCATEGORY</span> <span class="s s-Atom">+--</span><span class="nv">System</span><span class="o">-</span><span class="nv">JVM</span><span class="s s-Atom">:</span> <span class="mf">0.270814000</span> <span class="s s-Atom">secs</span>
<span class="mi">2</span><span class="nv">XMTHDCATEGORY</span> <span class="p">|</span> <span class="p">|</span>
<span class="mi">3</span><span class="nv">XMTHDCATEGORY</span> <span class="p">|</span> <span class="s s-Atom">+--</span><span class="nv">GC</span><span class="s s-Atom">:</span> <span class="mf">0.000599000</span> <span class="s s-Atom">secs</span>
<span class="mi">2</span><span class="nv">XMTHDCATEGORY</span> <span class="p">|</span> <span class="p">|</span>
<span class="mi">3</span><span class="nv">XMTHDCATEGORY</span> <span class="p">|</span> <span class="s s-Atom">+--</span><span class="nv">JIT</span><span class="s s-Atom">:</span> <span class="mf">0.071904000</span> <span class="s s-Atom">secs</span>
<span class="mi">1</span><span class="nv">XMTHDCATEGORY</span> <span class="p">|</span>
<span class="mi">2</span><span class="nv">XMTHDCATEGORY</span> <span class="s s-Atom">+--</span><span class="nv">Application</span><span class="s s-Atom">:</span> <span class="mf">0.009269000</span> <span class="s s-Atom">secs</span>
<span class="nv">NULL</span>
</pre></div>
<h3 id="hooks">HOOKS</h3>
<p>This section shows internal VM event callbacks, which are used for diagnosing performance problems in the VM. Multiple hook interfaces are listed, which include their individual hook events. The following example shows data for the <code>J9VMHookInterface</code>, including the call site location (source file:line number), start time, and duration of the last callback and the longest callback.</p>
<div class="codehilite"><pre><span></span>NULL ------------------------------------------------------------------------
0SECTION HOOK subcomponent dump routine
NULL ==============================
1HKINTERFACE MM_OMRHookInterface
NULL ------------------------------------------------------------------------
1HKINTERFACE MM_PrivateHookInterface
NULL ------------------------------------------------------------------------
1HKINTERFACE MM_HookInterface
NULL ------------------------------------------------------------------------
1HKINTERFACE J9VMHookInterface
NULL ------------------------------------------------------------------------
2HKEVENTID 1
3HKCALLCOUNT 18
3HKLAST Last Callback
4HKCALLSITE trcengine.c:392
4HKSTARTTIME Start Time: 2018-08-30T21:55:47.601
4HKDURATION DurationMs: 0
3HKLONGST Longest Callback
4HKCALLSITE trcengine.c:392
4HKSTARTTIME Start Time: 2018-08-30T21:55:47.460
4HKDURATION DurationMs: 1
NULL
...
1HKINTERFACE J9VMZipCachePoolHookInterface
NULL ------------------------------------------------------------------------
1HKINTERFACE J9JITHookInterface
NULL ------------------------------------------------------------------------
2HKEVENTID 3
3HKCALLCOUNT 65
3HKLAST Last Callback
4HKCALLSITE ../common/mgmtinit.c:191
4HKSTARTTIME Start Time: 2018-08-30T21:55:47.601
4HKDURATION DurationMs: 0
3HKLONGST Longest Callback
4HKCALLSITE ../common/mgmtinit.c:191
4HKSTARTTIME Start Time: 2018-08-30T21:55:47.486
4HKDURATION DurationMs: 0
...
NULL
</pre></div>
<h3 id="shared-classes">SHARED CLASSES</h3>
<p>If the shared classes cache is enabled at run time, the information provided in a Java dump file describes settings that were used when creating the cache, together with summary information about the size and content of the cache.</p>
<p>In the following example, the shared classes cache was created with a Class Debug Area (<code>-Xnolinenumbers=false</code>). Byte code instrumentation (BCI) is enabled, which is the default, and VMs sharing the cache are allowed to store classpaths, which is also the default.</p>
<p>The <code>Cache Summary</code> shows a cache size (<code>2SCLTEXTCSZ</code>) of 16776608 bytes, with a soft maximum size (<code>2SCLTEXTSMB</code>) also of 16776608 bytes, which leaves 12691668 bytes of free space (<code>2SCLTEXTFRB</code>). The size of the Class Debug Area (<code>2SCLTEXTDAS</code>) is 1331200 bytes and only 11% of this space is used.</p>
<p>In the <code>Cache Memory Status</code> subsection, the line <code>2SCLTEXTCMDT</code> indicates the name and location of the shared cache and <code>cr</code> indicates that the cache is a 64-bit compressed references cache.</p>
<div class="codehilite"><pre><span></span>NULL ------------------------------------------------------------------------
0SECTION SHARED CLASSES subcomponent dump routine
NULL ========================================
NULL
1SCLTEXTCRTW Cache Created With
NULL ------------------
NULL
2SCLTEXTXNL -Xnolinenumbers = false
2SCLTEXTBCI BCI Enabled = true
2SCLTEXTBCI Restrict Classpaths = false
NULL
1SCLTEXTCSUM Cache Summary
NULL ------------------
NULL
2SCLTEXTNLC No line number content = false
2SCLTEXTLNC Line number content = true
NULL
2SCLTEXTRCS ROMClass start address = 0x00007F423061C000
2SCLTEXTRCE ROMClass end address = 0x00007F42307B9A28
2SCLTEXTMSA Metadata start address = 0x00007F42313D42FC
2SCLTEXTCEA Cache end address = 0x00007F4231600000
2SCLTEXTRTF Runtime flags = 0x00102001ECA6028B
2SCLTEXTCGN Cache generation = 35
NULL
2SCLTEXTCSZ Cache size = 16776608
2SCLTEXTSMB Softmx bytes = 16776608
2SCLTEXTFRB Free bytes = 12691668
2SCLTEXTRCB ROMClass bytes = 1694248
2SCLTEXTAOB AOT code bytes = 0
2SCLTEXTADB AOT data bytes = 0
2SCLTEXTAHB AOT class hierarchy bytes = 32
2SCLTEXTATB AOT thunk bytes = 0
2SCLTEXTARB Reserved space for AOT bytes = -1
2SCLTEXTAMB Maximum space for AOT bytes = -1
2SCLTEXTJHB JIT hint bytes = 308
2SCLTEXTJPB JIT profile bytes = 2296
2SCLTEXTJRB Reserved space for JIT data bytes = -1
2SCLTEXTJMB Maximum space for JIT data bytes = -1
2SCLTEXTNOB Java Object bytes = 0
2SCLTEXTZCB Zip cache bytes = 919328
2SCLTEXTRWB ReadWrite bytes = 114080
2SCLTEXTJCB JCL data bytes = 0
2SCLTEXTBDA Byte data bytes = 0
2SCLTEXTMDA Metadata bytes = 23448
2SCLTEXTDAS Class debug area size = 1331200
2SCLTEXTDAU Class debug area % used = 11%
2SCLTEXTDAN Class LineNumberTable bytes = 156240
2SCLTEXTDAV Class LocalVariableTable bytes = 0
NULL
2SCLTEXTNRC Number ROMClasses = 595
2SCLTEXTNAM Number AOT Methods = 0
2SCLTEXTNAD Number AOT Data Entries = 0
2SCLTEXTNAH Number AOT Class Hierarchy = 1
2SCLTEXTNAT Number AOT Thunks = 0
2SCLTEXTNJH Number JIT Hints = 14
2SCLTEXTNJP Number JIT Profiles = 20
2SCLTEXTNCP Number Classpaths = 1
2SCLTEXTNUR Number URLs = 0
2SCLTEXTNTK Number Tokens = 0
2SCLTEXTNOJ Number Java Objects = 0
2SCLTEXTNZC Number Zip Caches = 5
2SCLTEXTNJC Number JCL Entries = 0
2SCLTEXTNST Number Stale classes = 0
2SCLTEXTPST Percent Stale classes = 0%
NULL
2SCLTEXTCPF Cache is 24% full
NULL
1SCLTEXTCMST Cache Memory Status
NULL ------------------
1SCLTEXTCNTD Cache Name Feature Memory type Cache path
NULL
2SCLTEXTCMDT sharedcc_doc-javacore CR Memory mapped file /tmp/javasharedresources/C290M4F1A64P_sharedcc_doc-javacore_G35
NULL
1SCLTEXTCMST Cache Lock Status
NULL ------------------
1SCLTEXTCNTD Lock Name Lock type TID owning lock
NULL
2SCLTEXTCWRL Cache write lock File lock Unowned
2SCLTEXTCRWL Cache read/write lock File lock Unowned
NULL
</pre></div>
<h3 id="classes">CLASSES</h3>
<p>The classes section shows information about class loaders. The first part is a summary that records each available class loader (<code>2CLTEXTCLLOADER</code>) followed by the number of libraries and classes that it loaded. This information is followed by a more detailed list of libraries (<code>1CLTEXTCLLIB</code>) and classes (<code>1CLTEXTCLLO</code>) that are loaded.</p>
<p>In the example you can see that the <code>java/lang/InternalAnonymousClassLoader</code> loaded 2 classes, <code>jdk/internal/loader/BuiltinClassLoader$$Lambda$2/00000000F03876A0(0x0000000001030F00)</code> and <code>jdk/internal/loader/BuiltinClassLoader$$Lambda$1/00000000F00D2460(0x0000000001018A00)</code>.</p>
<div class="codehilite"><pre><span></span>NULL ------------------------------------------------------------------------
0SECTION CLASSES subcomponent dump routine
NULL =================================
1CLTEXTCLLOS Classloader summaries
1CLTEXTCLLSS 12345678: 1=primordial,2=extension,3=shareable,4=middleware,5=system,6=trusted,7=application,8=delegating
2CLTEXTCLLOADER p---st-- Loader *System*(0x00000000FFE1D258)
3CLNMBRLOADEDLIB Number of loaded libraries 5
3CLNMBRLOADEDCL Number of loaded classes 638
2CLTEXTCLLOADER -x--st-- Loader jdk/internal/loader/ClassLoaders$PlatformClassLoader(0x00000000FFE1D4F0), Parent *none*(0x0000000000000000)
3CLNMBRLOADEDLIB Number of loaded libraries 0
3CLNMBRLOADEDCL Number of loaded classes 0
2CLTEXTCLLOADER ----st-- Loader java/lang/InternalAnonymousClassLoader(0x00000000FFE1DFD0), Parent *none*(0x0000000000000000)
3CLNMBRLOADEDLIB Number of loaded libraries 0
3CLNMBRLOADEDCL Number of loaded classes 2
2CLTEXTCLLOADER -----ta- Loader jdk/internal/loader/ClassLoaders$AppClassLoader(0x00000000FFE1DAD0), Parent jdk/internal/loader/ClassLoaders$PlatformClassLoader(0x00000000FFE1D4F0)
3CLNMBRLOADEDLIB Number of loaded libraries 0
3CLNMBRLOADEDCL Number of loaded classes 0
1CLTEXTCLLIB ClassLoader loaded libraries
2CLTEXTCLLIB Loader *System*(0x00000000FFE1D258)
3CLTEXTLIB /home/me/openj9-openjdk-jdk9/build/linux-x86_64-normal-server-release/images/jdk/lib/compressedrefs/jclse9_29
3CLTEXTLIB /home/me/openj9-openjdk-jdk9/build/linux-x86_64-normal-server-release/images/jdk/lib/java
3CLTEXTLIB /home/me/openj9-openjdk-jdk9/build/linux-x86_64-normal-server-release/images/jdk/lib/compressedrefs/j9jit29
3CLTEXTLIB /home/me/openj9-openjdk-jdk9/build/linux-x86_64-normal-server-release/images/jdk/lib/zip
3CLTEXTLIB /home/me/openj9-openjdk-jdk9/build/linux-x86_64-normal-server-release/images/jdk/lib/nio
1CLTEXTCLLOD ClassLoader loaded classes
2CLTEXTCLLOAD Loader *System*(0x00000000FFE1D258)
3CLTEXTCLASS [Ljava/lang/Thread$State;(0x0000000001056400)
...
2CLTEXTCLLOAD Loader jdk/internal/loader/ClassLoaders$PlatformClassLoader(0x00000000FFE1D4F0)
2CLTEXTCLLOAD Loader java/lang/InternalAnonymousClassLoader(0x00000000FFE1DFD0)
3CLTEXTCLASS jdk/internal/loader/BuiltinClassLoader$$Lambda$2/00000000F03876A0(0x0000000001030F00)
3CLTEXTCLASS jdk/internal/loader/BuiltinClassLoader$$Lambda$1/00000000F00D2460(0x0000000001018A00)
2CLTEXTCLLOAD Loader jdk/internal/loader/ClassLoaders$AppClassLoader(0x00000000FFE1DAD0)
</pre></div>
<h2 id="scenarios">Scenarios</h2>
<h3 id="general-protection-fault">General Protection Fault</h3>
<p>In this scenario, a Java application has crashed due to a General Protection Fault (GPF), automatically generating a Java dump file.</p>
<p>The first section of the file (TITLE) tells you that the GPF triggered the Java dump.</p>
<div class="codehilite"><pre><span></span>0SECTION TITLE subcomponent dump routine
NULL ===============================
1TICHARSET UTF-8
1TISIGINFO Dump Event &quot;gpf&quot; (00002000) received
1TIDATETIME Date: 2018/09/24 at 15:18:03:115
1TINANOTIME System nanotime: 4498949283020796
1TIFILENAME Javacore filename: /home/test/JNICrasher/javacore.20180924.151801.29399.0002.txt
1TIREQFLAGS Request Flags: 0x81 (exclusive+preempt)
1TIPREPSTATE Prep State: 0x100 (trace_disabled)
1TIPREPINFO Exclusive VM access not taken: data may not be consistent across javacore sections
</pre></div>
<p>To troubleshoot this problem, you need to know which thread caused the GPF to occur. The thread that was running at the time of the crash is reported as the <strong>current thread</strong>
in the THREADS section of the Java dump. Here is an extract from the THREADS section:</p>
<div class="codehilite"><pre><span></span>NULL ------------------------------------------------------------------------
0SECTION THREADS subcomponent dump routine
NULL =================================
NULL
1XMPOOLINFO JVM Thread pool info:
2XMPOOLTOTAL Current total number of pooled threads: 16
2XMPOOLLIVE Current total number of live threads: 15
2XMPOOLDAEMON Current total number of live daemon threads: 14
NULL
1XMCURTHDINFO Current thread
3XMTHREADINFO &quot;main&quot; J9VMThread:0xB6B60E00, omrthread_t:0xB6B049D8, java/lang/Thread:0xB55444D0, state:R, prio=5
3XMJAVALTHREAD (java/lang/Thread getId:0x1, isDaemon:false)
3XMTHREADINFO1 (native thread ID:0x72D8, native priority:0x5, native policy:UNKNOWN, vmstate:R, vm thread flags:0x00000000)
3XMTHREADINFO2 (native stack address range from:0xB6CE3000, to:0xB74E4000, size:0x801000)
3XMCPUTIME CPU usage total: 0.319865924 secs, current category=&quot;Application&quot;
3XMHEAPALLOC Heap bytes allocated since last GC cycle=778008 (0xBDF18)
3XMTHREADINFO3 Java callstack:
4XESTACKTRACE at JNICrasher.doSomethingThatCrashes(Native Method)
4XESTACKTRACE at JNICrasher.main(JNICrasher.java:7)
3XMTHREADINFO3 Native callstack:
4XENATIVESTACK (0xB6C6F663 [libj9prt29.so+0x3b663])
4XENATIVESTACK (0xB6C52F6E [libj9prt29.so+0x1ef6e])
4XENATIVESTACK (0xB6C6F1CE [libj9prt29.so+0x3b1ce])
4XENATIVESTACK (0xB6C6F2C6 [libj9prt29.so+0x3b2c6])
4XENATIVESTACK (0xB6C6ED93 [libj9prt29.so+0x3ad93])
4XENATIVESTACK (0xB6C52F6E [libj9prt29.so+0x1ef6e])
4XENATIVESTACK (0xB6C6ED07 [libj9prt29.so+0x3ad07])
4XENATIVESTACK (0xB6C6AA3D [libj9prt29.so+0x36a3d])
4XENATIVESTACK (0xB6C6C3A4 [libj9prt29.so+0x383a4])
4XENATIVESTACK (0xB667FA19 [libj9dmp29.so+0xfa19])
4XENATIVESTACK (0xB6C52F6E [libj9prt29.so+0x1ef6e])
4XENATIVESTACK (0xB66878CF [libj9dmp29.so+0x178cf])
4XENATIVESTACK (0xB6688083 [libj9dmp29.so+0x18083])
4XENATIVESTACK (0xB6C52F6E [libj9prt29.so+0x1ef6e])
4XENATIVESTACK (0xB6680C0D [libj9dmp29.so+0x10c0d])
4XENATIVESTACK (0xB667F9D7 [libj9dmp29.so+0xf9d7])
4XENATIVESTACK (0xB6C52F6E [libj9prt29.so+0x1ef6e])
4XENATIVESTACK (0xB668B02F [libj9dmp29.so+0x1b02f])
4XENATIVESTACK (0xB668B4D3 [libj9dmp29.so+0x1b4d3])
4XENATIVESTACK (0xB66740F1 [libj9dmp29.so+0x40f1])
4XENATIVESTACK (0xB66726FA [libj9dmp29.so+0x26fa])
4XENATIVESTACK (0xB6C52F6E [libj9prt29.so+0x1ef6e])
4XENATIVESTACK (0xB66726A9 [libj9dmp29.so+0x26a9])
4XENATIVESTACK (0xB6676AE4 [libj9dmp29.so+0x6ae4])
4XENATIVESTACK (0xB668D75A [libj9dmp29.so+0x1d75a])
4XENATIVESTACK (0xB6A28DD4 [libj9vm29.so+0x81dd4])
4XENATIVESTACK (0xB6C52F6E [libj9prt29.so+0x1ef6e])
4XENATIVESTACK (0xB6A289EE [libj9vm29.so+0x819ee])
4XENATIVESTACK (0xB6A29A40 [libj9vm29.so+0x82a40])
4XENATIVESTACK (0xB6C52B6A [libj9prt29.so+0x1eb6a])
4XENATIVESTACK __kernel_rt_sigreturn+0x0 (0xB7747410)
4XENATIVESTACK (0xB75330B6 [libffi29.so+0x50b6])
4XENATIVESTACK ffi_raw_call+0xad (0xB7531C53 [libffi29.so+0x3c53])
4XENATIVESTACK (0xB69BE4AB [libj9vm29.so+0x174ab])
4XENATIVESTACK (0xB6A665BC [libj9vm29.so+0xbf5bc])
4XENATIVESTACK (0xB6A15552 [libj9vm29.so+0x6e552])
4XENATIVESTACK (0xB6A30894 [libj9vm29.so+0x89894])
4XENATIVESTACK (0xB6A6F169 [libj9vm29.so+0xc8169])
4XENATIVESTACK (0xB6C52F6E [libj9prt29.so+0x1ef6e])
4XENATIVESTACK (0xB6A6F1FA [libj9vm29.so+0xc81fa])
4XENATIVESTACK (0xB6A30994 [libj9vm29.so+0x89994])
4XENATIVESTACK (0xB6A2CE4C [libj9vm29.so+0x85e4c])
4XENATIVESTACK (0xB770487D [libjli.so+0x787d])
4XENATIVESTACK (0xB7719F72 [libpthread.so.0+0x6f72])
4XENATIVESTACK clone+0x5e (0xB763543E [libc.so.6+0xee43e])
</pre></div>
<p>The extract tells you that the current thread was <code>java/lang/Thread</code>, and information is provided about the Java callstack and native callstack
(<code>3XMTHREADINFO3</code>) at the point at which the crash occurred. To simulate a crash caused by a bug in an application, this example
calls a JNI method whose native implementation causes a crash. The Java callstack shows the call to the JNI native method (<code>JNIcrasher</code>), and the
native callstack shows the point of failure. In this example, the native call stack does not include any function names to help you isolate the error
in the native code. You can get this information from a system dump, which is usually produced alongside the Java dump. Open the
system dump with the <a href="../tool_jdmpview/">Dump viewer</a> and use the <code>info thread</code> command to print the Java and native stack for the current thread.</p>
<h3 id="java-outofmemoryerror">Java OutOfMemoryError</h3>
<p>In this scenario, the Java heap runs out of memory, causing an <code>OutOfMemoryError</code>, which automatically generates a Java dump file.</p>
<p>The first section of the file (TITLE) tells you that a <code>systhrow</code> event triggered the Java dump as a result of an OOM (<code>java/lang/OutOfMemoryError</code>) for
Java heap space.</p>
<div class="codehilite"><pre><span></span>0SECTION TITLE subcomponent dump routine
NULL ===============================
1TICHARSET UTF-8
1TISIGINFO Dump Event &quot;systhrow&quot; (00040000) Detail &quot;java/lang/OutOfMemoryError&quot; &quot;Java heap space&quot; received
1TIDATETIME Date: 2018/09/14 at 15:29:42:709
1TINANOTIME System nanotime: 3635648876608448
1TIFILENAME Javacore filename: /home/cheesemp/test/javacore.20180914.152929.18885.0003.txt
1TIREQFLAGS Request Flags: 0x81 (exclusive+preempt)
1TIPREPSTATE Prep State: 0x104 (exclusive_vm_access+trace_disabled)
</pre></div>
<p>The MEMINFO section records how much memory is allocated to the Java heap (<code>1STHEAPTYPE Object Memory</code>), how much is in use, and how much is free. Solving
your problem might be as simple as setting a larger heap size when you start your application.</p>
<p>If you don't know what size the Java heap was set to, you might find that information in the ENVINFO section, which records the command line options that
were used when the application started. Look or search for the <code>1CIUSERARGS UserArgs:</code> string and review the entries recorded for all lines that
start <code>2CIUSERARG</code>. The Java heap size is set by the <code>-Xmx</code> option. If the size has not been set on the command line by <code>-Xmx</code>, the default value applies, which
you can find in <a href="../openj9_defaults/">Default Settings</a>.</p>
<p>In this scenario the solution to the problem is not an adjustment to the Java heap size. Here is the MEMINFO section:</p>
<div class="codehilite"><pre><span></span>0SECTION MEMINFO subcomponent dump routine
NULL =================================
NULL
1STHEAPTYPE Object Memory
NULL id start end size space/region
1STHEAPSPACE 0xB6B49D20 -- -- -- Generational
1STHEAPREGION 0xB6B4A078 0x95750000 0xB5470000 0x1FD20000 Generational/Tenured Region
1STHEAPREGION 0xB6B49F10 0xB5470000 0xB54C0000 0x00050000 Generational/Nursery Region
1STHEAPREGION 0xB6B49DA8 0xB54C0000 0xB5750000 0x00290000 Generational/Nursery Region
NULL
1STHEAPTOTAL Total memory: 536870912 (0x20000000)
1STHEAPINUSE Total memory in use: 302603160 (0x12095B98)
1STHEAPFREE Total memory free: 234267752 (0x0DF6A468)
</pre></div>
<p>The output shows that only 56% of the Java heap is in use, so this suggests that the application is trying to do something sub-optimal. To
investigate further you need to work out which thread was the current thread when the OOM occurred to see what it was trying to do. As in the previous scenario, you can find the
<strong>current thread</strong> in the THREADS section. Here is an extract from the output:</p>
<div class="codehilite"><pre><span></span><span class="mi">0</span><span class="n">SECTION</span> <span class="n">THREADS</span> <span class="n">subcomponent</span> <span class="n">dump</span> <span class="n">routine</span>
<span class="nb">NULL</span> <span class="o">=================================</span>
<span class="nb">NULL</span>
<span class="mi">1</span><span class="n">XMPOOLINFO</span> <span class="n">JVM</span> <span class="n">Thread</span> <span class="n">pool</span> <span class="nl">info</span><span class="p">:</span>
<span class="mi">2</span><span class="n">XMPOOLTOTAL</span> <span class="n">Current</span> <span class="n">total</span> <span class="n">number</span> <span class="n">of</span> <span class="n">pooled</span> <span class="nl">threads</span><span class="p">:</span> <span class="mi">16</span>
<span class="mi">2</span><span class="n">XMPOOLLIVE</span> <span class="n">Current</span> <span class="n">total</span> <span class="n">number</span> <span class="n">of</span> <span class="n">live</span> <span class="nl">threads</span><span class="p">:</span> <span class="mi">16</span>
<span class="mi">2</span><span class="n">XMPOOLDAEMON</span> <span class="n">Current</span> <span class="n">total</span> <span class="n">number</span> <span class="n">of</span> <span class="n">live</span> <span class="n">daemon</span> <span class="nl">threads</span><span class="p">:</span> <span class="mi">15</span>
<span class="nb">NULL</span>
<span class="mi">1</span><span class="n">XMCURTHDINFO</span> <span class="n">Current</span> <span class="kr">thread</span>
<span class="mi">3</span><span class="n">XMTHREADINFO</span> <span class="s">&quot;main&quot;</span> <span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0xB6B60C00</span><span class="p">,</span> <span class="nl">omrthread_t</span><span class="p">:</span><span class="mh">0xB6B049D8</span><span class="p">,</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="nl">Thread</span><span class="p">:</span><span class="mh">0x95764520</span><span class="p">,</span> <span class="nl">state</span><span class="p">:</span><span class="n">R</span><span class="p">,</span> <span class="n">prio</span><span class="o">=</span><span class="mi">5</span>
<span class="mi">3</span><span class="n">XMJAVALTHREAD</span> <span class="p">(</span><span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">Thread</span> <span class="nl">getId</span><span class="p">:</span><span class="mh">0x1</span><span class="p">,</span> <span class="nl">isDaemon</span><span class="p">:</span><span class="nb">false</span><span class="p">)</span>
<span class="mi">3</span><span class="n">XMTHREADINFO1</span> <span class="p">(</span><span class="n">native</span> <span class="kr">thread</span> <span class="nl">ID</span><span class="p">:</span><span class="mh">0x49C6</span><span class="p">,</span> <span class="n">native</span> <span class="nl">priority</span><span class="p">:</span><span class="mh">0x5</span><span class="p">,</span> <span class="n">native</span> <span class="nl">policy</span><span class="p">:</span><span class="n">UNKNOWN</span><span class="p">,</span> <span class="nl">vmstate</span><span class="p">:</span><span class="n">R</span><span class="p">,</span> <span class="n">vm</span> <span class="kr">thread</span> <span class="nl">flags</span><span class="p">:</span><span class="mh">0x00001020</span><span class="p">)</span>
<span class="mi">3</span><span class="n">XMTHREADINFO2</span> <span class="p">(</span><span class="n">native</span> <span class="n">stack</span> <span class="n">address</span> <span class="n">range</span> <span class="nl">from</span><span class="p">:</span><span class="mh">0xB6CB5000</span><span class="p">,</span> <span class="nl">to</span><span class="p">:</span><span class="mh">0xB74B6000</span><span class="p">,</span> <span class="nl">size</span><span class="p">:</span><span class="mh">0x801000</span><span class="p">)</span>
<span class="mi">3</span><span class="n">XMCPUTIME</span> <span class="n">CPU</span> <span class="n">usage</span> <span class="nl">total</span><span class="p">:</span> <span class="mf">8.537823831</span> <span class="n">secs</span><span class="p">,</span> <span class="n">current</span> <span class="n">category</span><span class="o">=</span><span class="s">&quot;Application&quot;</span>
<span class="mi">3</span><span class="n">XMHEAPALLOC</span> <span class="n">Heap</span> <span class="n">bytes</span> <span class="n">allocated</span> <span class="n">since</span> <span class="n">last</span> <span class="n">GC</span> <span class="n">cycle</span><span class="o">=</span><span class="mi">0</span> <span class="p">(</span><span class="mh">0x0</span><span class="p">)</span>
<span class="mi">3</span><span class="n">XMTHREADINFO3</span> <span class="n">Java</span> <span class="nl">callstack</span><span class="p">:</span>
<span class="mi">4</span><span class="n">XESTACKTRACE</span> <span class="n">at</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">StringBuffer</span><span class="p">.</span><span class="n">ensureCapacityImpl</span><span class="p">(</span><span class="n">StringBuffer</span><span class="p">.</span><span class="nl">java</span><span class="p">:</span><span class="mi">696</span><span class="p">)</span>
<span class="mi">4</span><span class="n">XESTACKTRACE</span> <span class="n">at</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">StringBuffer</span><span class="p">.</span><span class="n">append</span><span class="p">(</span><span class="n">StringBuffer</span><span class="p">.</span><span class="nl">java</span><span class="p">:</span><span class="mi">486</span><span class="p">(</span><span class="n">Compiled</span> <span class="n">Code</span><span class="p">))</span>
<span class="mi">5</span><span class="n">XESTACKTRACE</span> <span class="p">(</span><span class="n">entered</span> <span class="nl">lock</span><span class="p">:</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">StringBuffer</span><span class="mh">@0x957645B8</span><span class="p">,</span> <span class="n">entry</span> <span class="nl">count</span><span class="p">:</span> <span class="mi">1</span><span class="p">)</span>
<span class="mi">4</span><span class="n">XESTACKTRACE</span> <span class="n">at</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">StringBuffer</span><span class="p">.</span><span class="n">append</span><span class="p">(</span><span class="n">StringBuffer</span><span class="p">.</span><span class="nl">java</span><span class="p">:</span><span class="mi">428</span><span class="p">(</span><span class="n">Compiled</span> <span class="n">Code</span><span class="p">))</span>
<span class="mi">4</span><span class="n">XESTACKTRACE</span> <span class="n">at</span> <span class="n">HeapBreaker</span><span class="p">.</span><span class="n">main</span><span class="p">(</span><span class="n">HeapBreaker</span><span class="p">.</span><span class="nl">java</span><span class="p">:</span><span class="mi">34</span><span class="p">(</span><span class="n">Compiled</span> <span class="n">Code</span><span class="p">))</span>
<span class="mi">3</span><span class="n">XMTHREADINFO3</span> <span class="n">Native</span> <span class="nl">callstack</span><span class="p">:</span>
<span class="mi">4</span><span class="n">XENATIVESTACK</span> <span class="p">(</span><span class="mh">0xB6C535B3</span> <span class="p">[</span><span class="n">libj9prt29</span><span class="p">.</span><span class="n">so</span><span class="o">+</span><span class="mh">0x3b5b3</span><span class="p">])</span>
<span class="mi">4</span><span class="n">XENATIVESTACK</span> <span class="p">(</span><span class="mh">0xB6C36F3E</span> <span class="p">[</span><span class="n">libj9prt29</span><span class="p">.</span><span class="n">so</span><span class="o">+</span><span class="mh">0x1ef3e</span><span class="p">])</span>
<span class="mi">4</span><span class="n">XENATIVESTACK</span> <span class="p">(</span><span class="mh">0xB6C5311E</span> <span class="p">[</span><span class="n">libj9prt29</span><span class="p">.</span><span class="n">so</span><span class="o">+</span><span class="mh">0x3b11e</span><span class="p">])</span>
<span class="mi">4</span><span class="n">XENATIVESTACK</span> <span class="p">(</span><span class="mh">0xB6C53216</span> <span class="p">[</span><span class="n">libj9prt29</span><span class="p">.</span><span class="n">so</span><span class="o">+</span><span class="mh">0x3b216</span><span class="p">])</span>
<span class="mi">4</span><span class="n">XENATIVESTACK</span> <span class="p">(</span><span class="mh">0xB6C52CE3</span> <span class="p">[</span><span class="n">libj9prt29</span><span class="p">.</span><span class="n">so</span><span class="o">+</span><span class="mh">0x3ace3</span><span class="p">])</span>
<span class="mi">4</span><span class="n">XENATIVESTACK</span> <span class="p">(</span><span class="mh">0xB6C36F3E</span> <span class="p">[</span><span class="n">libj9prt29</span><span class="p">.</span><span class="n">so</span><span class="o">+</span><span class="mh">0x1ef3e</span><span class="p">])</span>
<span class="mi">4</span><span class="n">XENATIVESTACK</span> <span class="p">(</span><span class="mh">0xB6C52C57</span> <span class="p">[</span><span class="n">libj9prt29</span><span class="p">.</span><span class="n">so</span><span class="o">+</span><span class="mh">0x3ac57</span><span class="p">])</span>
<span class="mi">4</span><span class="n">XENATIVESTACK</span> <span class="p">(</span><span class="mh">0xB6C4E9CD</span> <span class="p">[</span><span class="n">libj9prt29</span><span class="p">.</span><span class="n">so</span><span class="o">+</span><span class="mh">0x369cd</span><span class="p">])</span>
<span class="mi">4</span><span class="n">XENATIVESTACK</span> <span class="p">(</span><span class="mh">0xB6C502FA</span> <span class="p">[</span><span class="n">libj9prt29</span><span class="p">.</span><span class="n">so</span><span class="o">+</span><span class="mh">0x382fa</span><span class="p">])</span>
</pre></div>
<p>To simulate a Java <code>OutOfMemoryError</code>, this example application repeatedly appends characters to a <code>StringBuffer</code> object in an infinite loop. The Java callstack shows the <code>HeapBreaker.main</code> method appending characters (<code>java/lang/StringGuffer.append</code>) until the method <code>java/lang/StringBuffer.ensureCapacityImpl()</code> throws the <code>OutOfMemoryError</code>.</p>
<p>StringBuffer objects are wrappers for character arrays (<code>char[]</code>) and when the capacity of the underlying array is reached, the contents are automatically copied into a new, larger array. The new array is created in the <code>StringBuffer.ensureCapacity()</code> method, which more or less doubles the size of the old array. In this scenario, the array takes up all the remaining space in the Java heap.</p>
<p>The MEMINFO section of the Java dump file can also tell you when an unexpectedly large allocation request causes an OOM. Look for the GC History (<code>1STGCHTYPE</code>) section, which details allocation requests that trigger GC activity. In the sample output you can see that a large allocation request (<code>requestedbytes=603979784</code>) triggered a global GC. When the GC could not free up sufficient space in the heap to satisfy the request, the allocation failure generated the OOM.</p>
<div class="codehilite"><pre><span></span>1STGCHTYPE GC History
3STHSTTYPE 14:29:29:580239000 GMT j9mm.101 - J9AllocateIndexableObject() returning NULL! 0 bytes requested for object of class B6BBC300 from memory space &#39;Generational&#39; id=B6B49D20
3STHSTTYPE 14:29:29:579916000 GMT j9mm.134 - Allocation failure end: newspace=2686912/3014656 oldspace=231597224/533856256 loa=5338112/5338112
3STHSTTYPE 14:29:29:579905000 GMT j9mm.470 - Allocation failure cycle end: newspace=2686912/3014656 oldspace=231597224/533856256 loa=5338112/5338112
3STHSTTYPE 14:29:29:579859000 GMT j9mm.475 - GlobalGC end: workstackoverflow=0 overflowcount=0 memory=234284136/536870912
3STHSTTYPE 14:29:29:579807000 GMT j9mm.90 - GlobalGC collect complete
3STHSTTYPE 14:29:29:579776000 GMT j9mm.137 - Compact end: bytesmoved=301989896
3STHSTTYPE 14:29:29:313899000 GMT j9mm.136 - Compact start: reason=compact to meet allocation
3STHSTTYPE 14:29:29:313555000 GMT j9mm.57 - Sweep end
3STHSTTYPE 14:29:29:310772000 GMT j9mm.56 - Sweep start
3STHSTTYPE 14:29:29:310765000 GMT j9mm.94 - Class unloading end: classloadersunloaded=0 classesunloaded=0
3STHSTTYPE 14:29:29:310753000 GMT j9mm.60 - Class unloading start
3STHSTTYPE 14:29:29:310750000 GMT j9mm.55 - Mark end
3STHSTTYPE 14:29:29:306013000 GMT j9mm.54 - Mark start
3STHSTTYPE 14:29:29:305957000 GMT j9mm.474 - GlobalGC start: globalcount=9
3STHSTTYPE 14:29:29:305888000 GMT j9mm.475 - GlobalGC end: workstackoverflow=0 overflowcount=0 memory=234284136/536870912
3STHSTTYPE 14:29:29:305837000 GMT j9mm.90 - GlobalGC collect complete
3STHSTTYPE 14:29:29:305808000 GMT j9mm.137 - Compact end: bytesmoved=189784
3STHSTTYPE 14:29:29:298042000 GMT j9mm.136 - Compact start: reason=compact to meet allocation
3STHSTTYPE 14:29:29:297695000 GMT j9mm.57 - Sweep end
3STHSTTYPE 14:29:29:291696000 GMT j9mm.56 - Sweep start
3STHSTTYPE 14:29:29:291692000 GMT j9mm.55 - Mark end
3STHSTTYPE 14:29:29:284994000 GMT j9mm.54 - Mark start
3STHSTTYPE 14:29:29:284941000 GMT j9mm.474 - GlobalGC start: globalcount=8
3STHSTTYPE 14:29:29:284916000 GMT j9mm.135 - Exclusive access: exclusiveaccessms=0.016 meanexclusiveaccessms=0.016 threads=0 lastthreadtid=0xB6B61100 beatenbyotherthread=0
3STHSTTYPE 14:29:29:284914000 GMT j9mm.469 - Allocation failure cycle start: newspace=2678784/3014656 oldspace=80601248/533856256 loa=5338112/5338112 requestedbytes=603979784
3STHSTTYPE 14:29:29:284893000 GMT j9mm.470 - Allocation failure cycle end: newspace=2678784/3014656 oldspace=80601248/533856256 loa=5338112/5338112
3STHSTTYPE 14:29:29:284858000 GMT j9mm.560 - LocalGC end: rememberedsetoverflow=0 causedrememberedsetoverflow=0 scancacheoverflow=0 failedflipcount=0 failedflipbytes=0 failedtenurecount=0 failedtenurebytes=0 flipcount=2 flipbytes=64 newspace=2678784/3014656 oldspace=80601248/533856256 loa=5338112/5338112 tenureage=0
3STHSTTYPE 14:29:29:284140000 GMT j9mm.140 - Tilt ratio: 89
3STHSTTYPE 14:29:29:283160000 GMT j9mm.64 - LocalGC start: globalcount=8 scavengecount=335 weakrefs=0 soft=0 phantom=0 finalizers=0
3STHSTTYPE 14:29:29:283123000 GMT j9mm.135 - Exclusive access: exclusiveaccessms=0.016 meanexclusiveaccessms=0.016 threads=0 lastthreadtid=0xB6B61100 beatenbyotherthread=0
3STHSTTYPE 14:29:29:283120000 GMT j9mm.469 - Allocation failure cycle start: newspace=753616/3014656 oldspace=80601248/533856256 loa=5338112/5338112 requestedbytes=603979784
3STHSTTYPE 14:29:29:283117000 GMT j9mm.133 - Allocation failure start: newspace=753616/3014656 oldspace=80601248/533856256 loa=5338112/5338112 requestedbytes=603979784
3STHSTTYPE 14:29:29:269762000 GMT j9mm.134 - Allocation failure end: newspace=2686928/3014656 oldspace=80601248/533856256 loa=5338112/5338112
3STHSTTYPE 14:29:29:269751000 GMT j9mm.470 - Allocation failure cycle end: newspace=2686976/3014656 oldspace=80601248/533856256 loa=5338112/5338112
3STHSTTYPE 14:29:29:269718000 GMT j9mm.560 - LocalGC end: rememberedsetoverflow=0 causedrememberedsetoverflow=0 scancacheoverflow=0 failedflipcount=0 failedflipbytes=0 failedtenurecount=0 failedtenurebytes=0 flipcount=0 flipbytes=0 newspace=2686976/3014656 oldspace=80601248/533856256 loa=5338112/5338112 tenureage=0
3STHSTTYPE 14:29:29:268981000 GMT j9mm.140 - Tilt ratio: 89
3STHSTTYPE 14:29:29:268007000 GMT j9mm.64 - LocalGC start: globalcount=8 scavengecount=334 weakrefs=0 soft=0 phantom=0 finalizers=0
3STHSTTYPE 14:29:29:267969000 GMT j9mm.135 - Exclusive access: exclusiveaccessms=0.016 meanexclusiveaccessms=0.016 threads=0 lastthreadtid=0xB6B61100 beatenbyotherthread=0
3STHSTTYPE 14:29:29:267966000 GMT j9mm.469 - Allocation failure cycle start: newspace=0/3014656 oldspace=80601248/533856256 loa=5338112/5338112 requestedbytes=48
3STHSTTYPE 14:29:29:267963000 GMT j9mm.133 - Allocation failure start: newspace=0/3014656 oldspace=80601248/533856256 loa=5338112/5338112 requestedbytes=48
3STHSTTYPE 14:29:29:249015000 GMT j9mm.134 - Allocation failure end: newspace=2686928/3014656 oldspace=80601248/533856256 loa=5338112/5338112
3STHSTTYPE 14:29:29:249003000 GMT j9mm.470 - Allocation failure cycle end: newspace=2686976/3014656 oldspace=80601248/533856256 loa=5338112/5338112
3STHSTTYPE 14:29:29:248971000 GMT j9mm.560 - LocalGC end: rememberedsetoverflow=0 causedrememberedsetoverflow=0 scancacheoverflow=0 failedflipcount=0 failedflipbytes=0 failedtenurecount=0 failedtenurebytes=0 flipcount=0 flipbytes=0 newspace=2686976/3014656 oldspace=80601248/533856256 loa=5338112/5338112 tenureage=0
</pre></div>
<p>Although the Java code that was used in this scenario deliberately triggered an <code>OutOfMemoryError</code> in a pronounced way, similar allocation issues can and do occur when dealing with large data sets such as XML files.</p>
<p>The next step in diagnosing the problem is to open the system dump that gets generated automatically when an <code>OutOfMemoryError</code> occurs. Open
the dump with the <a href="https://www.eclipse.org/mat/">Eclipse Memory Analyzer tool (MAT)</a> and search for the <code>StringBuffer</code> object, which should provide further clues about what went wrong. A common example is seeing the same <code>String</code> duplicated over and over again, which might indicate that code is stuck in a loop.</p>
<p><i class="fa fa-pencil-square-o" aria-hidden="true"></i> <strong>Note:</strong> If you want to use MAT to analyze your system dump, you must install the Diagnostic Tool Framework for Java (DTFJ) plugin in the Eclipse IDE. Select the following menu items:</p>
<div class="codehilite"><pre><span></span>Help &gt; Install New Software &gt; Work with &quot;IBM Diagnostic Tool Framework for Java&quot; &gt;
</pre></div>
<p>If, unlike the previous scenario, you receive an <code>OutOfMemoryError</code> and the MEMINFO section shows that there is very little space left
on the Java heap, the current thread information is typically not important. The current thread is simply the thread that happened to be current when the space ran out. In this situation you might want to increase your Java heap size. For help with this task, see <a href="https://www.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/com.ibm.java.vm.80.doc/docs/mm_heapsizing.html">How to do heap sizing</a>.</p>
<h3 id="native-outofmemoryerror">Native OutOfMemoryError</h3>
<p>In this scenario, the VM runs out of native memory. Native memory is memory that is used by the VM for storing all virtualized resources and data that it needs for VM operations. Native memory that is available to the VM process is limited by the operating system. The native memory available to the VM might also be subject to additional limits imposed by the operating system, for example Unix <code>ulimits</code>. </p>
<p>When a <code>NativeOutOfMemoryError</code> occurs, a Java dump is generated by default. The first section of the file (TITLE) tells you that a systhrow event triggered the Java dump as a result of an OOM (<code>java/lang/OutOfMemoryError</code>) for native memory.</p>
<div class="codehilite"><pre><span></span>0SECTION TITLE subcomponent dump routine
NULL ===============================
1TICHARSET UTF-8
1TISIGINFO Dump Event &quot;systhrow&quot; (00040000) Detail &quot;java/lang/OutOfMemoryError&quot; &quot;native memory exhausted&quot; received
1TIDATETIME Date: 2018/09/14 at 15:49:55:887
1TINANOTIME System nanotime: 3636862054495675
1TIFILENAME Javacore filename: /home/cheesemp/test/javacore.20180914.154814.19708.0003.txt
1TIREQFLAGS Request Flags: 0x81 (exclusive+preempt)
1TIPREPSTATE Prep State: 0x104 (exclusive_vm_access+trace_disabled)
</pre></div>
<p>Sometimes, the current thread is responsible for causing the <code>NativeOutOfMemoryError</code>. Information about the current thread can be found in the THREADS section, as shown in the following output.</p>
<div class="codehilite"><pre><span></span>0SECTION THREADS subcomponent dump routine
NULL =================================
NULL
1XMPOOLINFO JVM Thread pool info:
2XMPOOLTOTAL Current total number of pooled threads: 16
2XMPOOLLIVE Current total number of live threads: 16
2XMPOOLDAEMON Current total number of live daemon threads: 15
NULL
1XMCURTHDINFO Current thread
3XMTHREADINFO &quot;main&quot; J9VMThread:0xB6C60C00, omrthread_t:0xB6C049D8, java/lang/Thread:0xB55E3C10, state:R, prio=5
3XMJAVALTHREAD (java/lang/Thread getId:0x1, isDaemon:false)
3XMTHREADINFO1 (native thread ID:0x4CFD, native priority:0x5, native policy:UNKNOWN, vmstate:R, vm thread flags:0x00001020)
3XMTHREADINFO2 (native stack address range from:0xB6D4E000, to:0xB754F000, size:0x801000)
3XMCPUTIME CPU usage total: 3.654896026 secs, current category=&quot;Application&quot;
3XMHEAPALLOC Heap bytes allocated since last GC cycle=0 (0x0)
3XMTHREADINFO3 Java callstack:
4XESTACKTRACE at sun/misc/Unsafe.allocateDBBMemory(Native Method)
4XESTACKTRACE at java/nio/DirectByteBuffer.&lt;init&gt;(DirectByteBuffer.java:127(Compiled Code))
4XESTACKTRACE at java/nio/ByteBuffer.allocateDirect(ByteBuffer.java:311)
4XESTACKTRACE at NativeHeapBreaker.main(NativeHeapBreaker.java:9)
3XMTHREADINFO3 Native callstack:
4XENATIVESTACK (0xB6A9F5B3 [libj9prt29.so+0x3b5b3])
...
4XENATIVESTACK (0xB582CC9C [libjclse7b_29.so+0x40c9c])
4XENATIVESTACK Java_sun_misc_Unsafe_allocateDBBMemory+0x88 (0xB5827F6B [libjclse7b_29.so+0x3bf6b])
4XENATIVESTACK (0x94A2084A [&lt;unknown&gt;+0x0])
4XENATIVESTACK (0xB6B2538B [libj9vm29.so+0x6c38b])
4XENATIVESTACK (0xB6B4074C [libj9vm29.so+0x8774c])
4XENATIVESTACK (0xB6B7F299 [libj9vm29.so+0xc6299])
4XENATIVESTACK (0xB6A82F3E [libj9prt29.so+0x1ef3e])
4XENATIVESTACK (0xB6B7F32A [libj9vm29.so+0xc632a])
4XENATIVESTACK (0xB6B4084C [libj9vm29.so+0x8784c])
4XENATIVESTACK (0xB6B3CD0C [libj9vm29.so+0x83d0c])
4XENATIVESTACK (0xB776F87D [libjli.so+0x787d])
4XENATIVESTACK (0xB7784F72 [libpthread.so.0+0x6f72])
4XENATIVESTACK clone+0x5e (0xB76A043E [libc.so.6+0xee43e])
</pre></div>
<p>For clarity in the <code>Native callstack</code> output, <code>...</code> indicates that some lines are removed.</p>
<p>The Java callstack shows the transition from Java to native code (<code>sun/misc/Unsafe.allocateDBBMemory(Native Method)</code>), indicating a request for Direct Byte Buffer (DBB) storage. DBB storage is backed by native memory, with the Java heap containing only a reference to the native heap buffer. In this scenario, DBB storage is the likely culprit for this <code>NativeOutOfMemoryError</code>.</p>
<p>The next step is to investigate the NATIVEMEMINFO section of the Java dump file, which reports the amount of memory used by the JRE process, broken down into component areas.</p>
<div class="codehilite"><pre><span></span>0SECTION NATIVEMEMINFO subcomponent dump routine
NULL =================================
0MEMUSER
1MEMUSER JRE: 3,166,386,688 bytes / 4388 allocations
1MEMUSER |
2MEMUSER +--VM: 563,176,824 bytes / 1518 allocations
2MEMUSER | |
3MEMUSER | +--Classes: 3,104,416 bytes / 120 allocations
2MEMUSER | |
3MEMUSER | +--Memory Manager (GC): 548,181,888 bytes / 398 allocations
3MEMUSER | | |
4MEMUSER | | +--Java Heap: 536,932,352 bytes / 1 allocation
3MEMUSER | | |
4MEMUSER | | +--Other: 11,249,536 bytes / 397 allocations
2MEMUSER | |
3MEMUSER | +--Threads: 10,817,120 bytes / 147 allocations
3MEMUSER | | |
4MEMUSER | | +--Java Stack: 115,584 bytes / 16 allocations
3MEMUSER | | |
4MEMUSER | | +--Native Stack: 10,616,832 bytes / 17 allocations
3MEMUSER | | |
4MEMUSER | | +--Other: 84,704 bytes / 114 allocations
2MEMUSER | |
3MEMUSER | +--Trace: 163,688 bytes / 268 allocations
2MEMUSER | |
3MEMUSER | +--JVMTI: 17,320 bytes / 13 allocations
2MEMUSER | |
3MEMUSER | +--JNI: 23,296 bytes / 55 allocations
2MEMUSER | |
3MEMUSER | +--Port Library: 8,576 bytes / 74 allocations
2MEMUSER | |
3MEMUSER | +--Other: 860,520 bytes / 443 allocations
1MEMUSER |
2MEMUSER +--JIT: 3,744,728 bytes / 122 allocations
2MEMUSER | |
3MEMUSER | +--JIT Code Cache: 2,097,152 bytes / 1 allocation
2MEMUSER | |
3MEMUSER | +--JIT Data Cache: 524,336 bytes / 1 allocation
2MEMUSER | |
3MEMUSER | +--Other: 1,123,240 bytes / 120 allocations
1MEMUSER |
2MEMUSER +--Class Libraries: 2,599,463,024 bytes / 2732 allocations
2MEMUSER | |
3MEMUSER | +--Harmony Class Libraries: 1,024 bytes / 1 allocation
2MEMUSER | |
3MEMUSER | +--VM Class Libraries: 2,599,462,000 bytes / 2731 allocations
3MEMUSER | | |
4MEMUSER | | +--sun.misc.Unsafe: 2,598,510,480 bytes / 2484 allocations
4MEMUSER | | | |
5MEMUSER | | | +--Direct Byte Buffers: 2,598,510,480 bytes / 2484 allocations
3MEMUSER | | |
4MEMUSER | | +--Other: 951,520 bytes / 247 allocations
1MEMUSER |
2MEMUSER +--Unknown: 2,112 bytes / 16 allocations
NULL
</pre></div>
<p>In the <code>VM Class Libraries</code> section, the amount of memory allocated for <code>Direct Byte Buffers</code> is shown. Because the <code>NativeOutOfMemoryError</code> was received on a small 32-bit system, a value of <code>2,598,510,480 bytes</code> indicates that the operating system has run out of memory. On a larger UNIX system, the process might have run out of memory because of the <code>ulimit</code> setting. Increasing the value for <code>ulimit</code> might avoid the error, which you can do temporarily by setting <code>ulimit -f unlimited</code> in your current session.</p>
<p>The theoretical maximum size for a 32-bit process is the size of the 32-bit address space, which is 4 GB. On most operating systems a portion of the address space for each process is used by the kernel, such that the real limit for 32-bit processes is actually significantly less than 4GB. As a result, running out of native memory with a 32-bit VM is quite common.</p>
<p>The same 4 GB limit is also important if you are using a 64-bit VM with compressed references. In compressed references mode, all references to objects, classes, threads, and monitors are represented by 32-bit values for performance reasons, so these structures can be allocated only at 32-bit addresses. However, the operating system might place other allocations within this 4 GB of address space, and if this area becomes sufficiently full or fragmented, the VM throws a native <code>NativeOutOfMemoryError</code> error. These errors typically occur when the VM tries to create a new thread or load a class. The <strong>Current Thread History</strong> section should contain more information about what the thread was doing at the VM level when the <code>NativeOutOfMemoryError</code> error occurred.</p>
<p>You can usually avoid this type of problem by using the <code>-Xmcrs</code> option to reserve a contiguous area of memory within the lowest 4GB of memory at VM startup.</p>
<p>Another common cause of a <code>NativeOutOfMemoryError</code> is when an application loads duplicate classes. Classes are allocated outside of the Java heap in native memory. If the value reported for <code>Classes</code> in the NATIVEMEMINFO section is very large, duplicate classes might be the cause of your problem. The <a href="https://www.eclipse.org/mat/">Eclipse Memory Analyzer Tool (MAT)</a> can tell you if you have duplicate classes by using the <em>Class Loader Explorer</em> feature. Because a system dump is automatically generated as well as a Java dump in response to a <code>NativeOutOfMemoryError</code>, simply open the system dump in MAT to continue your diagnosis. </p>
<h3 id="deadlock">Deadlock</h3>
<p>Deadlocks occur when two threads attempt to synchronize on an object and lock an instance of a class. When this happens, your application stops responding and hangs. Generating a Java dump file will quickly tell you whether you have a deadlock situation. Trigger the Java dump by sending a SIGQUIT signal (<code>kill -3</code>) to the VM.</p>
<p>The VM can detect the most common types of deadlock scenario involving Java monitors. If this type of deadlock is detected, information is provided in the LOCKS section. More complex deadlocks, including those that involve a mixture of native mutexes and Java monitors, are not detected.</p>
<p>Here is the output from the code that was used to cause a common deadlock scenario:</p>
<div class="codehilite"><pre><span></span><span class="nb">NULL</span>
<span class="mi">1L</span><span class="n">KDEADLOCK</span> <span class="n">Deadlock</span> <span class="n">detected</span> <span class="o">!!!</span>
<span class="nb">NULL</span> <span class="o">---------------------</span>
<span class="nb">NULL</span>
<span class="mi">2L</span><span class="n">KDEADLOCKTHR</span> <span class="n">Thread</span> <span class="s">&quot;Worker Thread 2&quot;</span> <span class="p">(</span><span class="mh">0x94501D00</span><span class="p">)</span>
<span class="mi">3L</span><span class="n">KDEADLOCKWTR</span> <span class="n">is</span> <span class="n">waiting</span> <span class="k">for</span><span class="o">:</span>
<span class="mi">4L</span><span class="n">KDEADLOCKMON</span> <span class="nl">sys_mon_t</span><span class="p">:</span><span class="mh">0x08C2B344</span> <span class="nl">infl_mon_t</span><span class="p">:</span> <span class="mh">0x08C2B384</span><span class="o">:</span>
<span class="mi">4L</span><span class="n">KDEADLOCKOBJ</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">Object</span><span class="mh">@0xB5666698</span>
<span class="mi">3L</span><span class="n">KDEADLOCKOWN</span> <span class="n">which</span> <span class="n">is</span> <span class="n">owned</span> <span class="nl">by</span><span class="p">:</span>
<span class="mi">2L</span><span class="n">KDEADLOCKTHR</span> <span class="n">Thread</span> <span class="s">&quot;Worker Thread 3&quot;</span> <span class="p">(</span><span class="mh">0x94507500</span><span class="p">)</span>
<span class="mi">3L</span><span class="n">KDEADLOCKWTR</span> <span class="n">which</span> <span class="n">is</span> <span class="n">waiting</span> <span class="k">for</span><span class="o">:</span>
<span class="mi">4L</span><span class="n">KDEADLOCKMON</span> <span class="nl">sys_mon_t</span><span class="p">:</span><span class="mh">0x08C2B3A0</span> <span class="nl">infl_mon_t</span><span class="p">:</span> <span class="mh">0x08C2B3E0</span><span class="o">:</span>
<span class="mi">4L</span><span class="n">KDEADLOCKOBJ</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">Object</span><span class="mh">@0xB5666678</span>
<span class="mi">3L</span><span class="n">KDEADLOCKOWN</span> <span class="n">which</span> <span class="n">is</span> <span class="n">owned</span> <span class="nl">by</span><span class="p">:</span>
<span class="mi">2L</span><span class="n">KDEADLOCKTHR</span> <span class="n">Thread</span> <span class="s">&quot;Worker Thread 1&quot;</span> <span class="p">(</span><span class="mh">0x92A3EC00</span><span class="p">)</span>
<span class="mi">3L</span><span class="n">KDEADLOCKWTR</span> <span class="n">which</span> <span class="n">is</span> <span class="n">waiting</span> <span class="k">for</span><span class="o">:</span>
<span class="mi">4L</span><span class="n">KDEADLOCKMON</span> <span class="nl">sys_mon_t</span><span class="p">:</span><span class="mh">0x08C2B2E8</span> <span class="nl">infl_mon_t</span><span class="p">:</span> <span class="mh">0x08C2B328</span><span class="o">:</span>
<span class="mi">4L</span><span class="n">KDEADLOCKOBJ</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">Object</span><span class="mh">@0xB5666688</span>
<span class="mi">3L</span><span class="n">KDEADLOCKOWN</span> <span class="n">which</span> <span class="n">is</span> <span class="n">owned</span> <span class="nl">by</span><span class="p">:</span>
<span class="mi">2L</span><span class="n">KDEADLOCKTHR</span> <span class="n">Thread</span> <span class="s">&quot;Worker Thread 2&quot;</span> <span class="p">(</span><span class="mh">0x94501D00</span><span class="p">)</span>
</pre></div>
<p>This output tells you that <code>Worker Thread 2</code> is waiting for <code>Worker Thread 3</code>, which is waiting for <code>Worker Thread 1</code>. Because <code>Worker Thread 1</code> is also waiting for <code>Worker Thread 2</code>, there is a deadlock. The next place to look is the output for Java and native stacks, in the THREADS section. By looking at the stack for each of these worker threads you can trace the problem back to specific lines in your application code.</p>
<p>In this example, you can see from the following output that for all worker threads, the stack traces (<code>4XESTACKTRACE</code>/<code>5XESTACKTRACE</code>) indicate a problem in line 35 of the application <code>DeadLockTest.java</code>:</p>
<div class="codehilite"><pre><span></span><span class="mi">3</span><span class="n">XMTHREADINFO</span> <span class="s">&quot;Worker Thread 1&quot;</span> <span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x92A3EC00</span><span class="p">,</span> <span class="nl">omrthread_t</span><span class="p">:</span><span class="mh">0x92A3C2B0</span><span class="p">,</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="nl">Thread</span><span class="p">:</span><span class="mh">0xB5666778</span><span class="p">,</span> <span class="nl">state</span><span class="p">:</span><span class="n">B</span><span class="p">,</span> <span class="n">prio</span><span class="o">=</span><span class="mi">5</span>
<span class="mi">3</span><span class="n">XMJAVALTHREAD</span> <span class="p">(</span><span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">Thread</span> <span class="nl">getId</span><span class="p">:</span><span class="mh">0x13</span><span class="p">,</span> <span class="nl">isDaemon</span><span class="p">:</span><span class="nb">false</span><span class="p">)</span>
<span class="mi">3</span><span class="n">XMTHREADINFO1</span> <span class="p">(</span><span class="n">native</span> <span class="kr">thread</span> <span class="nl">ID</span><span class="p">:</span><span class="mh">0x52CF</span><span class="p">,</span> <span class="n">native</span> <span class="nl">priority</span><span class="p">:</span><span class="mh">0x5</span><span class="p">,</span> <span class="n">native</span> <span class="nl">policy</span><span class="p">:</span><span class="n">UNKNOWN</span><span class="p">,</span> <span class="nl">vmstate</span><span class="p">:</span><span class="n">B</span><span class="p">,</span> <span class="n">vm</span> <span class="kr">thread</span> <span class="nl">flags</span><span class="p">:</span><span class="mh">0x00000201</span><span class="p">)</span>
<span class="mi">3</span><span class="n">XMTHREADINFO2</span> <span class="p">(</span><span class="n">native</span> <span class="n">stack</span> <span class="n">address</span> <span class="n">range</span> <span class="nl">from</span><span class="p">:</span><span class="mh">0x9297E000</span><span class="p">,</span> <span class="nl">to</span><span class="p">:</span><span class="mh">0x929BF000</span><span class="p">,</span> <span class="nl">size</span><span class="p">:</span><span class="mh">0x41000</span><span class="p">)</span>
<span class="mi">3</span><span class="n">XMCPUTIME</span> <span class="n">CPU</span> <span class="n">usage</span> <span class="nl">total</span><span class="p">:</span> <span class="mf">0.004365543</span> <span class="n">secs</span><span class="p">,</span> <span class="n">current</span> <span class="n">category</span><span class="o">=</span><span class="s">&quot;Application&quot;</span>
<span class="mi">3</span><span class="n">XMTHREADBLOCK</span> <span class="n">Blocked</span> <span class="nl">on</span><span class="p">:</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">Object</span><span class="mh">@0xB5666688</span> <span class="n">Owned</span> <span class="nl">by</span><span class="p">:</span> <span class="s">&quot;Worker Thread 2&quot;</span> <span class="p">(</span><span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x94501D00</span><span class="p">,</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="nl">Thread</span><span class="p">:</span><span class="mh">0xB56668D0</span><span class="p">)</span>
<span class="mi">3</span><span class="n">XMHEAPALLOC</span> <span class="n">Heap</span> <span class="n">bytes</span> <span class="n">allocated</span> <span class="n">since</span> <span class="n">last</span> <span class="n">GC</span> <span class="n">cycle</span><span class="o">=</span><span class="mi">0</span> <span class="p">(</span><span class="mh">0x0</span><span class="p">)</span>
<span class="mi">3</span><span class="n">XMTHREADINFO3</span> <span class="n">Java</span> <span class="nl">callstack</span><span class="p">:</span>
<span class="mi">4</span><span class="n">XESTACKTRACE</span> <span class="n">at</span> <span class="n">WorkerThread</span><span class="p">.</span><span class="n">run</span><span class="p">(</span><span class="n">DeadLockTest</span><span class="p">.</span><span class="nl">java</span><span class="p">:</span><span class="mi">35</span><span class="p">)</span>
<span class="mi">5</span><span class="n">XESTACKTRACE</span> <span class="p">(</span><span class="n">entered</span> <span class="nl">lock</span><span class="p">:</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">Object</span><span class="mh">@0xB5666678</span><span class="p">,</span> <span class="n">entry</span> <span class="nl">count</span><span class="p">:</span> <span class="mi">1</span><span class="p">)</span>
<span class="p">...</span>
<span class="mi">3</span><span class="n">XMTHREADINFO</span> <span class="s">&quot;Worker Thread 2&quot;</span> <span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x94501D00</span><span class="p">,</span> <span class="nl">omrthread_t</span><span class="p">:</span><span class="mh">0x92A3C8F0</span><span class="p">,</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="nl">Thread</span><span class="p">:</span><span class="mh">0xB56668D0</span><span class="p">,</span> <span class="nl">state</span><span class="p">:</span><span class="n">B</span><span class="p">,</span> <span class="n">prio</span><span class="o">=</span><span class="mi">5</span>
<span class="mi">3</span><span class="n">XMJAVALTHREAD</span> <span class="p">(</span><span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">Thread</span> <span class="nl">getId</span><span class="p">:</span><span class="mh">0x14</span><span class="p">,</span> <span class="nl">isDaemon</span><span class="p">:</span><span class="nb">false</span><span class="p">)</span>
<span class="mi">3</span><span class="n">XMTHREADINFO1</span> <span class="p">(</span><span class="n">native</span> <span class="kr">thread</span> <span class="nl">ID</span><span class="p">:</span><span class="mh">0x52D0</span><span class="p">,</span> <span class="n">native</span> <span class="nl">priority</span><span class="p">:</span><span class="mh">0x5</span><span class="p">,</span> <span class="n">native</span> <span class="nl">policy</span><span class="p">:</span><span class="n">UNKNOWN</span><span class="p">,</span> <span class="nl">vmstate</span><span class="p">:</span><span class="n">B</span><span class="p">,</span> <span class="n">vm</span> <span class="kr">thread</span> <span class="nl">flags</span><span class="p">:</span><span class="mh">0x00000201</span><span class="p">)</span>
<span class="mi">3</span><span class="n">XMTHREADINFO2</span> <span class="p">(</span><span class="n">native</span> <span class="n">stack</span> <span class="n">address</span> <span class="n">range</span> <span class="nl">from</span><span class="p">:</span><span class="mh">0x946BF000</span><span class="p">,</span> <span class="nl">to</span><span class="p">:</span><span class="mh">0x94700000</span><span class="p">,</span> <span class="nl">size</span><span class="p">:</span><span class="mh">0x41000</span><span class="p">)</span>
<span class="mi">3</span><span class="n">XMCPUTIME</span> <span class="n">CPU</span> <span class="n">usage</span> <span class="nl">total</span><span class="p">:</span> <span class="mf">0.004555580</span> <span class="n">secs</span><span class="p">,</span> <span class="n">current</span> <span class="n">category</span><span class="o">=</span><span class="s">&quot;Application&quot;</span>
<span class="mi">3</span><span class="n">XMTHREADBLOCK</span> <span class="n">Blocked</span> <span class="nl">on</span><span class="p">:</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">Object</span><span class="mh">@0xB5666698</span> <span class="n">Owned</span> <span class="nl">by</span><span class="p">:</span> <span class="s">&quot;Worker Thread 3&quot;</span> <span class="p">(</span><span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x94507500</span><span class="p">,</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="nl">Thread</span><span class="p">:</span><span class="mh">0xB5666A18</span><span class="p">)</span>
<span class="mi">3</span><span class="n">XMHEAPALLOC</span> <span class="n">Heap</span> <span class="n">bytes</span> <span class="n">allocated</span> <span class="n">since</span> <span class="n">last</span> <span class="n">GC</span> <span class="n">cycle</span><span class="o">=</span><span class="mi">0</span> <span class="p">(</span><span class="mh">0x0</span><span class="p">)</span>
<span class="mi">3</span><span class="n">XMTHREADINFO3</span> <span class="n">Java</span> <span class="nl">callstack</span><span class="p">:</span>
<span class="mi">4</span><span class="n">XESTACKTRACE</span> <span class="n">at</span> <span class="n">WorkerThread</span><span class="p">.</span><span class="n">run</span><span class="p">(</span><span class="n">DeadLockTest</span><span class="p">.</span><span class="nl">java</span><span class="p">:</span><span class="mi">35</span><span class="p">)</span>
<span class="mi">5</span><span class="n">XESTACKTRACE</span> <span class="p">(</span><span class="n">entered</span> <span class="nl">lock</span><span class="p">:</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">Object</span><span class="mh">@0xB5666688</span><span class="p">,</span> <span class="n">entry</span> <span class="nl">count</span><span class="p">:</span> <span class="mi">1</span><span class="p">)</span>
<span class="p">...</span>
<span class="mi">3</span><span class="n">XMTHREADINFO</span> <span class="s">&quot;Worker Thread 3&quot;</span> <span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x94507500</span><span class="p">,</span> <span class="nl">omrthread_t</span><span class="p">:</span><span class="mh">0x92A3CC10</span><span class="p">,</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="nl">Thread</span><span class="p">:</span><span class="mh">0xB5666A18</span><span class="p">,</span> <span class="nl">state</span><span class="p">:</span><span class="n">B</span><span class="p">,</span> <span class="n">prio</span><span class="o">=</span><span class="mi">5</span>
<span class="mi">3</span><span class="n">XMJAVALTHREAD</span> <span class="p">(</span><span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">Thread</span> <span class="nl">getId</span><span class="p">:</span><span class="mh">0x15</span><span class="p">,</span> <span class="nl">isDaemon</span><span class="p">:</span><span class="nb">false</span><span class="p">)</span>
<span class="mi">3</span><span class="n">XMTHREADINFO1</span> <span class="p">(</span><span class="n">native</span> <span class="kr">thread</span> <span class="nl">ID</span><span class="p">:</span><span class="mh">0x52D1</span><span class="p">,</span> <span class="n">native</span> <span class="nl">priority</span><span class="p">:</span><span class="mh">0x5</span><span class="p">,</span> <span class="n">native</span> <span class="nl">policy</span><span class="p">:</span><span class="n">UNKNOWN</span><span class="p">,</span> <span class="nl">vmstate</span><span class="p">:</span><span class="n">B</span><span class="p">,</span> <span class="n">vm</span> <span class="kr">thread</span> <span class="nl">flags</span><span class="p">:</span><span class="mh">0x00000201</span><span class="p">)</span>
<span class="mi">3</span><span class="n">XMTHREADINFO2</span> <span class="p">(</span><span class="n">native</span> <span class="n">stack</span> <span class="n">address</span> <span class="n">range</span> <span class="nl">from</span><span class="p">:</span><span class="mh">0x9467E000</span><span class="p">,</span> <span class="nl">to</span><span class="p">:</span><span class="mh">0x946BF000</span><span class="p">,</span> <span class="nl">size</span><span class="p">:</span><span class="mh">0x41000</span><span class="p">)</span>
<span class="mi">3</span><span class="n">XMCPUTIME</span> <span class="n">CPU</span> <span class="n">usage</span> <span class="nl">total</span><span class="p">:</span> <span class="mf">0.003657010</span> <span class="n">secs</span><span class="p">,</span> <span class="n">current</span> <span class="n">category</span><span class="o">=</span><span class="s">&quot;Application&quot;</span>
<span class="mi">3</span><span class="n">XMTHREADBLOCK</span> <span class="n">Blocked</span> <span class="nl">on</span><span class="p">:</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">Object</span><span class="mh">@0xB5666678</span> <span class="n">Owned</span> <span class="nl">by</span><span class="p">:</span> <span class="s">&quot;Worker Thread 1&quot;</span> <span class="p">(</span><span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x92A3EC00</span><span class="p">,</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="nl">Thread</span><span class="p">:</span><span class="mh">0xB5666778</span><span class="p">)</span>
<span class="mi">3</span><span class="n">XMHEAPALLOC</span> <span class="n">Heap</span> <span class="n">bytes</span> <span class="n">allocated</span> <span class="n">since</span> <span class="n">last</span> <span class="n">GC</span> <span class="n">cycle</span><span class="o">=</span><span class="mi">0</span> <span class="p">(</span><span class="mh">0x0</span><span class="p">)</span>
<span class="mi">3</span><span class="n">XMTHREADINFO3</span> <span class="n">Java</span> <span class="nl">callstack</span><span class="p">:</span>
<span class="mi">4</span><span class="n">XESTACKTRACE</span> <span class="n">at</span> <span class="n">WorkerThread</span><span class="p">.</span><span class="n">run</span><span class="p">(</span><span class="n">DeadLockTest</span><span class="p">.</span><span class="nl">java</span><span class="p">:</span><span class="mi">35</span><span class="p">)</span>
<span class="mi">5</span><span class="n">XESTACKTRACE</span> <span class="p">(</span><span class="n">entered</span> <span class="nl">lock</span><span class="p">:</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">Object</span><span class="mh">@0xB5666698</span><span class="p">,</span> <span class="n">entry</span> <span class="nl">count</span><span class="p">:</span> <span class="mi">1</span><span class="p">)</span>
</pre></div>
<h3 id="hang">Hang</h3>
<p>An application can hang for a number of reasons but the most common cause is excessive global garbage collection (GC) activity, where your application is repeatedly paused because your Java heap has <em>almost</em> run out of memory. You can identify this problem by looking at verbose GC output. Collect this output by specifying the <code>-verbose:gc</code> option.</p>
<p>Deadlock situations can also manifest themselves as hangs. For more information on diagnosing this type of problem from a Java dump, see the <a href="#deadlock">deadlock</a> scenario.</p>
<p>If you have eliminated verbose GC activity and deadlocks, another common hang scenario involves threads that compete and wait for Java object locks. This type of problem can usually be diagnosed by examining a Java dump. The simplest hang scenario involving Java object locks is where a thread acquires a lock that other threads are waiting for, but it doesn't release the lock for some reason.</p>
<p>The first place to look in the Java dump output is the <strong>LOCKS</strong> section. This section lists all the monitors and shows which threads have acquired a lock and which threads are waiting. If the hang is caused by a thread not releasing a lock that other threads need, you can see a list of waiting threads in the output.</p>
<p>In this example scenario, the Java dump <strong>LOCKS</strong> section shows that <code>Worker Thread 0</code> (<code>3LKMONOBJECT</code>) has acquired a lock and there are 19 other worker threads waiting to obtain the lock.</p>
<div class="codehilite"><pre><span></span><span class="nb">NULL</span> <span class="o">------------------------------------------------------------------------</span>
<span class="mi">0</span><span class="n">SECTION</span> <span class="n">LOCKS</span> <span class="n">subcomponent</span> <span class="n">dump</span> <span class="n">routine</span>
<span class="nb">NULL</span> <span class="o">===============================</span>
<span class="nb">NULL</span>
<span class="mi">1L</span><span class="n">KPOOLINFO</span> <span class="n">Monitor</span> <span class="n">pool</span> <span class="nl">info</span><span class="p">:</span>
<span class="mi">2L</span><span class="n">KPOOLTOTAL</span> <span class="n">Current</span> <span class="n">total</span> <span class="n">number</span> <span class="n">of</span> <span class="nl">monitors</span><span class="p">:</span> <span class="mi">1</span>
<span class="nb">NULL</span>
<span class="mi">1L</span><span class="n">KMONPOOLDUMP</span> <span class="n">Monitor</span> <span class="n">Pool</span> <span class="n">Dump</span> <span class="p">(</span><span class="n">flat</span> <span class="o">&amp;</span> <span class="n">inflated</span> <span class="n">object</span><span class="o">-</span><span class="n">monitors</span><span class="p">)</span><span class="o">:</span>
<span class="mi">2L</span><span class="n">KMONINUSE</span> <span class="nl">sys_mon_t</span><span class="p">:</span><span class="mh">0x92711200</span> <span class="nl">infl_mon_t</span><span class="p">:</span> <span class="mh">0x92711240</span><span class="o">:</span>
<span class="mi">3L</span><span class="n">KMONOBJECT</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">Object</span><span class="mh">@0xB56658D8</span><span class="o">:</span> <span class="n">Flat</span> <span class="n">locked</span> <span class="n">by</span> <span class="s">&quot;Worker Thread 0&quot;</span> <span class="p">(</span><span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x92A3EC00</span><span class="p">),</span> <span class="n">entry</span> <span class="n">count</span> <span class="mi">1</span>
<span class="mi">3L</span><span class="n">KWAITERQ</span> <span class="n">Waiting</span> <span class="n">to</span> <span class="nl">enter</span><span class="p">:</span>
<span class="mi">3L</span><span class="n">KWAITER</span> <span class="s">&quot;Worker Thread 1&quot;</span> <span class="p">(</span><span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x92703F00</span><span class="p">)</span>
<span class="mi">3L</span><span class="n">KWAITER</span> <span class="s">&quot;Worker Thread 2&quot;</span> <span class="p">(</span><span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x92709C00</span><span class="p">)</span>
<span class="mi">3L</span><span class="n">KWAITER</span> <span class="s">&quot;Worker Thread 3&quot;</span> <span class="p">(</span><span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x92710A00</span><span class="p">)</span>
<span class="mi">3L</span><span class="n">KWAITER</span> <span class="s">&quot;Worker Thread 4&quot;</span> <span class="p">(</span><span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x92717F00</span><span class="p">)</span>
<span class="mi">3L</span><span class="n">KWAITER</span> <span class="s">&quot;Worker Thread 5&quot;</span> <span class="p">(</span><span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x9271DC00</span><span class="p">)</span>
<span class="mi">3L</span><span class="n">KWAITER</span> <span class="s">&quot;Worker Thread 6&quot;</span> <span class="p">(</span><span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x92723A00</span><span class="p">)</span>
<span class="mi">3L</span><span class="n">KWAITER</span> <span class="s">&quot;Worker Thread 7&quot;</span> <span class="p">(</span><span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x92729800</span><span class="p">)</span>
<span class="mi">3L</span><span class="n">KWAITER</span> <span class="s">&quot;Worker Thread 8&quot;</span> <span class="p">(</span><span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x92733700</span><span class="p">)</span>
<span class="mi">3L</span><span class="n">KWAITER</span> <span class="s">&quot;Worker Thread 9&quot;</span> <span class="p">(</span><span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x92739400</span><span class="p">)</span>
<span class="mi">3L</span><span class="n">KWAITER</span> <span class="s">&quot;Worker Thread 10&quot;</span> <span class="p">(</span><span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x92740200</span><span class="p">)</span>
<span class="mi">3L</span><span class="n">KWAITER</span> <span class="s">&quot;Worker Thread 11&quot;</span> <span class="p">(</span><span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x92748100</span><span class="p">)</span>
<span class="mi">3L</span><span class="n">KWAITER</span> <span class="s">&quot;Worker Thread 12&quot;</span> <span class="p">(</span><span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x9274DF00</span><span class="p">)</span>
<span class="mi">3L</span><span class="n">KWAITER</span> <span class="s">&quot;Worker Thread 13&quot;</span> <span class="p">(</span><span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x92754D00</span><span class="p">)</span>
<span class="mi">3L</span><span class="n">KWAITER</span> <span class="s">&quot;Worker Thread 14&quot;</span> <span class="p">(</span><span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x9275AA00</span><span class="p">)</span>
<span class="mi">3L</span><span class="n">KWAITER</span> <span class="s">&quot;Worker Thread 15&quot;</span> <span class="p">(</span><span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x92760800</span><span class="p">)</span>
<span class="mi">3L</span><span class="n">KWAITER</span> <span class="s">&quot;Worker Thread 16&quot;</span> <span class="p">(</span><span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x92766600</span><span class="p">)</span>
<span class="mi">3L</span><span class="n">KWAITER</span> <span class="s">&quot;Worker Thread 17&quot;</span> <span class="p">(</span><span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x9276C300</span><span class="p">)</span>
<span class="mi">3L</span><span class="n">KWAITER</span> <span class="s">&quot;Worker Thread 18&quot;</span> <span class="p">(</span><span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x92773100</span><span class="p">)</span>
<span class="mi">3L</span><span class="n">KWAITER</span> <span class="s">&quot;Worker Thread 19&quot;</span> <span class="p">(</span><span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x92778F00</span><span class="p">)</span>
<span class="nb">NULL</span>
</pre></div>
<p>The next step is to determine why <code>Worker Thread 0</code> is not releasing the lock. The best place to start is the stack trace for this thread, which you can find by searching on the thread name or J9VMThread ID in the <strong>THREADS</strong> section.</p>
<p>The following extract shows the details for <code>"Worker Thread 0" (J9VMThread:0x92A3EC00)</code>:</p>
<div class="codehilite"><pre><span></span><span class="nb">NULL</span>
<span class="mi">3</span><span class="n">XMTHREADINFO</span> <span class="s">&quot;Worker Thread 0&quot;</span> <span class="nl">J9VMThread</span><span class="p">:</span><span class="mh">0x92A3EC00</span><span class="p">,</span> <span class="nl">omrthread_t</span><span class="p">:</span><span class="mh">0x92A3C280</span><span class="p">,</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="nl">Thread</span><span class="p">:</span><span class="mh">0xB56668B8</span><span class="p">,</span> <span class="nl">state</span><span class="p">:</span><span class="n">CW</span><span class="p">,</span> <span class="n">prio</span><span class="o">=</span><span class="mi">5</span>
<span class="mi">3</span><span class="n">XMJAVALTHREAD</span> <span class="p">(</span><span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">Thread</span> <span class="nl">getId</span><span class="p">:</span><span class="mh">0x13</span><span class="p">,</span> <span class="nl">isDaemon</span><span class="p">:</span><span class="nb">false</span><span class="p">)</span>
<span class="mi">3</span><span class="n">XMTHREADINFO1</span> <span class="p">(</span><span class="n">native</span> <span class="kr">thread</span> <span class="nl">ID</span><span class="p">:</span><span class="mh">0x511F</span><span class="p">,</span> <span class="n">native</span> <span class="nl">priority</span><span class="p">:</span><span class="mh">0x5</span><span class="p">,</span> <span class="n">native</span> <span class="nl">policy</span><span class="p">:</span><span class="n">UNKNOWN</span><span class="p">,</span> <span class="nl">vmstate</span><span class="p">:</span><span class="n">CW</span><span class="p">,</span> <span class="n">vm</span> <span class="kr">thread</span> <span class="nl">flags</span><span class="p">:</span><span class="mh">0x00000401</span><span class="p">)</span>
<span class="mi">3</span><span class="n">XMTHREADINFO2</span> <span class="p">(</span><span class="n">native</span> <span class="n">stack</span> <span class="n">address</span> <span class="n">range</span> <span class="nl">from</span><span class="p">:</span><span class="mh">0x9297E000</span><span class="p">,</span> <span class="nl">to</span><span class="p">:</span><span class="mh">0x929BF000</span><span class="p">,</span> <span class="nl">size</span><span class="p">:</span><span class="mh">0x41000</span><span class="p">)</span>
<span class="mi">3</span><span class="n">XMCPUTIME</span> <span class="n">CPU</span> <span class="n">usage</span> <span class="nl">total</span><span class="p">:</span> <span class="mf">0.000211878</span> <span class="n">secs</span><span class="p">,</span> <span class="n">current</span> <span class="n">category</span><span class="o">=</span><span class="s">&quot;Application&quot;</span>
<span class="mi">3</span><span class="n">XMHEAPALLOC</span> <span class="n">Heap</span> <span class="n">bytes</span> <span class="n">allocated</span> <span class="n">since</span> <span class="n">last</span> <span class="n">GC</span> <span class="n">cycle</span><span class="o">=</span><span class="mi">0</span> <span class="p">(</span><span class="mh">0x0</span><span class="p">)</span>
<span class="mi">3</span><span class="n">XMTHREADINFO3</span> <span class="n">Java</span> <span class="nl">callstack</span><span class="p">:</span>
<span class="mi">4</span><span class="n">XESTACKTRACE</span> <span class="n">at</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">Thread</span><span class="p">.</span><span class="n">sleep</span><span class="p">(</span><span class="n">Native</span> <span class="n">Method</span><span class="p">)</span>
<span class="mi">4</span><span class="n">XESTACKTRACE</span> <span class="n">at</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">Thread</span><span class="p">.</span><span class="n">sleep</span><span class="p">(</span><span class="n">Thread</span><span class="p">.</span><span class="nl">java</span><span class="p">:</span><span class="mi">941</span><span class="p">)</span>
<span class="mi">4</span><span class="n">XESTACKTRACE</span> <span class="n">at</span> <span class="n">WorkerThread</span><span class="p">.</span><span class="n">doWork</span><span class="p">(</span><span class="n">HangTest</span><span class="p">.</span><span class="nl">java</span><span class="p">:</span><span class="mi">37</span><span class="p">)</span>
<span class="mi">4</span><span class="n">XESTACKTRACE</span> <span class="n">at</span> <span class="n">WorkerThread</span><span class="p">.</span><span class="n">run</span><span class="p">(</span><span class="n">HangTest</span><span class="p">.</span><span class="nl">java</span><span class="p">:</span><span class="mi">31</span><span class="p">)</span>
<span class="mi">5</span><span class="n">XESTACKTRACE</span> <span class="p">(</span><span class="n">entered</span> <span class="nl">lock</span><span class="p">:</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">Object</span><span class="mh">@0xB56658D8</span><span class="p">,</span> <span class="n">entry</span> <span class="nl">count</span><span class="p">:</span> <span class="mi">1</span><span class="p">)</span>
</pre></div>
<p>In the last line of this output you can see where the thread acquired the lock. Working up from this line, you can see that <code>WorkerThread.run</code> was called, which in turn called <code>WorkerThread.doWork</code>. The stack shows that the thread then entered a call to <code>java/lang/Thread.sleep</code> in HangTest.java on line 37, which is preventing the thread from completing its work and releasing the lock. In this example the <code>sleep</code> call was added to induce a hang, but in real-world scenarios the cause could be any blocking operation, such as reading from an input stream or socket. Another possibility is that the thread is waiting for <em>another</em> lock owned by yet another thread.</p>
<p>It is important to remember that each Java dump represents a single snapshot in time. You should generate at least three Java dumps separated by a short pause, for example 30 seconds, and compare the output. This comparison tells you whether the threads involved are stuck in a fixed state or whether they are moving.</p>
<p>In this example, the threads do not move and the investigation needs to focus on the logic in <code>WorkerThread.doWork</code> to understand why <code>Worker Thread 0</code> entered the <code>java/lang/Thread.sleep</code> call.</p>
<p>Another common scenario is where each Java dump shows a number of threads waiting for a lock owned by another thread, but the list of waiting threads and the lock-owning thread change over time. In this case the cause is likely to be a bottleneck caused by thread contention, where the threads are continually competing for the same lock. In severe cases, the lock is held only for a small amount of time but there are lots of threads trying to obtain it. Because more time is spent handling the lock and scheduling the thread than executing application code, the degradation in performance is manifested as a hang. Thread contention is usually caused by an application design problem. You can use a similar approach to the one used in this scenario to determime which lines of code are responsible for the contention.</p>
<!-- ==== END OF TOPIC ==== dump_javadump.md ==== -->
<!--
-->
<!-- This block was originally in the theme's 'footer.html' partial file. It has been moved here in part to resolve issues with the footer being too large. -->
<!--
* Copyright (c) 2017, 2018 IBM Corp. and others
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution and is available at
* https://www.eclipse.org/legal/epl-2.0/ or the Apache
* License, Version 2.0 which accompanies this distribution and
* is available at https://www.apache.org/licenses/LICENSE-2.0.
*
* This Source Code may also be made available under the
* following Secondary Licenses when the conditions for such
* availability set forth in the Eclipse Public License, v. 2.0
* are satisfied: GNU General Public License, version 2 with
* the GNU Classpath Exception [1] and GNU General Public
* License, version 2 with the OpenJDK Assembly Exception [2].
*
* [1] https://www.gnu.org/software/classpath/license.html
* [2] http://openjdk.java.net/legal/assembly-exception.html
*
* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH
* Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception
-->
<div class="md-footer-nav">
<nav class="md-footer-nav__inner md-grid">
<!-- Ignore all this to remove previous/next links in footer, but leave nav block else lose highlighting in LH navigation
<img alt="" src="../cr/rule.png"> [!-- Separator --]
<a href="diag_overview/" title="Tools and data" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev">
<div class="md-flex__cell md-flex__cell--shrink">
<i class="md-icon md-icon--arrow-back md-footer-nav__button"></i>
</div>
<div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
<span class="md-flex__ellipsis">
<span class="md-footer-nav__direction">
Previous
</span>
Tools and data
</span>
</div>
</a>
<a href="dump_heapdump/" title="Heap dump" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next">
<div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
<span class="md-flex__ellipsis">
<span class="md-footer-nav__direction">
Next
</span>
Heap dump
</span>
</div>
<div class="md-flex__cell md-flex__cell--shrink">
<i class="md-icon md-icon--arrow-forward md-footer-nav__button"></i>
</div>
</a>
-->
</nav>
</div>
</article>
</div>
</div>
</main>
<!--
* Copyright (c) 2017, 2019 IBM Corp. and others
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution and is available at
* https://www.eclipse.org/legal/epl-2.0/ or the Apache
* License, Version 2.0 which accompanies this distribution and
* is available at https://www.apache.org/licenses/LICENSE-2.0.
*
* This Source Code may also be made available under the
* following Secondary Licenses when the conditions for such
* availability set forth in the Eclipse Public License, v. 2.0
* are satisfied: GNU General Public License, version 2 with
* the GNU Classpath Exception [1] and GNU General Public
* License, version 2 with the OpenJDK Assembly Exception [2].
*
* [1] https://www.gnu.org/software/classpath/license.html
* [2] http://openjdk.java.net/legal/assembly-exception.html
*
* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH
* Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception
-->
<cite></cite>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<!--
* Copyright (c) 2017, 2019 IBM Corp. and others
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution and is available at
* https://www.eclipse.org/legal/epl-2.0/ or the Apache
* License, Version 2.0 which accompanies this distribution and
* is available at https://www.apache.org/licenses/LICENSE-2.0.
*
* This Source Code may also be made available under the
* following Secondary Licenses when the conditions for such
* availability set forth in the Eclipse Public License, v. 2.0
* are satisfied: GNU General Public License, version 2 with
* the GNU Classpath Exception [1] and GNU General Public
* License, version 2 with the OpenJDK Assembly Exception [2].
*
* [1] https://www.gnu.org/software/classpath/license.html
* [2] http://openjdk.java.net/legal/assembly-exception.html
*
* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH
* Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception
-->
<div class="md-footer-social1">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<a href="https://github.com/eclipse/openj9" class="md-footer-social__link fa fa-github"></a>
<a href="https://openj9.slack.com" class="md-footer-social__link fa fa-slack"></a>
<a href="https://twitter.com/openj9" class="md-footer-social__link fa fa-twitter"></a>
<a href="https://stackoverflow.com/search?q=OpenJ9" class="md-footer-social__link fa fa-stack-overflow"></a>
</div>
<div class="md-footer-eclipse1">OpenJ9 is an Eclipse Incubator project.</div>
<div class="md-footer-links1">
<span class="no-wrap"><i class="fa fa-chevron-circle-right f_mini" aria-hidden="true"></i><a class="dark-link" href="http://www.eclipse.org">Eclipse Foundation website</a></span>
&nbsp; <span class="no-wrap"><i class="fa fa-chevron-circle-right f_mini" aria-hidden="true"></i><a class="dark-link" href="http://www.eclipse.org/legal/privacy.php">Privacy policy</a></span>
&nbsp; <span class="no-wrap"><i class="fa fa-chevron-circle-right f_mini" aria-hidden="true"></i><a class="dark-link" href="http://www.eclipse.org/legal/termsofuse.php">Website terms of use</a></span>
&nbsp; <span class="no-wrap"><i class="fa fa-chevron-circle-right f_mini" aria-hidden="true"></i><a class="dark-link" href="http://www.eclipse.org/legal/copyright.php">Copyright agent</a></span>
&nbsp; <span class="no-wrap"><i class="fa fa-chevron-circle-right f_mini" aria-hidden="true"></i><a class="dark-link" href="http://www.eclipse.org/legal">Legal</a></span>
</div>
<div class="md-footer-power1">
powered by
<a href="http://www.mkdocs.org" title="MkDocs">MkDocs</a>
and
<a href="http://squidfunk.github.io/mkdocs-material/" title="Material for MkDocs">
Material for MkDocs</a><br/><br/>
</div>
</div>
</footer>
</div>
<script src="../assets/javascripts/application.583bbe55.js"></script>
<script>app.initialize({version:"1.0.4",url:{base:".."}})</script>
</body>
</html>