<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-3500187717210273879</atom:id><lastBuildDate>Sun, 04 Mar 2012 12:03:14 +0000</lastBuildDate><category>Thread Race Condition JDBC DriverManager Tomcat 4.1</category><category>.NET Thread Hang Analysis</category><category>Root Cause Analysis Consulting Services</category><category>OutOfMemoryError Native Memory Depletion</category><category>Java Arguments Reference Guide</category><category>Weblogic Authentication Problems</category><category>IBM VM</category><category>OutOfMemoryError Class Loader Leak Weblogic 10</category><category>JDBC Connection Pool Leak Hibernate</category><category>JDK 7 Features</category><category>OutOfMemoryError Web Service EJB3 JBoss 5</category><category>SSL Problems Weblogic 11g</category><category>Common Programming Errors</category><category>Weblogic PermGen Space Tuning</category><category>Oracle JRockit VM</category><category>Java HotSpot PermGen space</category><category>OutOfMemory Help Guide</category><category>HashMap Problems</category><category>Database Connectivity Problems</category><category>Oracle JDBC Driver Debugging</category><category>Native memory monitoring AIX IBM SDK</category><category>Java Heap Analysis Tools</category><category>Java Heap Space</category><category>Java Verbose GC Tutorial</category><category>Java Heap Leak Weblogic 10</category><category>Java Memory Reference Guide</category><category>Heap Dump Analysis</category><category>Java DNS Cache</category><category>Stuck Thread Patterns</category><category>Java EE root cause analysis approach</category><category>High CPU Thread Analysis</category><category>JDBC Connection Pool Leak Weblogic 9</category><category>Thread Dump Training Plan</category><category>NoClassDefFoundError Patterns</category><category>OutOfMemory Oracle Service Bus</category><category>IBM Memory Analyzer Heap Dump Analysis</category><category>Oracle Security Alerts</category><category>Oracle DB ORA Errors</category><category>OutOfMemoryError PermGen Space Leak Weblogic 10</category><category>OutOfMemoryError PermGen patterns</category><category>Order Provisioning System</category><category>Socketread0 Hang Problem</category><category>Web Service Performance Problems</category><category>Class Loader Leak Debugging IBM VM</category><category>OutOfMemoryError Java Heap patterns</category><category>Socket Problem Patterns</category><title>Java EE Support Patterns &amp; Java Tutorial</title><description /><link>http://javaeesupportpatterns.blogspot.com/</link><managingEditor>noreply@blogger.com (P-H)</managingEditor><generator>Blogger</generator><openSearch:totalResults>65</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>5</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/JavaEESupportPatterns" /><feedburner:info uri="javaeesupportpatterns" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>JavaEESupportPatterns</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3500187717210273879.post-5982842019705370319</guid><pubDate>Wed, 29 Feb 2012 13:22:00 +0000</pubDate><atom:updated>2012-02-29T08:25:44.311-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">HashMap Problems</category><title>HashMap.get High CPU – Case Study</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7njT60P9TRM01_txajAFeaOUpjw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7njT60P9TRM01_txajAFeaOUpjw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7njT60P9TRM01_txajAFeaOUpjw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7njT60P9TRM01_txajAFeaOUpjw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-fUXrDAL10RQ/T04kSyeuGjI/AAAAAAAAAkA/Rr-ZqP8Fcsw/s1600/HashMap_get_high_CPU_Case_Study.png" /&gt;&lt;br /&gt;
&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;This article will describe the complete root cause analysis and solution of a &lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 11pt;"&gt;HashMap&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt; High CPU problem (infinite looping) affecting a Weblogic 10.0 environment running on the Java HotSpot VM 1.5.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;This case study will again demonstrate this importance of mastering Thread Dump analysis skill and CPU correlation techniques such as Solaris &lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 11pt;"&gt;prstat&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Environment specifications&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; mso-list: l1 level1 lfo2; tab-stops: list .5in; text-autospace: none; text-indent: -.25in;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Java EE server: Oracle Weblogic Portal 10.0&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; mso-list: l1 level1 lfo2; tab-stops: list .5in; text-autospace: none; text-indent: -.25in;"&gt;&lt;span lang="PT-BR" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="PT-BR" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Middleware OS: Solaris 10&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; mso-list: l1 level1 lfo2; tab-stops: list .5in; text-autospace: none; text-indent: -.25in;"&gt;&lt;span lang="SV" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="SV" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Java VM: Java HotSpot VM 1.5&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; mso-list: l1 level1 lfo2; tab-stops: list .5in; text-autospace: none; text-indent: -.25in;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Platform type: Portal application&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Monitoring and troubleshooting tools&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; mso-list: l1 level1 lfo2; tab-stops: list .5in; text-autospace: none; text-indent: -.25in;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;JVM Thread Dump (HotSpot format)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; mso-list: l1 level1 lfo2; tab-stops: list .5in; text-autospace: none; text-indent: -.25in;"&gt;&lt;span lang="FR-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="FR-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Solaris prstat (CPU contributors analysis)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Problem overview&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; mso-list: l1 level1 lfo2; tab-stops: list .5in; text-autospace: none; text-indent: -.25in;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Problem type: &lt;span style="color: #c00000;"&gt;High CPU&lt;/span&gt;&lt;span style="color: red;"&gt; &lt;/span&gt;observed from our Weblogic production environment&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;A high CPU problem was observed from our Solaris physical servers hosting a Weblogic Portal 10 environment. Users also reporting major slowdown of the portal application.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Gathering and validation of facts&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;As usual, a Java EE problem investigation requires gathering of technical and non-technical facts so we can either derived other facts and/or conclude on the root cause. Before applying a corrective measure, the facts below were verified in order to conclude on the root cause:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; mso-list: l0 level1 lfo1; text-autospace: none; text-indent: -.25in;"&gt;&lt;span lang="EN-CA" style="color: #333399; font-family: Symbol; font-size: 11pt;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;What is the client impact? &lt;span style="color: #c00000;"&gt;HIGH&lt;/span&gt;&lt;span style="color: #333399;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; mso-list: l0 level1 lfo1; text-autospace: none; text-indent: -.25in;"&gt;&lt;span lang="EN-CA" style="color: #333399; font-family: Symbol; font-size: 11pt;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Recent change of the affected platform? &lt;span style="color: navy;"&gt;No&lt;/span&gt;&lt;span style="color: #333399;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; mso-list: l0 level1 lfo1; text-autospace: none; text-indent: -.25in;"&gt;&lt;span lang="EN-CA" style="font-family: Symbol; font-size: 11pt;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Any recent traffic increase to the affected platform? &lt;span style="color: #c00000;"&gt;Yes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; mso-list: l0 level1 lfo1; text-autospace: none; text-indent: -.25in;"&gt;&lt;span lang="EN-CA" style="color: navy; font-family: Symbol; font-size: 11pt;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;How does this high CPU manifest itself?&amp;nbsp; &lt;span style="color: navy;"&gt;A sudden CPU increase was observed and is not going down; even after load goes down e.g. near zero level.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; mso-list: l0 level1 lfo1; text-autospace: none; text-indent: -.25in;"&gt;&lt;span lang="EN-CA" style="color: navy; font-family: Symbol; font-size: 11pt;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Did an Oracle OSB recycle resolve the problem&lt;span style="color: navy;"&gt;? Yes, but problem is returning after few hours or few days (unpredictable pattern)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .25in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; mso-list: l1 level1 lfo2; tab-stops: list .5in; text-autospace: none; text-indent: -.25in;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Conclusion #1&lt;/span&gt;&lt;/b&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;: The high CPU problem appears to be intermittent vs. pure correlation with load&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; mso-list: l1 level1 lfo2; tab-stops: list .5in; text-autospace: none; text-indent: -.25in;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Conclusion #2&lt;/span&gt;&lt;/b&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;: Since high CPU remains after load goes down, this typically indicates either the presence of some infinite looping or heavy processing Threads &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Solaris CPU analysis using prstat&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;&lt;a href="http://javaeesupportpatterns.blogspot.com/2011/12/prstat-solaris-pinpoint-high-cpu-java.html"&gt;Solaris prstat&lt;/a&gt; is a powerful OS command allowing you to obtain the CPU per process but more importantly CPU per Thread within a process. As you can see below from our case study, the CPU utilization was confirmed to go up as high as &lt;span style="color: #c00000;"&gt;100%&lt;/span&gt; utilization (saturation level). &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="color: #17365d; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;## PRSTAT (CPU per Java Thread analysis)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;prstat -L -p 8223 1 1&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="mycode"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="color: #1f497d; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 9pt;"&gt;PID&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 9pt;"&gt; USERNAME&amp;nbsp; SIZE&amp;nbsp;&amp;nbsp; RSS STATE&amp;nbsp; PRI NICE&amp;nbsp;&amp;nbsp;TIME&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #c00000;"&gt;CPU&lt;/span&gt; &amp;nbsp;&lt;span style="color: #e36c0a;"&gt;PROCESS/LWPID&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="color: #1f497d; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 9pt;"&gt;8223&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 9pt;"&gt; bea10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2809M 2592M sleep&amp;nbsp;&amp;nbsp; 59&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 14:52:59 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #c00000;"&gt;38.6%&lt;/span&gt;&lt;span style="color: red;"&gt; &lt;/span&gt;java/&lt;span style="color: #e36c0a;"&gt;494&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="color: #1f497d; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 9pt;"&gt;8223&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 9pt;"&gt; bea10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2809M 2592M sleep&amp;nbsp;&amp;nbsp; 57&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 12:28:05 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #c00000;"&gt;22.3%&lt;/span&gt; java/325&lt;/span&gt;&lt;span lang="EN-CA"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="color: #1f497d; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 9pt;"&gt;8223&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 9pt;"&gt; bea10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2809M 2592M sleep&amp;nbsp;&amp;nbsp; 59&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 11:52:02 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #c00000;"&gt;28.3%&lt;/span&gt; java/412&lt;/span&gt;&lt;span lang="EN-CA"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="color: #1f497d; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 9pt;"&gt;8223&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 9pt;"&gt; bea10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2809M 2592M sleep&amp;nbsp;&amp;nbsp; 59&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 5:50:00 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.3% java/84&lt;/span&gt;&lt;span lang="EN-CA"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="color: #1f497d; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 9pt;"&gt;8223&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 9pt;"&gt; bea10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2809M 2592M sleep&amp;nbsp;&amp;nbsp; 58&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 2:27:20 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.2% java/43&lt;/span&gt;&lt;span lang="EN-CA"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="color: #1f497d; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 9pt;"&gt;8223&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 9pt;"&gt; bea10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2809M 2592M sleep&amp;nbsp;&amp;nbsp; 59&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 1:39:42 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.2% java/41287&lt;/span&gt;&lt;span lang="EN-CA"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="color: #1f497d; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 9pt;"&gt;8223&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 9pt;"&gt; bea10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2809M 2592M sleep&amp;nbsp;&amp;nbsp; 59&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 4:41:44 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.2% java/30503&lt;/span&gt;&lt;span lang="EN-CA"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="color: #1f497d; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 9pt;"&gt;8223&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 9pt;"&gt; bea10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2809M 2592M sleep&amp;nbsp;&amp;nbsp; 59&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 5:58:32 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.2% java/36116&lt;/span&gt;&lt;span lang="EN-CA"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 9pt;"&gt;……………………………………………………………………………………&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;As you can see from above data, 3 Java Threads were found using together close to 100% of the CPU utilization.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;For our root cause analysis, we did focus on Thread #&lt;span style="color: #1f497d;"&gt;494&lt;/span&gt; (decimal format) corresponding to &lt;span style="color: #1f497d;"&gt;0x1ee&lt;/span&gt; (HEXA format).&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Thread Dump analysis and PRSTAT correlation&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Once the culprit Threads were identified, the next step was to correlate this data with the Thread Dump data (&lt;i style="mso-bidi-font-style: normal;"&gt;which was captured exactly at the same time as prstat&lt;/i&gt;).&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;A quick search within the generated Thread Dump file did reveal the Thread Stack Trace (Weblogic Stuck Thread #125) for &lt;span style="color: #1f497d;"&gt;0x1ee&lt;/span&gt; as per below. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="mycode"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;"[STUCK] ExecuteThread: '125' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=1 tid=0x014c5030 &lt;span style="color: #c00000;"&gt;nid=0x1ee&lt;/span&gt; runnable [0x536fb000..0x536ffc70]&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.util.HashMap.get(HashMap.java:346)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis.encoding.TypeMappingImpl.getClassForQName(TypeMappingImpl.java:715)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis.encoding.TypeMappingDelegate.getClassForQName(TypeMappingDelegate.java:170)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis.encoding.TypeMappingDelegate.getClassForQName(TypeMappingDelegate.java:160)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis.encoding.TypeMappingImpl.getDeserializer(TypeMappingImpl.java:454)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis.encoding.TypeMappingDelegate.getDeserializer(TypeMappingDelegate.java:108)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis.encoding.TypeMappingDelegate.getDeserializer(TypeMappingDelegate.java:102)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis.encoding.DeserializationContext.getDeserializer(DeserializationContext.java:457)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis.encoding.DeserializationContext.getDeserializerForType(DeserializationContext.java:547)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis.encoding.ser.BeanDeserializer.getDeserializer(BeanDeserializer.java:514)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:286)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis.client.Call.invoke(Call.java:2467)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis.client.Call.invoke(Call.java:2366)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.axis.client.Call.invoke(Call.java:1812)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;…………………………………………………………………………………………………………………………………………&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Thread Dump analysis – HashMap.get() infinite loop condition!&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;As you can see from the above Thread Stack Trace, the Thread is currently stuck in an infinite loop over a java.util.HashMap that originates from the Apache Axis &lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 11pt;"&gt;TypeMappingImpl&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt; Java class.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;This finding was quite revealing. The 2 others Threads using high CPU also did reveal infinite looping condition within the same Apache Axis HashMap Object.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Root cause: non Thread safe HashMap in Apache Axis 1.4&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Additional research did reveal this &lt;a href="https://issues.apache.org/jira/browse/AXIS-2498"&gt;known defect&lt;/a&gt; affecting Apache Axis 1.4; which is the version that our application was using.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;As you may already know, usage of non Thread safe / non synchronized HashMap under concurrent Threads condition is very dangerous and can easily lead to internal HashMap index corruption and / or infinite looping. This is also a golden rule for any middleware software such as Oracle Weblogic, IBM WAS, Red Hat JBoss which rely heavily on HashMap data structures from various Java EE and caching services.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Such best practice is also applicable for any Open Source third party API such as Apache Axis.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;The most common solution is to use the ConcurrentHashMap data structure which is designed for that type of concurrent Thread execution context.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Solution&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Our team did apply the proposed patch from Apache (&lt;i style="mso-bidi-font-style: normal;"&gt;synchronize the non Thread safe HashMap)&lt;/i&gt; which did resolve the problem. We are also currently looking at upgrading our application to a&amp;nbsp; newer version of Apache Axis.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; mso-outline-level: 1; text-autospace: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;&lt;span style="font-size: large;"&gt;Conclusion&lt;/span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;I hope this case study has helped you understand how to pinpoint the root cause of high CPU Threads and the importance of proper Thread safe data structure for high concurrent Thread / processing applications.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Please don’t hesitate to post any comment or question. &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3500187717210273879-5982842019705370319?l=javaeesupportpatterns.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JavaEESupportPatterns/~4/dDKCFSBQnh8" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JavaEESupportPatterns/~3/dDKCFSBQnh8/hashmapget-high-cpu-case-study.html</link><author>noreply@blogger.com (P-H)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-fUXrDAL10RQ/T04kSyeuGjI/AAAAAAAAAkA/Rr-ZqP8Fcsw/s72-c/HashMap_get_high_CPU_Case_Study.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://javaeesupportpatterns.blogspot.com/2012/02/hashmapget-high-cpu-case-study.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3500187717210273879.post-3498080552810156824</guid><pubDate>Fri, 24 Feb 2012 11:14:00 +0000</pubDate><atom:updated>2012-02-29T21:57:09.629-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Oracle JRockit VM</category><title>Java Heap Space – JRockit VM</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Jy4AOUUr_SLWOV6BCNRm6o6yZsg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Jy4AOUUr_SLWOV6BCNRm6o6yZsg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Jy4AOUUr_SLWOV6BCNRm6o6yZsg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Jy4AOUUr_SLWOV6BCNRm6o6yZsg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-2KEW6riguyk/T0dwTT5P7xI/AAAAAAAAAjw/NLA0GiDkFXo/s1600/Java_Heap_Space_Oracle_JRockit_VM.png" /&gt;&lt;br /&gt;
&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;This article will provide you with an overview of the JRockit Java Heap Space vs. the HotSpot VM. It will also provide you some background on Oracle future plans regarding JRockit &amp;amp; HotSpot.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Oracle JRockit VM Java Heap: 2 different memory spaces&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;The JRockit VM memory is split between 2 memory spaces:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; mso-list: l0 level1 lfo1; tab-stops: list .5in; text-autospace: none; text-indent: -.25in;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;The Java Heap (YoungGen and OldGen)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; mso-list: l0 level1 lfo1; tab-stops: list .5in; text-autospace: none; text-indent: -.25in;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;The Native Heap (C-Heap)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext; mso-padding-alt: 2.85pt 5.4pt 2.85pt 5.4pt; mso-yfti-tbllook: 480;"&gt;&lt;tbody&gt;
&lt;tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"&gt;   &lt;td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 2.85pt 5.4pt 2.85pt 5.4pt; width: .95in;" valign="top" width="114"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Memory Space&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 2.85pt 5.4pt 2.85pt 5.4pt; width: 135.0pt;" valign="top" width="225"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Start-up arguments and tuning&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 2.85pt 5.4pt 2.85pt 5.4pt; width: 1.25in;" valign="top" width="150"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Monitoring strategies&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 2.85pt 5.4pt 2.85pt 5.4pt; width: 135.0pt;" valign="top" width="225"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Description&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 1;"&gt;   &lt;td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.85pt 5.4pt 2.85pt 5.4pt; width: .95in;" valign="top" width="114"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Java   Heap&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.85pt 5.4pt 2.85pt 5.4pt; width: 135.0pt;" valign="top" width="225"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-Xmx   (maximum Heap space)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-Xms (minimum   Heap size)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;EX: &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 11pt;"&gt;-Xmx1024m&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 11pt;"&gt;-Xms1024m&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.85pt 5.4pt 2.85pt 5.4pt; width: 1.25in;" valign="top" width="150"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-   verbose GC&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;- JMX   API&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;- JRockit   Mission Control tools suite&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.85pt 5.4pt 2.85pt 5.4pt; width: 135.0pt;" valign="top" width="225"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;The JRockit   Java Heap is typically split between the &lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 11pt;"&gt;YoungGen&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt; (short-lived   objects), &lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 11pt;"&gt;OldGen&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt; (long-lived   objects).&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 2; mso-yfti-lastrow: yes;"&gt;   &lt;td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.85pt 5.4pt 2.85pt 5.4pt; width: .95in;" valign="top" width="114"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Native   Heap&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;&amp;nbsp;(C-Heap)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.85pt 5.4pt 2.85pt 5.4pt; width: 135.0pt;" valign="top" width="225"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Not   configurable directly.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;For a   32-bit VM, the C-Heap capacity = 4 Gig – Java Heap &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;For a   64-bit VM, the C-Heap capacity = Physical server total RAM &amp;amp; virtual   memory – Java Heap &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.85pt 5.4pt 2.85pt 5.4pt; width: 1.25in;" valign="top" width="150"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;- Total   process size check in Windows and Linux&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;- pmap   command on Solaris &amp;amp; Linux&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.85pt 5.4pt 2.85pt 5.4pt; width: 135.0pt;" valign="top" width="225"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;The JRockit   Native Heap is storing objects such as library files, other JVM and third   party native code objects.&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Where is the PermGen space?&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Similar to the IBM VM, there is no PermGen space for the JRockit VM. The PermGen space is only applicable to the HotSpot VM. The JRockit VM is using the Native Heap for Class metadata related data. Also, as you probably saw from my other article, Oracle Sun is also starting to remove the PermGen space for the HotSpot VM.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Why is the JRockit VM Java process using more memory than HotSpot VM?&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;The JRockit VM tend to uses more native memory in exchange for better performance. JRockit does not have an interpretation mode, compilation only, so due to its additional native memory needs the process size tends to use a couple of hundred MB larger than the equivalent Sun JVM size. This should not be a big problem unless you are using a 32-bit JRockit with a large Java Heap requirement; in this scenario, the risk of OutOfMemoryError due to Native Heap depletion is higher for a JRockit VM (e.g. for a 32-bit VM, bigger is the Java Heap, smaller is memory left for the Native Heap).&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;What is Oracle’s plan for JRockit?&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Current Oracle JVM strategy is to &lt;u&gt;merge&lt;/u&gt; both HotSpot and JRockit product lines to a single JVM project that will include the best features of each VM. This will also simplify JVM tuning since right now failure to understand the differences between these 2 VM’s can lead to bad tuning recommendations and performance problems.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Please feel free to post any comment or question on the JRockit VM.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3500187717210273879-3498080552810156824?l=javaeesupportpatterns.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JavaEESupportPatterns/~4/ttNUjpLfLIQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JavaEESupportPatterns/~3/ttNUjpLfLIQ/java-heap-space-jrockit-vm.html</link><author>noreply@blogger.com (P-H)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-2KEW6riguyk/T0dwTT5P7xI/AAAAAAAAAjw/NLA0GiDkFXo/s72-c/Java_Heap_Space_Oracle_JRockit_VM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://javaeesupportpatterns.blogspot.com/2012/02/java-heap-space-jrockit-vm.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3500187717210273879.post-3002954000888253479</guid><pubDate>Wed, 22 Feb 2012 22:19:00 +0000</pubDate><atom:updated>2012-02-22T17:21:22.076-05:00</atom:updated><title>Weblogic Free Consultation</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2RHAsOQdsvoC4BhibmEdpNqrZsI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2RHAsOQdsvoC4BhibmEdpNqrZsI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2RHAsOQdsvoC4BhibmEdpNqrZsI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2RHAsOQdsvoC4BhibmEdpNqrZsI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-su-OwYJM7Ck/T0VpfpkiRYI/AAAAAAAAAjo/3HBVGD9k2qI/s1600/Weblogic_free_consultation.png" /&gt;&lt;br /&gt;
&lt;div class="MsoNormal"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;This post is to inform you that I provide free Weblogic consulting services via this Blog &lt;a href="http://javaeesupportpatterns.blogspot.com/p/java-ee-forum_25.html"&gt;root cause analysis forum&lt;/a&gt; &amp;amp; email. I will do my very best to provide you with guidance and share with you my tips on how resolve common Weblogic problems along with best practices.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;My expertise background is as per below:&lt;/span&gt;&lt;span lang="EN-CA" style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .25in; mso-layout-grid-align: none; mso-list: l1 level1 lfo1; text-indent: -.25in;"&gt;&lt;span lang="EN-CA" style="font-family: Symbol; font-size: 11pt;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;10 years of experience with development, support and hardening of Java EE systems and currently working as a full time employee at CGI Inc. Canada&lt;/span&gt;&lt;span lang="EN-CA" style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .25in; mso-layout-grid-align: none; mso-list: l1 level1 lfo1; text-indent: -.25in;"&gt;&lt;span lang="EN-CA" style="font-family: Symbol; font-size: 11pt;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Deep understanding and experience with Java EE containers such as Oracle Weblogic, Red Hat JBoss, Tomcat etc.&lt;/span&gt;&lt;span lang="EN-CA" style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .25in; mso-layout-grid-align: none; mso-list: l1 level1 lfo1; text-indent: -.25in;"&gt;&lt;span lang="EN-CA" style="font-family: Symbol; font-size: 11pt;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Deep understanding and experience of JVM tuning (Sun HotSpot, IBM JRE, Oracle JRockit)&lt;/span&gt;&lt;span lang="EN-CA" style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .25in; mso-layout-grid-align: none; mso-list: l1 level1 lfo1; text-indent: -.25in;"&gt;&lt;span lang="EN-CA" style="font-family: Symbol; font-size: 11pt;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Specialized in root cause analysis, performance tuning and advanced troubleshooting&lt;/span&gt;&lt;span lang="EN-CA" style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Why is my IT consulting service from this Blog free? My goal is to create a solid knowledge base of &lt;span style="color: black;"&gt;Java EE support patterns&lt;/span&gt; on this Blog and share with Java EE production support individuals across the world. You can simply reward me by sharing this Blog with your other work colleagues and friends. With your approval, I might also use your problem case and create an article.&lt;/span&gt;&lt;span lang="EN-CA" style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none;"&gt;&lt;span lang="EN-CA" style="font-size: 11pt;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Weblogic consulting – a simple 2 steps process&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .25in; mso-layout-grid-align: none; mso-list: l0 level1 lfo2; text-indent: -.25in;"&gt;&lt;span lang="EN-CA" style="font-family: Symbol; font-size: 11pt;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Email me &lt;a href="mailto:phcharbonneau@hotmail.com"&gt;@phcharbonneau&lt;/a&gt; with your captured performance data or download link (Thread Dump, app &amp;amp; server logs etc. captured during your incident). Please also provide the specifications of your environment (&lt;i style="mso-bidi-font-style: normal;"&gt;Java EE server vendor &amp;amp; version, Java VM vendor and version etc.&lt;/i&gt;) and a high level description of your problem.&lt;/span&gt;&lt;span lang="EN-CA" style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .25in; mso-layout-grid-align: none; mso-list: l0 level1 lfo2; text-indent: -.25in;"&gt;&lt;span lang="EN-CA" style="font-family: Symbol; font-size: 11pt;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Wait for my initial reply. I will do my best to provide you with a quick answer in less than 24 hours. An IM session could be scheduled, if required. &lt;/span&gt;&lt;span lang="EN-CA" style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none;"&gt;&lt;span lang="EN-CA" style="font-size: 11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-CA" style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;I'm looking forward to hear from you!&lt;/span&gt;&lt;span lang="EN-CA" style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Regards,&lt;/span&gt;&lt;span lang="EN-CA" style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Pierre-Hugues Charbonneau&lt;/span&gt;&lt;span lang="FR-CA" style="font-size: 11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span lang="FR-CA" style="font-size: 11pt;"&gt;&lt;a href="http://javaeesupportpatterns.blogspot.com/"&gt;http://javaeesupportpatterns.blogspot.com/&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-CA" style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3500187717210273879-3002954000888253479?l=javaeesupportpatterns.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JavaEESupportPatterns/~4/HXuTWlp1vdo" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JavaEESupportPatterns/~3/HXuTWlp1vdo/weblogic-free-consultation.html</link><author>noreply@blogger.com (P-H)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-su-OwYJM7Ck/T0VpfpkiRYI/AAAAAAAAAjo/3HBVGD9k2qI/s72-c/Weblogic_free_consultation.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://javaeesupportpatterns.blogspot.com/2012/02/weblogic-free-consultation.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3500187717210273879.post-8655477353887851892</guid><pubDate>Wed, 22 Feb 2012 13:25:00 +0000</pubDate><atom:updated>2012-02-22T08:46:05.085-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Thread Dump Training Plan</category><title>How to analyze Thread Dump – Part 3: HotSpot VM</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/BigIMy0i9vheuKTdAWPnGmnc3hs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BigIMy0i9vheuKTdAWPnGmnc3hs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/BigIMy0i9vheuKTdAWPnGmnc3hs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BigIMy0i9vheuKTdAWPnGmnc3hs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-VCa_awu71Ks/T0TpvO5ln0I/AAAAAAAAAjI/-ev9WHIEW_s/s1600/Thread_Dump_analysis_part3.png" /&gt;&lt;br /&gt;
&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;This is part 3 of our Thread Dump analysis series which will provide you with an overview of what is a JVM Thread Dump for the HotSpot VM and the different Threads that you will find. Detail for the IBM VM Thread Dump format will be provided in the part 4.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Please note that you will find the Thread Dump sample used for this article from the &lt;a href="http://javaeesupportpatterns.blogspot.com/p/java-ee-forum_25.html"&gt;root cause analysis forum.&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;JVM Thread Dump – what is it?&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;A JVM Thread Dump is a snapshot taken at a given time which provides you with a complete listing of all created Java Threads. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Each individual Java Thread found gives you information such as:&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 11pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; mso-list: l0 level1 lfo1; text-autospace: none; text-indent: -.25in;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="color: #1f497d; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Thread name&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;; often used by middleware vendors to identify the Thread Id along with its associated Thread Pool name and state (running, stuck etc.)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; mso-list: l0 level1 lfo1; text-autospace: none; text-indent: -.25in;"&gt;&lt;br /&gt;
&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="color: #1f497d; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Thread type &amp;amp; priority&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt; ex:&lt;/span&gt;&lt;span lang="EN-CA"&gt; &lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 11pt;"&gt;daemon prio=3 &lt;/span&gt;&lt;i style="mso-bidi-font-style: normal;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;** middleware softwares typically create their Threads as daemon meaning their Threads are running in background; providing services to its user e.g. your Java EE application **&lt;/span&gt;&lt;/i&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 11pt;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; mso-list: l0 level1 lfo1; text-autospace: none; text-indent: -.25in;"&gt;&lt;br /&gt;
&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="color: #1f497d; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Java Thread ID&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt; ex:&lt;/span&gt;&lt;span lang="EN-CA"&gt; &lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 11pt;"&gt;tid=0x000000011e52a800 &lt;/span&gt;&lt;i style="mso-bidi-font-style: normal;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;** This is the Java Thread Id obtained via java.lang.Thread.getId() and usually implemented as an auto-incrementing long 1..n**&lt;/span&gt;&lt;/i&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; mso-list: l0 level1 lfo1; text-autospace: none; text-indent: -.25in;"&gt;&lt;br /&gt;
&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="color: #1f497d; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Native Thread ID&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt; ex:&lt;/span&gt;&lt;span lang="EN-CA"&gt; &lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 11pt;"&gt;nid=0x251c&lt;/span&gt;&lt;i style="mso-bidi-font-style: normal;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;** Crucial information as this native Thread Id allows you to correlate for example which Threads from an OS perspective are using the most CPU within your JVM etc. **&lt;/span&gt;&lt;/i&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; mso-list: l0 level1 lfo1; text-autospace: none; text-indent: -.25in;"&gt;&lt;br /&gt;
&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="color: #1f497d; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Java Thread State and detail&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt; ex:&lt;/span&gt;&lt;span lang="EN-CA"&gt; &lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;waiting for monitor entry [0xfffffffea5afb000] java.lang.Thread.State: BLOCKED (on object monitor)&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 11pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;i style="mso-bidi-font-style: normal;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 9pt;"&gt;**&lt;/span&gt;&lt;/i&gt;&lt;i style="mso-bidi-font-style: normal;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt; Allows to quickly learn about Thread state and its potential current blocking condition **&lt;/span&gt;&lt;/i&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 11pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; mso-list: l0 level1 lfo1; text-autospace: none; text-indent: -.25in;"&gt;&lt;br /&gt;
&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="color: #1f497d; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Java Thread Stack Trace&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;; this is by far the most important data that you will find from the Thread Dump. This is also where you will spent most of your analysis time since the Java Stack Trace provides you with 90% of the information that you need in order to pinpoint root cause of many problem pattern types as you will learn later in the training sessions&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 11pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; mso-list: l0 level1 lfo1; text-autospace: none; text-indent: -.25in;"&gt;&lt;br /&gt;
&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="color: #1f497d; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Java Heap breakdown&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;; starting with HotSpot VM 1.6, you will also find at the bottom of the Thread Dump snapshot a breakdown of the HotSpot memory spaces utilization such as your Java Heap (YoungGen, OldGen) &amp;amp; PermGen space. This is quite useful when excessive GC is suspected as a possible root cause so you can do out-of-the-box correlation with Thread data / patterns found&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 8pt;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 8pt;"&gt;Heap&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 8pt;"&gt;&amp;nbsp;&lt;span style="color: #1f497d;"&gt;PSYoungGen&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; total 466944K, used 178734K [0xffffffff45c00000, 0xffffffff70800000, 0xffffffff70800000)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 8pt;"&gt;&amp;nbsp; eden space 233472K, 76% used [0xffffffff45c00000,0xffffffff50ab7c50,0xffffffff54000000)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 8pt;"&gt;&amp;nbsp; from space 233472K, 0% used [0xffffffff62400000,0xffffffff62400000,0xffffffff70800000)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 8pt;"&gt;&amp;nbsp; to&amp;nbsp;&amp;nbsp; space 233472K, 0% used [0xffffffff54000000,0xffffffff54000000,0xffffffff62400000)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 8pt;"&gt;&amp;nbsp;&lt;span style="color: #1f497d;"&gt;PSOldGen&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; total 1400832K, used 1400831K [0xfffffffef0400000, 0xffffffff45c00000, 0xffffffff45c00000)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 8pt;"&gt;&amp;nbsp; object space 1400832K, 99% used [0xfffffffef0400000,0xffffffff45bfffb8,0xffffffff45c00000)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 8pt;"&gt;&amp;nbsp;&lt;span style="color: #1f497d;"&gt;PSPermGen&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; total 262144K, used 248475K [0xfffffffed0400000, 0xfffffffee0400000, 0xfffffffef0400000)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 8pt;"&gt;&amp;nbsp; object space 262144K, 94% used [0xfffffffed0400000,0xfffffffedf6a6f08,0xfffffffee0400000)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Thread Dump breakdown overview&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;In order for you to better understand, find below a diagram showing you a visual breakdown of a HotSpot VM Thread Dump and its common Thread Pools found:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-PQZ6vU8hhK0/T0TqdW130FI/AAAAAAAAAjQ/4TxJd81h8vs/s1600/Thread_Dump_view_HotSpot_VM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-PQZ6vU8hhK0/T0TqdW130FI/AAAAAAAAAjQ/4TxJd81h8vs/s1600/Thread_Dump_view_HotSpot_VM.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;As you can there are several pieces of information that you can find from a HotSpot VM Thread Dump. Some of these pieces will be more important than others depending of your problem pattern (problem patterns will be simulated and explained in future articles).&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;For now, find below a detailed explanation for each Thread Dump section as per our &lt;a href="http://javaeesupportpatterns.blogspot.com/p/java-ee-forum_25.html"&gt;sample&lt;/a&gt; HotSpot Thread Dump:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="color: #1f497d; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;# Full thread dump identifier&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;This is basically the unique keyword that you will find in your middleware / standalong Java standard output log once you generate a Thread Dump (ex: via kill -3 &amp;lt;PID&amp;gt; for UNIX). This is the beginning of the Thread Dump snapshot data.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="mycode"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;Full thread dump Java HotSpot(TM) 64-Bit Server VM (20.0-b11 mixed mode):&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="color: #1f497d; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;# Java EE middleware, third party &amp;amp; custom application Threads&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;This portion is the core of the Thread Dump and where you will typically spend most of your analysis time. The number of Threads found will depend on your middleware software that you use, third party libraries (that might have its own Threads) and your application (&lt;i style="mso-bidi-font-style: normal;"&gt;if creating any custom Thread, which is generally not a best practice&lt;/i&gt;). &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;In our sample Thread Dump, Weblogic is the middleware used. Starting with Weblogic 9.2, a self-tuning Thread Pool is used with unique identifier “&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 9pt;"&gt;'weblogic.kernel.Default (self-tuning)” &lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="mycode"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;"[STANDBY] ExecuteThread: '414' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=3 tid=0x000000010916a800 nid=0x2613 in Object.wait() [0xfffffffe9edff000]&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp; java.lang.Thread.State: WAITING (on object monitor)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.Object.wait(Native Method)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - waiting on &amp;lt;0xffffffff27d44de0&amp;gt; (a weblogic.work.ExecuteThread)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="FR-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;at java.lang.Object.wait(Object.java:485)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="FR-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;at weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:160)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- locked &amp;lt;0xffffffff27d44de0&amp;gt; (a weblogic.work.ExecuteThread)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="color: #1f497d; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;# HotSpot VM Thread&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;This is an internal Thread managed by the HotSpot VM in order to perform internal native operations. Typically you should not worry about this one unless you see high CPU (via Thread Dump &amp;amp; prstat / native Thread id correlation).&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="mycode"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;"VM Periodic Task Thread" prio=3 tid=0x0000000101238800 nid=0x19 waiting on condition&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="color: #1f497d; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;# HotSpot GC Thread&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;When using HotSpot parallel GC (quite common these days when using multi physical cores hardware), the HotSpot VM create by default or as per your JVM tuning a certain # of GC Threads. These GC Threads allow the VM to perform its periodic GC cleanups in a parallel manner, leading to an overall reduction of the GC time; at the expense of increased CPU utilization.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="mycode"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 11pt;"&gt;"GC task thread#0 (ParallelGC)" prio=3 tid=0x0000000100120000 nid=0x3 runnable &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 11pt;"&gt;"GC task thread#1 (ParallelGC)" prio=3 tid=0x0000000100131000 nid=0x4 runnable&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 11pt;"&gt;………………………………………………………………………………………………………………………………………………………………&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;This is crucial data as well since when facing GC related problems such as excessive GC, memory leaks etc, you will be able to correlate any high CPU observed from the OS / Java process(es) with these Threads using their native id value (nid=0x3). You will learn how to identify and confirm this problem is future articles.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="color: #1f497d; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;# JNI global references count&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;JNI (Java Native Interface) global references are basically Object references from the native code to a Java object managed by the Java garbage collector. Its role is to prevent collection of an object that is still in use by native code but technically with no "live" references in the Java code.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;It is also important to keep an eye on JNI references in order to detect JNI related leaks. This can happen if you program use JNI directly or using third party tools like monitoring tools which are prone to native memory leaks.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="mycode"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 11pt;"&gt;JNI global references: 1925&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="color: #1f497d; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;# Java Heap utilization view&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;This data was added back to JDK 1 .6 and provides you with a short and fast view of your HotSpot Heap. I find it quite useful when troubleshooting GC related problems along with HIGH CPU since you get both Thread Dump &amp;amp; Java Heap in a single snapshot allowing you to determine (or to rule out) any pressure point in a particular Java Heap memory space along with current Thread computing currently being done at that time. As you can see in our sample Thread Dump, the Java Heap OldGen is maxed out!&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;div class="mycode"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;Heap&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;PSYoungGen&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; total 466944K, used 178734K [0xffffffff45c00000, 0xffffffff70800000, 0xffffffff70800000)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp; eden space 233472K, 76% used [0xffffffff45c00000,0xffffffff50ab7c50,0xffffffff54000000)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp; from space 233472K, 0% used [0xffffffff62400000,0xffffffff62400000,0xffffffff70800000)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp; to&amp;nbsp;&amp;nbsp; space 233472K, 0% used [0xffffffff54000000,0xffffffff54000000,0xffffffff62400000)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;&lt;span style="color: red;"&gt;PSOldGen&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; total 1400832K, used 1400831K [0xfffffffef0400000, 0xffffffff45c00000, 0xffffffff45c00000)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp; object space &lt;span style="color: red;"&gt;1400832K, 99% used&lt;/span&gt; [0xfffffffef0400000,0xffffffff45bfffb8,0xffffffff45c00000)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp;PSPermGen&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; total 262144K, used 248475K [0xfffffffed0400000, 0xfffffffee0400000, 0xfffffffef0400000)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt;"&gt;&amp;nbsp; object space 262144K, 94% used [0xfffffffed0400000,0xfffffffedf6a6f08,0xfffffffee0400000)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;I hope this article has helped to understand the basic view of a HotSpot VM Thread Dump.The next article will provide you this same Thread Dump overview and breakdown for the IBM VM.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Please feel free to post any comment or question.&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 11pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3500187717210273879-8655477353887851892?l=javaeesupportpatterns.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JavaEESupportPatterns/~4/iUAXPf8ZgcM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JavaEESupportPatterns/~3/iUAXPf8ZgcM/how-to-analyze-thread-dump-part-3.html</link><author>noreply@blogger.com (P-H)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-VCa_awu71Ks/T0TpvO5ln0I/AAAAAAAAAjI/-ev9WHIEW_s/s72-c/Thread_Dump_analysis_part3.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://javaeesupportpatterns.blogspot.com/2012/02/how-to-analyze-thread-dump-part-3.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3500187717210273879.post-3112939134552862283</guid><pubDate>Thu, 16 Feb 2012 15:08:00 +0000</pubDate><atom:updated>2012-02-29T21:57:59.608-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">IBM VM</category><title>Java Heap Space – IBM VM</title><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/z_kyq2oduTBrkPz4MR2C7IlgFZ0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/z_kyq2oduTBrkPz4MR2C7IlgFZ0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/z_kyq2oduTBrkPz4MR2C7IlgFZ0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/z_kyq2oduTBrkPz4MR2C7IlgFZ0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-Xvb8Rr64mzY/Tz0bC3M4NcI/AAAAAAAAAhs/us3Fk0gW6Yc/s1600/Java_Heap_Space_IBM_VM.png" /&gt;&lt;br /&gt;
&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;This short article will provide you with a high level overview of the different Java memory spaces for the IBM VM.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;This understanding is quite important given the implementation &amp;amp; naming convention differences between HotSpot &amp;amp; IBM VM.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;u&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;&lt;span style="text-decoration: none;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;IBM VM: 2 different memory spaces&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;The IBM VM memory is split between 2 memory spaces:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; mso-list: l0 level1 lfo1; tab-stops: list .5in; text-autospace: none; text-indent: -.25in;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;The Java Heap (nursery and tenured spaces)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-layout-grid-align: none; mso-list: l0 level1 lfo1; tab-stops: list .5in; text-autospace: none; text-indent: -.25in;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;The Native Heap (C-Heap)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 2.85pt 5.4pt 2.85pt 5.4pt; mso-yfti-tbllook: 480;"&gt;&lt;tbody&gt;
&lt;tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"&gt;   &lt;td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 2.85pt 5.4pt 2.85pt 5.4pt; width: .95in;" valign="top" width="114"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Memory Space&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 2.85pt 5.4pt 2.85pt 5.4pt; width: 135.0pt;" valign="top" width="225"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Start-up arguments and tuning&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 2.85pt 5.4pt 2.85pt 5.4pt; width: 1.25in;" valign="top" width="150"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Monitoring strategies&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 2.85pt 5.4pt 2.85pt 5.4pt; width: 135.0pt;" valign="top" width="225"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Description&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 1;"&gt;   &lt;td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.85pt 5.4pt 2.85pt 5.4pt; width: .95in;" valign="top" width="114"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Java   Heap&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.85pt 5.4pt 2.85pt 5.4pt; width: 135.0pt;" valign="top" width="225"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-Xmx   (maximum Heap space)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-Xms (minimum   Heap size)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;EX: &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-Xmx1024m&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-Xms1024m&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;GC   policy Ex:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-Xgcpolicy:gencon   (enable gencon GC policy)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.85pt 5.4pt 2.85pt 5.4pt; width: 1.25in;" valign="top" width="150"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;-   verbose GC&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;- JMX   API&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;- IBM monitoring tools&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.85pt 5.4pt 2.85pt 5.4pt; width: 135.0pt;" valign="top" width="225"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;The IBM Java   Heap is typically split between the nursery and tenured space (YoungGen,   OldGen).&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;The gencon   GC policy (combo of concurrent and generational GC) is typically used for   Java EE platforms in order to minimize the GC pause time.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 2; mso-yfti-lastrow: yes;"&gt;   &lt;td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.85pt 5.4pt 2.85pt 5.4pt; width: .95in;" valign="top" width="114"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Native   Heap&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;&amp;nbsp;(C-Heap)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.85pt 5.4pt 2.85pt 5.4pt; width: 135.0pt;" valign="top" width="225"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Not   configurable directly.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;For a   32-bit VM, the C-Heap capacity = 4 Gig – Java Heap &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;For a   64-bit VM, the C-Heap capacity = Physical server total RAM &amp;amp; virtual   memory – Java Heap &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.85pt 5.4pt 2.85pt 5.4pt; width: 1.25in;" valign="top" width="150"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;- Total   process size check in Windows and Linux&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;- pmap   command on Linux&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;- svmon   command on AIX&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.85pt 5.4pt 2.85pt 5.4pt; width: 135.0pt;" valign="top" width="225"&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;The   C-Heap is storing objects such as library files, other JVM and third party   native code objects.&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-size: large;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Where is the PermGen space?&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;i style="mso-bidi-font-style: normal;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;This is by far the most typical question I get from Java EE support individuals supporting an IBM VM environment for this first time. The answer: there is no PermGen space for the IBM VM. The PermGen space is only applicable to the HotSpot VM. The IBM VM is using the Native Heap for Class metadata related data. Also, as you probably saw from my other article, Oracle / Sun is also starting to &lt;a href="http://javaeesupportpatterns.blogspot.com/2011/10/java-7-features-permgen-removal.html"&gt;remove the PermGen&lt;/a&gt; space for the HotSpot VM.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;The next article will provide you a tutorial on how to enable and analyze verbose GC for an IBM VM.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-CA" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;Please feel free to post any comment or question on the IBM VM.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3500187717210273879-3112939134552862283?l=javaeesupportpatterns.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JavaEESupportPatterns/~4/e3VbYHFZUIw" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JavaEESupportPatterns/~3/e3VbYHFZUIw/java-heap-space-ibm-vm.html</link><author>noreply@blogger.com (P-H)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-Xvb8Rr64mzY/Tz0bC3M4NcI/AAAAAAAAAhs/us3Fk0gW6Yc/s72-c/Java_Heap_Space_IBM_VM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://javaeesupportpatterns.blogspot.com/2012/02/java-heap-space-ibm-vm.html</feedburner:origLink></item></channel></rss>

