<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
   <channel>
      <title>Marcus Hirt&apos;s Blog</title>
      <link>http://blogs.oracle.com/hirt/</link>
      <description>A blog focused on JRockit and JRockit Mission Control</description>
      <language>en</language>
      <copyright>Copyright 2009</copyright>
      <lastBuildDate>Mon, 14 Sep 2009 18:10:09 +0100</lastBuildDate>
      <generator>http://www.sixapart.com/movabletype/</generator>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs> 

      
      <item>
         <title>JRockit Mission Control @ OOW 2009</title>
         <description><![CDATA[<p>There are a bunch of JRockit related sessions at OOW 2009! Joy! </p>  <p>Here are the ones I am involved in:</p>  <table border="0" cellspacing="0" cellpadding="2" width="538"><tbody>     <tr>       <td valign="top" width="81">Session ID</td>        <td valign="top" width="245">Session Title</td>        <td valign="top" width="92">Date/Time</td>        <td valign="top" width="118">Room</td>     </tr>      <tr>       <td valign="top" width="81">         <p>S309689</p>       </td>        <td valign="top" width="245"><a href="http://www20.cplan.com/cc221_new/session_details.jsp?isid=309689&amp;ilocation_id=221-1&amp;ilanguage=english">The Next Generation of Profiling and Diagnostics Tools</a></td>        <td valign="top" width="92">         <p>Sunday            <br />10/11/2009            <br />10:30 - 11:30</p>       </td>        <td valign="top" width="118">         <p>Hilton Hotel            <br />Golden Gate 4/5</p>       </td>     </tr>      <tr>       <td valign="top" width="81">         <p>S309676</p>       </td>        <td valign="top" width="245"><a href="http://www20.cplan.com/cc221_new/session_details.jsp?isid=309676&amp;ilocation_id=221-1&amp;ilanguage=english">Advanced Java Diagnostics and Profiling with Oracle JRockit Mission Control</a> </td>        <td valign="top" width="92">         <p>Monday            <br />10/12/2009            <br />11:30 - 12:30</p>       </td>        <td valign="top" width="118">         <p>Hilton Hotel           <br />Continental Ballroom 4</p>       </td>     </tr>   </tbody></table>  <p>Other exciting sessions:</p>  <table border="0" cellspacing="0" cellpadding="2" width="540"><tbody>     <tr>       <td valign="top" width="79">Session ID</td>        <td valign="top" width="228">Session Title</td>        <td valign="top" width="109">Date/Time</td>        <td valign="top" width="122">Room</td>     </tr>      <tr>       <td valign="top" width="79">S309305</td>        <td valign="top" width="228"><a href="http://www20.cplan.com/cc221_new/session_details.jsp?isid=309305&amp;ilocation_id=221-1&amp;ilanguage=english">Oracle JRockit: What's New and What's Coming</a></td>        <td valign="top" width="109">Monday          <br />10/12/2009          <br />16:00 - 17:00          <br /></td>        <td valign="top" width="122">Marriott Hotel         <br />Salon 7</td>     </tr>      <tr>       <td valign="top" width="79">S309680</td>        <td valign="top" width="228"><a href="http://www20.cplan.com/cc221_new/session_details.jsp?isid=309680&amp;ilocation_id=221-1&amp;ilanguage=english">Latency Is a Bug: Tuning Your Java Virtual Machine for Optimal Performance</a></td>        <td valign="top" width="109">Monday          <br />10/12/2009          <br />10:15 - 11:15</td>        <td valign="top" width="122">Hilton Hotel         <br />Continental Ballroom 4</td>     </tr>      <tr>       <td valign="top" width="79">S309331</td>        <td valign="top" width="228"><a href="http://www20.cplan.com/cc221_new/session_details.jsp?isid=309331&amp;ilocation_id=221-1&amp;ilanguage=english">A Next-Generation Platform for Virtualized Java</a> </td>        <td valign="top" width="109">Wednesday          <br />10/14/2009          <br />13:00 - 13:30          <br /></td>        <td valign="top" width="122">Moscone South         <br />Room 309</td>     </tr>   </tbody></table>]]></description>
         <link>http://blogs.oracle.com/hirt/2009/09/jrockit_mission_control_oow_20.html</link>
         <guid>http://blogs.oracle.com/hirt/2009/09/jrockit_mission_control_oow_20.html</guid>
        
        
         <pubDate>Mon, 14 Sep 2009 18:10:09 +0100</pubDate>
      </item>
      
      <item>
         <title>Using the PDE Wizard</title>
         <description><![CDATA[<p>With the new Experimental Update site, there are now <a href="http://www.eclipse.org/pde/">PDE</a> plug-ins for extending the JRockit Mission Control Console. The wizards greatly reduces the time needed to start writing your own tabs, actions and constraints.</p>  <p>This is basically a very short tutorial on how to use them.</p>  <h3>Install the PDE plug-ins</h3>  <ol>   <li>First make sure you have Eclipse 3.3 or 3.4 installed.      <br />You will need the plug-in builder edition. </li>    <li>Next make sure that you have installed JRockit Mission Control 3.1.0 into your Eclipse.      <br />The update site is here: <a title="http://www.oracle.com/technology/software/products/jrockit/missioncontrol/updates/base/3.1.0/eclipse/index.html" href="http://www.oracle.com/technology/software/products/jrockit/missioncontrol/updates/base/3.1.0/eclipse/index.html">http://www.oracle.com/technology/software/products/jrockit/missioncontrol/updates/base/3.1.0/eclipse/index.html</a> </li>    <li>Next install the PDE plug-ins from the experimental update site.      <br />The experimental update site is here:       <br /><a title="http://www.oracle.com/technology/software/products/jrockit/missioncontrol/updates/base/3.1.0/eclipse/index.html" href="http://www.oracle.com/technology/software/products/jrockit/missioncontrol/updates/experimental/3.1.0/eclipse/index.html">http://www.oracle.com/technology/software/products/jrockit/missioncontrol/updates/experimental/3.1.0/eclipse/index.html</a> </li> </ol>  <p>Worth noting here is that if you fall for the temptation to also include the JConsole meta plug-in from the experimental update site, you need to be running your Eclipse on a JRockit 1.6 based JVM for the plug-in to work.</p>  <h3></h3>  <h3>Creating a JRockit Mission Control Console PDE project</h3>  <p>In this example we’ll create an additional tab in the JRockit Mission Control console. The tab will subscribe to one or more values from the JVM, depending on which wizard you choose.</p>  <p></p>  <ol>   <li>Create a new Plug-in project by selecting File-&gt;New-&gt;Project… and then selecting Plug-in Project.      <br />If that alternative is not available to you, ensure that you have installed the Plug-in Builder version of Eclipse. </li>    <li>Name your Plug-In Project by entering the Project Name in the New Plug-in Project Wizard. Then click next.      <br />(e.g. com.example.mc.testtab) </li>    <li>Review the details in the Plug-in Content page and then click next. </li>    <li>Select either the Mission Control Complex or Simple Tab wizard. </li>    <li>Review the details in the tab wizard, then click finish. </li> </ol>  <p>You now have a project which should compile properly. The plug-in adds a tab to the JRockit Mission Control Console. There are other wizards, for instance one that add actions to the triggers tab in the the JRockit Mission Control Console.    </p>]]></description>
         <link>http://blogs.oracle.com/hirt/2009/05/using_the_pde_wizard.html</link>
         <guid>http://blogs.oracle.com/hirt/2009/05/using_the_pde_wizard.html</guid>
        
        
         <pubDate>Thu, 07 May 2009 16:35:05 +0100</pubDate>
      </item>
      
      <item>
         <title>The Experimental Update Site is Now Online!</title>
         <description><![CDATA[<p>Since the 3.1 version of JRockit Mission Control, it is possible to extend JRockit Mission Control in various ways. The first extensibility features that we’re releasing are for the JRockit Mission Control Console, with the next major version featuring the same sort of extensibility for the Memleak and JRA tools as well.</p>  <p>Together with exposing these extension points, we also wanted to provide plug-ins that facilitates building extensions for JRMC. Since these plug-ins, strictly speaking, are not part of the JRockit Mission Control product, we’ve tried to come up with a good way for distributing them. </p>  <p>Today we released the <a href="http://www.oracle.com/technology/software/products/jrockit/missioncontrol/updates/experimental/3.1.0/eclipse/">Experimental Update Site for JRockit Mission Control</a>. It contains plug-ins for Eclipse and/or JRMC that either extends, or makes it easier to extend, JRockit Mission Control. In this first release, there is a PDE plug-in that provides wizards for extending the JRockit Mission Control console in various ways. There is also a JConsole meta plug-in, that allows you to run JConsole plug-ins in JRockit Mission Control. IMHO, using the PDE-plug-ins to build a native JRMC version of the plug-in is the better way to go. ;)</p>  <p>Everything in the experimental update site is provided as is – it is unsupported functionality, and the plug-ins may be revised and updated without notice. Please use the <a href="http://forums.oracle.com/forums/forum.jspa?forumID=561">forum</a> if you have any questions or want to report problems with these plug-ins.</p>  <p>Have fun!</p>]]></description>
         <link>http://blogs.oracle.com/hirt/2009/05/the_experimental_update_site_i.html</link>
         <guid>http://blogs.oracle.com/hirt/2009/05/the_experimental_update_site_i.html</guid>
        
        
         <pubDate>Thu, 07 May 2009 16:33:38 +0100</pubDate>
      </item>
      
      <item>
         <title>Oracle JRockit Mission Control 3.1 Available!</title>
         <description><![CDATA[<p>Finally! The new version of JRockit Mission Control is out! It features a much improved user interface, new extensibility features and an experimental update site that will go on-line as soon as we get the go from legal.</p>  <p>Hope you’ll like it! :) </p>  <p>You can download it from the <a href="http://www.oracle.com/technology/products/jrockit/missioncontrol/index.html">JRockit Mission Control Home Page</a>, either as a stand alone application, or as a set of Eclipse plug-ins that can be run in 3.3 or 3.4 versions of Eclipse.</p>  <p>Here is a minimalistic list of what is new: </p>  <p><strong>General:</strong></p>  <ul>   <li>Accessibility support </li>    <li>Links in the help menu to forum and JRMC home page </li>    <li>Better copy and paste support </li>    <li>Extension points that let you extend JRockit Mission Control </li> </ul>  <p><strong>JRMC Console:</strong></p>  <ul>   <li>Updated MBean Browser      <ul>       <li>Can drill down into CompositeData, Tabular Data, Collections and Arrays directly in the attribute table tree </li>        <li>Configurable property key ordering for MBeans </li>        <li>Automatic updates on new MBeans being registered/unregistered </li>        <li>Information tab with MBean metadata </li>     </ul>   </li>    <li>Updated dials      <ul>       <li>Gradients </li>        <li>Formatting </li>        <li>Can add additional dials dynamically </li>     </ul>   </li>    <li>MBean Tree &amp; Attribute Selector Dialog      <ul>       <li>Filters with wildcards </li>        <li>Improved performance </li>     </ul>   </li>    <li>Triggers      <ul>       <li>Import/Export of trigger rules </li>        <li>Triggers can be ordered in groups </li>        <li>Triggers can now have descriptions </li>        <li>Trigger templates for common use cases </li>     </ul>   </li>    <li>Attributes      <ul>       <li>Now shows per thread CPU usage </li>        <li>Total pause time for the last GC </li>     </ul>   </li>    <li>Tab groups / Category toolbar navigation </li>    <li>New Diagnostic Commands tab </li> </ul>  <p><strong>JVM Browser:</strong></p>  <ul>   <li>A connection can now be tested before added to the JVM Browser tree </li>    <li>User configurable application names </li> </ul>  <p><strong>JRA:</strong></p>  <ul>   <li>New recording templates </li>    <li>Tab groups / Category toolbar navigation </li>    <li>New overview tab that aggregate important information </li>    <li>New system tab with JVM and OS-related information </li>    <li>New recording tab with recording related information </li>    <li>New allocation tab </li>    <li>New code related overview tab </li>    <li>New threads / locks overview tab </li>    <li>New latency overview tab </li>    <li>New latency thread tab&#160; </li>    <li>Histogram moved to new latency histogram tab </li>    <li>Improved tooltips </li>    <li>Configurable category toolbar </li> </ul>  <p>Here are a few screenshots:</p>  <p><a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/OracleJRockitMissionControl3.1Available_A5B6/tab_code_overview_4.png"><img title="tab_code_overview" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="211" alt="tab_code_overview" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/OracleJRockitMissionControl3.1Available_A5B6/tab_code_overview_thumb_1.png" width="244" border="0" /></a><a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/OracleJRockitMissionControl3.1Available_A5B6/tab_general_overview_4.png"><img title="tab_general_overview" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="210" alt="tab_general_overview" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/OracleJRockitMissionControl3.1Available_A5B6/tab_general_overview_thumb_1.png" width="244" border="0" /></a> </p>  <p>&#160;<a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/OracleJRockitMissionControl3.1Available_A5B6/tab_latency_overview_2.png"><img title="tab_latency_overview" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="212" alt="tab_latency_overview" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/OracleJRockitMissionControl3.1Available_A5B6/tab_latency_overview_thumb.png" width="244" border="0" /></a> <a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/OracleJRockitMissionControl3.1Available_A5B6/tab_thread_overview_4.png"><img title="tab_thread_overview" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="210" alt="tab_thread_overview" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/OracleJRockitMissionControl3.1Available_A5B6/tab_thread_overview_thumb_1.png" width="244" border="0" /></a> </p>  <p>There is also a set of neat experimental plug-ins that will be published as soon as we get the go ahead from legal. The first release of the Experimental Update-site will (at least) contain:</p>  <ul>   <li>PDE Wizards for creating plug-ins for JRockit Mission Control </li>    <li>A JConsole Plug-in Plug-in which lets you run JConsole plug-ins inside JRockit Mission Control      <br />(It is, IMHO, a much better idea to convert them to true JRMC plug-ins though. ;) I just implemented that plug-in for fun.) </li> </ul>  <p>For more detailed information about the 3.1.0 release, please check out the <a href="http://www.oracle.com/technology/products/jrockit/missioncontrol/new_and_noteworthy/3.1.0/index.html">“New and Noteworthy”</a> page introduced with this release.</p>]]></description>
         <link>http://blogs.oracle.com/hirt/2009/04/oracle_jrockit_mission_control.html</link>
         <guid>http://blogs.oracle.com/hirt/2009/04/oracle_jrockit_mission_control.html</guid>
        
        
         <pubDate>Tue, 07 Apr 2009 09:11:12 +0100</pubDate>
      </item>
      
      <item>
         <title>Starting the External Agent After JRockit Has Started</title>
         <description><![CDATA[<p>So you're in trouble. You've started a long running application. It's taken you half an hour to make the application reach a nice, optimized steady state. Maybe you started JRockit as a windows service. And you really didn't expect the need for having the external management agent up and running. Yet, here you are, longing to connect to the JRockit running your application using Mission Control from another machine. Perhaps to do some profiling, diagnostics or to hunt for a suspected memory leak. You start shutting down the JVM, and expect at least half an hour to pass unti... No! Wait! </p>  <p>Using <strong>jrcmd</strong> there is a way to bring up the agent after the fact that JRockit has been started. See <a href="http://blogs.oracle.com/hirt/2008/08/simple_exception_profiling_wit.html">one of my previous blogs</a> for more information on how to use <strong>jrcmd</strong>. </p>  <p>To use <strong>jrcmd</strong>&#160; to start up the external management agent, you use the start_management_server command. Here is an example:</p>  <blockquote>   <p>D:\clients\hirt&gt;jrcmd 3848 start_management_server ssl=false authenticate=false port=4711</p> </blockquote>  <p>This command doesn't return any message upon successful completion, but on the console for process 3848 you should see:</p>  <blockquote>   <p>[JRockit] Management server started on port 4711, ssl=false, authenticate=false.</p></blockquote>]]></description>
         <link>http://blogs.oracle.com/hirt/2008/10/starting_the_external_agent_af.html</link>
         <guid>http://blogs.oracle.com/hirt/2008/10/starting_the_external_agent_af.html</guid>
        
        
         <pubDate>Tue, 28 Oct 2008 09:36:48 +0100</pubDate>
      </item>
      
      <item>
         <title>Getting JRockit Stack Dumps</title>
         <description><![CDATA[<p>Sometimes it may seem hard to get a simple thread stack dump from your JRockit. You may for instance have started it using the <a href="http://e-docs.bea.com/jrockit/jrdocs/refman/optionX.html#wp999532">-Xnohup</a> (-Xrs) option, or as a service. I'll list three different ways of looking at your threads in such situations.</p>  <p>The first way of getting your thread dump is to use <strong>jrcmd</strong>. My <a href="http://blogs.oracle.com/hirt/2008/08/simple_exception_profiling_wit.html">previous blog</a> shows some basic <strong>jrcmd </strong>usage, so I'll just mention the command name: <strong>print_threads</strong>. Basic usage is <strong>jrcmd &lt;PID&gt; print_threads</strong>, for example <strong>jrcmd 780 print_threads.</strong></p>  <p>The second way is to simply start the management console on the JRockit you want to monitor. After connecting the console to the JVM and switching to the threads view, you should be looking at something similar to the screen shot below.</p>  <p><a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/GettingJRockitStackDumps_8AE8/thread_dumps_2.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="434" alt="thread_dumps" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/GettingJRockitStackDumps_8AE8/thread_dumps_thumb.png" width="644" border="0" /></a> </p>  <p>The third way is to use the MBean Browser's capability to invoke arbitrary operations on MBeans (also described in the last blog). Go to the<strong> MBean Browser</strong> in the JRockit Management Console. Select the <strong>DiagnosticCommand </strong>MBean, and switch to the operations tab. Select the <strong>execute </strong>operation that takes a String argument and returns a String. Click the String button, and fill in the argument <strong>print_threads</strong>. </p>  <p><a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/GettingJRockitStackDumps_8AE8/invoking_dc_2.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="434" alt="invoking_dc" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/GettingJRockitStackDumps_8AE8/invoking_dc_thumb.png" width="644" border="0" /></a> </p>  <p>When you execute the operation you should see something like this:</p>  <p><a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/GettingJRockitStackDumps_8AE8/after_dc_2.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="434" alt="after_dc" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/GettingJRockitStackDumps_8AE8/after_dc_thumb.png" width="644" border="0" /></a> </p>  <p>There are also ways of doing this programmatically, for example by using the <a href="http://e-docs.bea.com/jrockit/releases/R27/javadoc/manapi/docs/index.html">JRockit JMAPI</a>, or by invoking the execute operation programmatically as described in <a href="http://blogs.oracle.com/hirt/2008/08/jrcmd_goes_remote_r271_edition.html">another old blog</a>. </p>]]></description>
         <link>http://blogs.oracle.com/hirt/2008/08/getting_jrockit_stack_dumps.html</link>
         <guid>http://blogs.oracle.com/hirt/2008/08/getting_jrockit_stack_dumps.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">JRockit</category>
        
        
         <pubDate>Wed, 20 Aug 2008 08:54:01 +0100</pubDate>
      </item>
      
      <item>
         <title>Simple Exception Profiling with JRockit</title>
         <description><![CDATA[<p>Exception profiling is the business of finding out what exceptions are being thrown within your application and from where. In JRockit Mission Control you can find out how many exceptions have been thrown using JRA, and you can count the exceptions using the JRockit Management Console. Sadly there is no way of doing powerful exception profiling (i.e. looking at the stack traces for the exceptions, aggregating them and visualizing them directly in the JRockit Mission Control Client) just yet. This will be incorporated in a future version of Mission Control.</p>  <p>There is fortunately a way to do exception profiling with JRockit today. There are exception related verbose flags available in JRockit. These are examples on how to use them:</p>  <blockquote>   <p><strong>java -Xverbose:exceptions=debug</strong> ...</p>    <p><strong>java -Xverbose:exceptions=trace</strong> ...</p> </blockquote>  <p>For a list of valid verbose options, please see <a title="http://e-docs.bea.com/jrockit/jrdocs/refman/optionX.html#wp999543" href="http://e-docs.bea.com/jrockit/jrdocs/refman/optionX.html#wp999543">http://e-docs.bea.com/jrockit/jrdocs/refman/optionX.html#wp999543</a>.</p>  <p>Sometimes you really just want to enable this profiling for a little while, for example to avoid cluttering your log files. Then there is a nifty tool for JRockit called jrcmd you can use to turn on/off the exception profiling. It can be found under JROCKIT_HOME\bin\.</p>  <p>First use jrcmd to list all running java processes. Here is an example of what it may look like:</p>  <blockquote>   <p>&gt;<strong>jrcmd</strong></p>    <p>10984 jrockit.tools.jrcmd.JrCmd </p>    <p>9396 C:\Java\eclipse3.3.1.1\plugins\org.eclipse.equinox.launcher_1.0.1.R33x_v200     <br />70828.jar -data D:\Data\workspaces\workspace_3.3_facade -os win32 -ws win32 -arc      <br />h x86 -showsplash -launcher C:\Java\eclipse3.3.1.1\eclipse.exe -name Eclipse --l      <br />auncher.library C:\Java\eclipse3.3.1.1\plugins\org.eclipse.equinox.launcher.win3      <br />2.win32.x86_1.0.2.R331_v20071019\eclipse_1021.dll -startup C:\Java\eclipse3.3.1.      <br />1\plugins\org.eclipse.equinox.launcher_1.0.1.R33x_v20070828.jar -exitdata 1908_7      <br />c -vm D:\jrockits\R27.4.0_R27.4.0-90_1.5.0\bin\javaw.exe -vmargs -Xms256m -Xmx51      <br />2m -XgcPrio:deterministic -XpauseTarget:40 -Dosgi.bundlefile.limit=100 -jar C:\J      <br />ava\eclipse3.3.1.1\plugins\org.eclipse.equinox.launcher_1.0.1.R33x_v20070828.jar </p>    <p>10976 Gegga</p> </blockquote>  <p>The numbers are the PIDs of the processes, and are used as the first argument to jrcmd to specify on what JRockit to address. You can use jrcmd to check what commands are available. Here is an example:</p>  <blockquote>   <p>&gt;<strong>jrcmd 10976 help</strong>      <br />10976:      <br />The following commands are available:      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; kill_rmp_server      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; start_rmp_server      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; kill_management_server      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; start_management_server      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; checkjrarecording      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; stopjrarecording      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; startjrarecording      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; print_object_summary      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; memleakserver      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; print_codegenlist      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; print_class_summary      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; run_optfile      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; dump_codelayout      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; dump_codelist      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; dump_codemap      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; print_utf8pool      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; print_properties      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; print_threads      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; datadump_request      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; runsystemgc      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; runfinalization      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; heap_diagnostics      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; oom_diagnostics      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; print_exceptions      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; version      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; timestamp      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; command_line      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; memprof      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; sanity      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; verbosity      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; set_filename      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; help      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; print_memusage      <br />For more information about a specific command use 'help &lt;command&gt;'.      <br />Parameters to commands are optional unless otherwise stated.</p> </blockquote>  <p>Let's get more information about the print_exceptions command:</p>  <blockquote>   <p>&gt;<strong>jrcmd 10976 help print_exceptions</strong></p>    <p>10976:     <br />Enable printing of Java exceptions thrown in the VM.      <br />To turn exception printing off completely you need to set exceptions = false      <br />even if it was turned on by stacktraces = true. NOTE: This handler is      <br />deprecated. The preferred way of displaying exceptions is to use the      <br />'exceptions' logging module: -Xverbose:exceptions.      <br />Values for the parameters can be &quot;true|all|false&quot;      <br />true&#160; - print all exception except java/util/EmptyStackException,      <br />java/lang/ClassNotFoundException and      <br />java/security/PrivilegedActionException      <br />all&#160;&#160; - print all exception      <br />false - don't print exceptions      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; exceptions&#160; - print exceptions (string, false)      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; stacktraces - print stacktrace (string, false)</p> </blockquote>  <p>Never mind that it is using an old handler in R27.6. The functionality will be the same. Let's enable the exception profiling:</p>  <blockquote>   <p>&gt;<strong>jrcmd 10976 print_exceptions stacktraces=true</strong></p> </blockquote>  <p>If your application is throwing exceptions, you should now be seeing traces being logged to the console of that application. To turn off the exception logging, we do as the help suggests:</p>  <blockquote>   <p>&gt;<strong>jrcmd 10976 print_exceptions exceptions=false</strong></p> </blockquote>  <p>Now, an even easier way to access the jrockit diagnostic commands is to use the JRockit Management Console. Simply connect the JRockit Management Console to the JRockit you wish to enable exception profiling on (from JRockit Mission Control). (Click the images to look at them in full size.)</p>  <p><a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/SimpleExceptionProfilingwithJRockit_9726/start_console_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="433" alt="start_console" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/SimpleExceptionProfilingwithJRockit_9726/start_console_thumb.png" width="644" border="0" /></a> </p>  <p>Once the console is started, open the <strong>MBean Browser</strong> tab and move to the <strong>DiagnosticCommand</strong> MBean under <strong>bea.jrockit.management</strong>:</p>  <p><a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/SimpleExceptionProfilingwithJRockit_9726/diagnostic_command_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="433" alt="diagnostic_command" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/SimpleExceptionProfilingwithJRockit_9726/diagnostic_command_thumb.png" width="644" border="0" /></a> </p>  <p>Double clicking on the ArrayList value of <strong>AllCommands</strong> will open up a list of all the available commands:</p>  <p><a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/SimpleExceptionProfilingwithJRockit_9726/list_commands_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="433" alt="list_commands" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/SimpleExceptionProfilingwithJRockit_9726/list_commands_thumb.png" width="644" border="0" /></a>&#160; <br />Now, select the operations tab and the executeDefault method that takes a String argument and press invoke. This will provide you with a dialog with push buttons for the arguments. In this case a single button with the label String. Press the String button and fill out the command. For example, print_exceptions stacktraces=true.</p>  <p><a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/SimpleExceptionProfilingwithJRockit_9726/print_traces_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="433" alt="print_traces" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/SimpleExceptionProfilingwithJRockit_9726/print_traces_thumb.png" width="644" border="0" /></a></p>  <p>Press <strong>Ok </strong>on both of the dialogs and exception profiling should now be enabled. To turn it off again, just invoke the operation again and enter <strong>print_exceptions exceptions=false</strong>, analogously with how you would use jrcmd.</p>  <p>An even easier way for Oracle employees is to pick up a recent internal build of JRockit and use the <strong>Diagnostic Command</strong> tab in the JRockit Management Console. :) Soon coming to a JRockit near you!</p>]]></description>
         <link>http://blogs.oracle.com/hirt/2008/08/simple_exception_profiling_wit.html</link>
         <guid>http://blogs.oracle.com/hirt/2008/08/simple_exception_profiling_wit.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">JRockit</category>
        
        
         <pubDate>Fri, 15 Aug 2008 10:14:02 +0100</pubDate>
      </item>
      
      <item>
         <title>JRockit Mission Control at Oracle Open World 2008</title>
         <description><![CDATA[<p>This year JRockit Mission Control will be represented at Oracle Open World! I'll have one session and three hands-on labs.</p>  <p>The preliminary schedule is as follows:</p>  <p>Date: <strong>2008-09-21</strong></p>  <blockquote>   <p><strong>Hands-On Lab: Diagnostics with Oracle JRockit Mission Control        <br /></strong>      <br />Session ID: S299540       <br />Track: Oracle Develop: Java       <br />Room: <strong>Golden Gate B2</strong>       <br />Start Time: <strong>13:15</strong> </p> </blockquote>  <p>   <br />Date: <strong>2008-09-22</strong></p>  <blockquote>   <p><strong>Hands-On Lab: Diagnostics with Oracle JRockit Mission Control        <br /></strong><strong>       <br /></strong>Session ID: S299540       <br />Track: Oracle Develop: Java       <br />Room: <strong>Golden Gate B2</strong>       <br />Start Time: <strong>16:00</strong> </p> </blockquote>  <p>   <br />Date:<strong> 2008-09-23</strong> </p>  <blockquote>   <p><strong>Nonintrusive Profiling and Diagnostics with Oracle JRockit Mission Control </strong></p>    <p>Session ID: S299518      <br />Track: Oracle Develop: Java       <br />Room: <strong>Nob Hill AB        <br /></strong>Start Time: <strong>13:00</strong> </p> </blockquote>  <blockquote>   <p><strong>Hands-On Lab: Diagnostics with Oracle JRockit Mission Control        <br /></strong><strong>       <br /></strong>Session ID: S299540       <br />Track: Oracle Develop: Java       <br />Room: <strong>Golden Gate B2</strong>       <br />Start Time: <strong>16:00 </strong></p> </blockquote> <br/> <p>I'm looking forward to seeing you there! :)</p>]]></description>
         <link>http://blogs.oracle.com/hirt/2008/08/jrockit_mission_control_at_ora.html</link>
         <guid>http://blogs.oracle.com/hirt/2008/08/jrockit_mission_control_at_ora.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">JRockit Mission Control</category>
        
        
         <pubDate>Wed, 13 Aug 2008 13:52:54 +0100</pubDate>
      </item>
      
      <item>
         <title>Oracle JRockit Mission Control 3.0.3 available!</title>
         <description><![CDATA[<p>The next version of JRockit Mission Control just went live! Feature-wise it is only a minor upgrade, I will go into detail about the most exciting one in a bit, but there are some other changes to this release that are quite profound.</p>  <p>The, in my humble opinion, greatest change is that all JRockit Mission Control features are available by default. There is no need to dabble with licenses. Everything is free to use for evaluation, which among other things means that you can now try out the latency analyzer properly.</p>  <p>JRockit Mission Control has also been relocated to a new homepage at OTN, located at <a title="http://www.oracle.com/technology/products/jrockit/missioncontrol/index.html" href="http://www.oracle.com/technology/products/jrockit/missioncontrol/index.html">http://www.oracle.com/technology/products/jrockit/missioncontrol/index.html</a>. The next few days a lot of new JRockit Mission Control related material will be posted there.</p>  <p>The update site has moved as well, and can now be found at <a title="http://www.oracle.com/technology/software/products/jrockit/missioncontrol/updates/eclipse-3.3/jrmc/" href="http://www.oracle.com/technology/software/products/jrockit/missioncontrol/updates/eclipse-3.3/jrmc/">http://www.oracle.com/technology/software/products/jrockit/missioncontrol/updates/eclipse-3.3/jrmc/</a>. </p>  <p>As you will undoubtedly notice, everything has also been re-branded.</p>  <p>Now, the cool new feature is actually a JRockit JVM side upgrade, that will be automatically picked up by the JRockit Mission Control client. It is now possible to do very cheap memory allocation profiling using the JRockit Latency Analyzer. </p>  <p>There is a new type of latency events available in the latency recordings. They are triggered whenever the JRockit JVM needs to acquire a new Thread Local Area or whenever the JRockit JVM needs to allocate a new large object. These events provides a good approximation to what is causing the most pressure on the memory system. This means that it is quite easy to find out where to start optimizing allocation behaviour using JRMC LAT.</p>  <p>Here is an example:</p>  <ol>   <li>First select the JVM you wish to start a JRA recording on.&#160; <br /> <a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/OracleJRockitMissionControl3.3available_F04E/start_recording_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="484" alt="start_recording" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/OracleJRockitMissionControl3.3available_F04E/start_recording_thumb.png" width="644" border="0" /></a>       <br /></li>    <li>In the JRA recording wizard, ensure that you start a JRA recording with latency information in it.      <br />You can for example use the Latency Recording Template.&#160; <br /> <a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/OracleJRockitMissionControl3.3available_F04E/latency_wizard_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="484" alt="latency_wizard" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/OracleJRockitMissionControl3.3available_F04E/latency_wizard_thumb.png" width="419" border="0" /></a>       <br /></li>    <li>Then open the Latency Log tab and open a histogram over the events.      <br />Make the histogram over the Object Allocation - Class Name property by selecting it in the second combo box.&#160; <br /><a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/OracleJRockitMissionControl3.3available_F04E/histogram_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="484" alt="histogram" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/OracleJRockitMissionControl3.3available_F04E/histogram_thumb.png" width="644" border="0" /></a>&#160;&#160; <br />Note: since the allocation events aren't recognized yet as being from the standard producer, you may need to enable them in the event palette to the left.       <br />      <br />As you can see, most of the pressure on the memory system seems to be from the allocations of Strings. This is not uncommon. Together with arrays of primitive types, Strings are quite commonly high ranking here.       <br /></li>    <li>Now right click on the String row in the table, and set the operative set to the events corresponding to that row.      <br />The selected event property will unfortunately be reset, which will cause the histogram to be reset as well, but never mind that.       <br /></li>    <li>Move over to the Latency Traces view and check that you only want to see the events in the operative set.&#160; <br /><a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/OracleJRockitMissionControl3.3available_F04E/traces_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="484" alt="traces" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/OracleJRockitMissionControl3.3available_F04E/traces_thumb.png" width="644" border="0" /></a>&#160;&#160; 
You can now clearly see exactly where you should focus your efforts to reduce the amount of String allocation to reduce the pressure on the memory system.</li> </ol>

<p>Reducing the pressure on the memory system leads to less frequent garbage collections and thus a more responsive system.</p>

<p><br />
For more information on the JRockit JVM R27.6 release, please have a look at the <a href="http://edocs.bea.com/jrockit/releases/R27/relnotes/r27_notes.html#wp1024309">release notes</a>.</p>]]></description>
         <link>http://blogs.oracle.com/hirt/2008/08/oracle_jrockit_mission_control_1.html</link>
         <guid>http://blogs.oracle.com/hirt/2008/08/oracle_jrockit_mission_control_1.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">JRockit Mission Control</category>
        
        
         <pubDate>Mon, 04 Aug 2008 16:06:07 +0100</pubDate>
      </item>
      
      <item>
         <title>Running Eclipse/Workshop on JRockit! (Migrated from the old BEA blog)</title>
         <description><![CDATA[<p>Within the next few days, Mission Control will be available for download directly into your IDE from an update site.&#160; To fully take advantage of this, however, you need to run Eclipse on a JRockit. This blog is an update to an old blog of mine, which explains how and has a few very specific tips for the insanely rich or the ones working for BEA. ;)</p>  <p>Despite JRockit being an outspoken server side JVM, many long running client applications, like IDE's, actually run very well on JRockit. Running Eclipse on JRockit is no exception. </p>  <p>The easiest way to change the JVM on which to start Eclipse is by modifying the eclipse.ini file. You can also set the -vm on the command line used to start Eclipse. In windows you'd typically do that in the shortcut you use to launch Eclipse. Just using JRockit out of the box yields pretty good performance. Here is an example ini file: </p>  <blockquote>   <p>-showsplash      <br />org.eclipse.platform       <br />-vm       <br />D:\jrockits\R27.5.0_R27.5.0-111_1.5.0\bin\javaw.exe</p> </blockquote>  <p>You can usually get better performance by setting the initial heap size and the max heapsize to the same, thus bypassing the dynamic growing/shrinking of the heap: </p>  <blockquote>   <p>-showsplash      <br />org.eclipse.platform       <br />-vm       <br />D:\jrockits\R27.5.0_R27.5.0-110_1.5.0\bin\javaw.exe       <br />-vmargs       <br />-Xms384m       <br />-Xmx384m</p> </blockquote>  <p>The insanely rich (or BEA employees) can run Eclipse on WLRT/deterministic GC (some would call this overkill) for a very smooth experience. This is the eclipse.ini I use myself: </p>  <blockquote>   <p>-showsplash      <br />org.eclipse.platform       <br />-vm       <br />D:\jrockits\R27.5.0_R27.5.0-110_1.5.0\bin\javaw.exe       <br />-vmargs       <br />-Xms384m       <br />-Xmx384m       <br />-XgcPrio:deterministic       <br />-XpauseTarget:20       <br />-XXcompactratio:1</p> </blockquote>  <p>One common pitfall is trying to use Sun specific flags, which would cause the JRockit launcher to exit right away, like for example <code>-Xincgc</code> or <code>-Xbatch</code>. </p>  <p>&#160; </p>  <p>For more information: </p>  <ul>   <li><a href="http://www.oracle.com/technology/products/jrockit/index.html">JRockit</a> </li>    <li><a href="http://www.oracle.com/technology/products/jrockit/missioncontrol/index.html">JRockit Mission Control</a> </li> </ul>]]></description>
         <link>http://blogs.oracle.com/hirt/2008/08/running_eclipseworkshop_on_jro.html</link>
         <guid>http://blogs.oracle.com/hirt/2008/08/running_eclipseworkshop_on_jro.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">JRockit</category>
        
        
         <pubDate>Mon, 04 Aug 2008 15:58:15 +0100</pubDate>
      </item>
      
      <item>
         <title>Mission Control 3.0.2 Released! (Migrated from the old BEA blog)</title>
         <description><![CDATA[<p>JRockit Mission Control just got even better! Some improvements will be quite obvious and very visible. Other improvements are subtle usability fixes that simply makes Mission Control more pleasant to use. In this blog I'll briefly list some of the new features, in no particular order, as well as some new freely available services.</p>  <h3>&#160;</h3>  <h3>Mission Control available as Eclipse Plug-ins</h3>  <p>For the first time we're making Mission Control available as a set of Eclipse Plug-ins! This means you will have the power of Mission Control readily available from within your IDE. It also means you will be able to update Mission Control from within the IDE. </p>  <p><a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/Missi.2ReleasedMigratedfromtheoldBEAblog_ECBD/update_site_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="460" alt="update_site" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/Missi.2ReleasedMigratedfromtheoldBEAblog_ECBD/update_site_thumb.png" width="644" border="0" /></a> </p>  <p>The Eclipse integration comes with basic JDT integration, such as the ability to jump to source from stacktraces, classes and methods being displayed in Mission Control.</p>  <p><a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/Missi.2ReleasedMigratedfromtheoldBEAblog_ECBD/jra_in_eclipse_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="473" alt="jra_in_eclipse" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/Missi.2ReleasedMigratedfromtheoldBEAblog_ECBD/jra_in_eclipse_thumb.png" width="644" border="0" /></a> </p>  <p>Running Mission Control within Eclipse requires a 3.3 version of Eclipse or above. Also note that, to get the most out of Mission Control running in Eclipse, you should run Eclipse on JRockit. More on interesting ways of doing that in an upcoming blog. :)</p>  <h3>&#160;</h3>  <h3>Mission Control Public Bugzilla</h3>  <p>There is now a public bugzilla for Mission Control available at bugzilla.bea.com. It is monitored by the Mission Control developers and provides an efficient means for posting change requests and suggestions for enhancements.</p>  <p><a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/Missi.2ReleasedMigratedfromtheoldBEAblog_ECBD/bugzilla_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="364" alt="bugzilla" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/Missi.2ReleasedMigratedfromtheoldBEAblog_ECBD/bugzilla_thumb.png" width="644" border="0" /></a> </p>  <h3>&#160;</h3>  <h3>Improved GUI</h3>  <p>A lot of GUI changes have been made to make Mission Control play nice in an Eclipse environment. The menu layouts have changed. The JRA wizard has been improved greatly. JRA recordings can now be stored in an Eclipse project as a resource and launched by just double clicking (starting the default editor) on the resource. The memory consumption has been lowered and performance improved (yes, we doggy fed Mission Control to itself ;) ). Even more performance improvements will be available in the next major version of Mission Control.</p>  <p>You can now export charts from the Console as images. You can synchronize the charts X-ranges. You can add and remove charts from the Overview in the Console. You can, after freezing the updates of a chart, hover over data points to get exact readings. There are filters available to more easily find specific MBeans. And much, much more.</p>  <p>The Dial concept is back! Some of you may remember them from the old days of the Management Console. They are configurable and can show any attribute you want. And, if you do not like them, you can simply remove them altogether from the overview.</p>  <h3><a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/Missi.2ReleasedMigratedfromtheoldBEAblog_ECBD/oh_my_god_it's_full_of_dials_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="396" alt="oh_my_god_it&#39;s_full_of_dials" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/Missi.2ReleasedMigratedfromtheoldBEAblog_ECBD/oh_my_god_it's_full_of_dials_thumb.png" width="644" border="0" /></a> </h3>  <p>&#160;</p>  <h3>More Data</h3>  <p>There is now more data available in Mission Control. In JRA we show the nursery size before and after a young space collection. We can record lazy unlocking profiling data. In the latency recorder we're recording more information in the events (for instance thread transition information for park/unpark).</p>  <p>&#160;</p>  <h3>Fixes</h3>  <p>And we have of course fixed problems found, for instance Memleak not properly updating the trend table under certain conditions. Please see the release notes for further information.</p>  <p>&#160;</p>  <h3>Summary</h3>  <p>There is a new Mission Control out with new features and better community support. Try it out and let us know what you think!</p>  <p>For more information: </p>  <ul>   <li><a href="http://www.oracle.com/technology/products/jrockit/index.html">JRockit</a> </li>    <li><a href="http://www.oracle.com/technology/products/jrockit/missioncontrol/index.html">JRockit Mission Control</a> </li> </ul>]]></description>
         <link>http://blogs.oracle.com/hirt/2008/08/mission_control_r302_released.html</link>
         <guid>http://blogs.oracle.com/hirt/2008/08/mission_control_r302_released.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">JRockit Mission Control</category>
        
        
         <pubDate>Mon, 04 Aug 2008 15:50:52 +0100</pubDate>
      </item>
      
      <item>
         <title>Creating Fully Featured JRA Recordings with 1.4 Based JRockits (Migrated from the old BEA blog)</title>
         <description><![CDATA[<p>One of the parts of <a href="http://www.oracle.com/technology/products/jrockit/missioncontrol/index.html">Mission Control</a> is the JRA (the JRockit Runtime Analyzer). The JRA is a powerful profiler that can tell you a lot about the performance bottlenecks in your application whilst keeping the overhead barely noticeable. </p>  <p>There are new options added to the JRA recordings almost every release. In recent releases of Mission Control the JRA wizard will check what capabilities the JRockit you are attempting to start a recording on has, and present you with configurable options accordingly. The problem is that the legacy protocol used when connecting to a 1.4 version of JRockit unfortunately does not support querying for the available parameters. Do not despair; there are still means of starting JRA recordings that contain all the new goodies. This is how:</p>  <p>There is a neat little command line tool called jrcmd that can be found in JROCKIT_HOME/bin. The jrcmd tool can be used to invoke commands on a locally running JRockit process. It works like this:</p>  <ol>   <li>Do <code>JROCKIT_HOME/bin/jrcmd </code>to list the JRockit processes on your machine. </li>    <li>Pick your favourite one and do <code>JROCKIT_HOME/bin/jrcmd &lt;pid&gt; help</code> </li>    <li>Pick the command you wish to know more about, for example <code>JROCKIT_HOME/bin/jrcmd &lt;pid&gt; help startjrarecording</code> </li>    <li>Invoke the command with the settings of your choice. </li> </ol>  <p>In this case, the command we want to use is startjrarecording, and what we want to know is what parameters we can use on a particular JRockit when issuing the startjrarecording command.</p>  <p>On the windows box I'm currently on, it looks like this:</p>  <pre>D:\jrockits\R27.3.0_R27.3.0-106_1.5.0&gt;bin\jrcmd.exe
2640 com.jrockit.mc.rcp.start.MCMain

<p>5012 jrockit.tools.jrcmd.JrCmd</pre></p>

<p>&#160;</p>

<p>Notice how it lists itself. In this case I'm interested in knowing the available commands on the JRockit currently running my Mission Control (com.jrockit.mc.rcp.start.MCMain), so I do:</p>

<pre>D:\jrockits\R27.3.0_R27.3.0-106_1.5.0&gt;bin\jrcmd.exe 2640 help
2640:
The following commands are available:
        kill_rmp_server
        start_rmp_server
        kill_management_server
        start_management_server
        checkjrarecording
        stopjrarecording
        startjrarecording
        print_object_summary
        memleakserver
        print_class_summary
        print_codegenlist
        run_optfile
        dump_codelayout
        dump_codelist
        dump_codemap
        print_utf8pool
        print_properties
        print_threads
        datadump_request
        runsystemgc
        runfinalization
        heap_diagnostics
        oom_diagnostics
        print_exceptions
        version
        timestamp
        command_line
        memprof
        sanity
        verbosity
        set_filename
        help
        print_memusage
For more information about a specific command use 'help <command>'.
Parameters to commands are optional unless otherwise stated.</pre>

<p>&#160;</p>

<p>To find out what parameters are available to me when starting a jrarecording I do: </p>

<pre>D:\jrockits\R27.3.0_R27.3.0-106_1.5.0&gt;bin\jrcmd.exe 2640 help startjrarecording
2640:
Starts a JRA recording.
        filename           - name of the file to store JRA recording to
                             (string, jrarecording.xml)
        recordingtime      - length of the recording in seconds (int, 60)
        delay              - delay before starting recording in seconds (int,
                             0)
        methodsampling     - enable method sampling (bool, true)
        gcsampling         - enable gc information (bool, true)
        heapstats          - include heap statistics (bool, true)
        nativesamples      - include native code in sampling (bool, false)
        methodtraces       - include stack traces (bool, true)
        tracedepth         - depth of stack traces (int, 16)
        sampletime         - time between samples in milliseconds (int, 30)
        zip                - zip the recording (bool, true)
        hwsampling         - use hardware sampling if possible (bool, false)
        threaddump         - do full threaddumps at start and end of recordning
                             (bool, true)
        threaddumpinterval - also do threaddumps every 'n' interval (can be
                             specified as x[ns|ms|s]) (time, 0s)
        latency            - include latency analysis (bool, false)
        latencythreshold   - do not record events shorter than this number (can
                             be specified as x[ns|ms|s]) (time, 20ms)
        cpusamples         - sample cpu usage during the recording (bool,
                             true)
        cpusampleinterval  - cpu sample interval (can be specified as
                             x[ns|ms|s]) (time, 1s)</pre>

<p>&#160;</p>

<p>In this case I found out that I can indeed start up a recordings with new features such as <a href="http://blogs.oracle.com/hirt/2008/08/the_mission_control_30_latency.html">latency analysis data</a> on this particular JVM. To actually start such a recording I could for example write: </p>

<pre>D:\jrockits\R27.3.0_R27.3.0-106_1.5.0&gt;bin\jrcmd.exe 2640 startjrarecording laten
cy=true latencythreshold=20ms recordingtime=120s
2640:
JRA recording started.</pre>]]></description>
         <link>http://blogs.oracle.com/hirt/2008/08/creating_fully_featured_jra_re.html</link>
         <guid>http://blogs.oracle.com/hirt/2008/08/creating_fully_featured_jra_re.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">JRockit</category>
        
          <category domain="http://www.sixapart.com/ns/types#category">JRockit Mission Control</category>
        
        
         <pubDate>Mon, 04 Aug 2008 15:27:00 +0100</pubDate>
      </item>
      
      <item>
         <title>The Mission Control 3.0 Latency Analyser (Migrated from the old BEA blog)</title>
         <description><![CDATA[<p></p>  <p>The JRockit JVM incorporates technology (the JRockit Deterministic Garbage Collector) which can guarantee an upper bound for worst case pause times for garbage collections. This greatly helps in reducing unexpected latencies. When writing Java applications, however, it is still possible to introduce latencies through non-optimal use of Java Synchronization, I/O and so on. These latencies can cause poor performance and/or response times in your application and can be quite hard to find. The latency analyzer provides a simple way to analyze where such latencies are caused. </p>  <p>The JRockit Latency Analyzer is built into JRA (JRockit Runtime Analyzer) in Mission Control 3.0. When starting a JRA recording it is now possible to select a Latency Recording Profile.&#160; </p>  <p>&#160;<a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/The.0LatencyAnalyserMigratedfromtheoldBE_7246/start_recording_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="275" alt="start_recording" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/The.0LatencyAnalyserMigratedfromtheoldBE_7246/start_recording_thumb.png" width="304" border="0" /></a> </p>  <p>When such a profile is selected, or Enable Latency Recording is selected from the advanced options, the recorded profile will contain latency information. When a recording contains such information, three additional tabs (Latency Log, Latency Graph, Latency Traces), two views (Event Types, Properties) and a new Latency Perspective will be at your disposal. </p>  <p>The Latency Log tab includes a log which simply lists all the events in a table and lets you filter them.&#160; </p>  <p>The Latency Graph tab includes a graph, showing for each thread which latency events that have happened during the duration of the recording. </p>  <p>The Latency Traces tab includes a tree table view showing you stack traces that have been involved in causing these latencies, and how much latency has been caused by the traces leading to a certain node.</p>  <p>In the example below we have found the response times of our latency sensitive application somewhat disappointing. The CPU isn't saturated, so we've decided to make a JRA recording with latency information in it. We're now viewing the recording in the latency graph (below). At the top of each view is the range selection tool, where you can zoom and pan to filter the events over time. I've zoomed in on an arbitrary part of the recording to show how the range selector looks when zoomed in. This particular recording shows the same problem all over the recording, so panning to another part would yield a very similar image. </p>  <p><a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/The.0LatencyAnalyserMigratedfromtheoldBE_7246/latency_graph_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="396" alt="latency_graph" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/The.0LatencyAnalyserMigratedfromtheoldBE_7246/latency_graph_thumb.png" width="644" border="0" /></a> </p>  <p>From the graph we can see that we seem to do quite a lot Java Synchronization. In the log view (screen shot below) we can look at each of the individual events. In the screen shot I've filtered on the Java Synchronization Events and added the first bunch of them to the Operative Set. They are the ones highlighted in the Range Selector. Seems a good portion of them are indeed the Java Synchronization Events. Another way to select only the Java Synchronization Events would be to deselect the other Event Types in the Event Type view. </p>  <p><a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/The.0LatencyAnalyserMigratedfromtheoldBE_7246/operative_set_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="396" alt="operative_set" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/The.0LatencyAnalyserMigratedfromtheoldBE_7246/operative_set_thumb.png" width="644" border="0" />&#160;</a> </p>  <p>If we switch to the trace view, we can see that almost all the latency is caused from calls to a java.util.logging Logger. </p>  <p><a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/The.0LatencyAnalyserMigratedfromtheoldBE_7246/casus_latencium_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="396" alt="casus_latencium" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/The.0LatencyAnalyserMigratedfromtheoldBE_7246/casus_latencium_thumb.png" width="644" border="0" /></a> </p>  <p>Now, if we remove those logging calls, almost no Java Synchronization events remain, and thus the latency caused by those events have been eliminated. See below for a picture of a recording with the logging calls eliminated. </p>  <p><a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/The.0LatencyAnalyserMigratedfromtheoldBE_7246/logging_removed_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="396" alt="logging_removed" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/The.0LatencyAnalyserMigratedfromtheoldBE_7246/logging_removed_thumb.png" width="644" border="0" /></a> </p>  <p>JRockit Mission Control 3.0 was recently made generally available. For more information about the features in Mission Control 3.0, please see the R27.3 release notes and the Mission Control Documentation. </p>  <p>For information about what was introduced with Mission Control 2.0, please see my previous blog entry - <a href="http://blogs.oracle.com/hirt/2008/08/jrockit_mission_control_20_sne.html">Mission Control 2.0 Sneak Peak</a></p>]]></description>
         <link>http://blogs.oracle.com/hirt/2008/08/the_mission_control_30_latency.html</link>
         <guid>http://blogs.oracle.com/hirt/2008/08/the_mission_control_30_latency.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">JRockit Mission Control</category>
        
        
         <pubDate>Mon, 04 Aug 2008 15:24:41 +0100</pubDate>
      </item>
      
      <item>
         <title>Unorthodox Uses of the Memory Leak Detection Tool - Part 1 (Migrated from the old BEA blog)</title>
         <description><![CDATA[<p>The JRockit Memory Leak Detection tool (henceforth abbreviated Memleak) is part of JRockit Mission Control 2.0, the JRockit tools suite. It has served many people quite well in hunting for memory leaks in Java, i.e. hunting for the cause to why objects that shouldn't be in use still have references to them. </p>  <p>How to hunt for these memory leaks using the Memleak tool has been discussed to death, so this blog entry is going to show you other fun filled uses of the tool. ;)</p>  <p>First off we'll explore how Memleak can help us look at how any given type is being used within the JVM.</p>  <p>Start Mission Control and hook it up to a JRockit doing pretty much nothing but sleeping. In my case I'm connecting it to a JRockit started on my local machine.</p>  <p><a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/UnorthodoxUsesoftheMemoryLeakDetectionTo_7189/starting_memleak_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="378" alt="starting_memleak" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/UnorthodoxUsesoftheMemoryLeakDetectionTo_7189/starting_memleak_thumb.png" width="644" border="0" /></a>&#160;</p>  <p>You may want to pause the updating of the trend table by pressing the pause button in the toolbar above the table, especially if JRockit is very busy.</p>  <p>After pausing the updating of the table, locate a class for which you want to explore the dependencies, say Hashtable entries (java.util.Hashtable$Entry), and select Show Referring Types from the context menues to see what is pointing to that particular type.</p>  <p><a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/UnorthodoxUsesoftheMemoryLeakDetectionTo_7189/show_referring_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="378" alt="show_referring" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/UnorthodoxUsesoftheMemoryLeakDetectionTo_7189/show_referring_thumb.png" width="644" border="0" />&#160;</a> </p>  <p>You'll find that, not surprisingly, the entries are pointed to by hashtable entry arrays. Click the plus sign to work your way backwards, and you'll find out that, again not very surprisingly, various hashtable clones are pointing to these arrays. Click Hashtable to expand who is using Hashtables. Woooah!? We get a funny arrow directly to Hashtable from our Entry, thus completing a cycle in our graph. </p>  <p><a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/UnorthodoxUsesoftheMemoryLeakDetectionTo_7189/cycle_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="378" alt="cycle" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/UnorthodoxUsesoftheMemoryLeakDetectionTo_7189/cycle_thumb.png" width="644" border="0" />&#160;</a> </p>  <p>Hmmm. Someone is obviously putting Hashtables into Hashtables. Now, who does that? Let's look at the instances that are taking part in that particular relationship. Bring up the context menu on the java.util.Hashtable$Entry, and select show instances. A dialog will pop up, prompting you to select for what relationship you want to list the instances. We select Hashtable, since we want to find out what entries that are pointing to hashtables. We get a list of entries, in my case 5 candidates.</p>  <p><a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/UnorthodoxUsesoftheMemoryLeakDetectionTo_7189/relationships_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="378" alt="relationships" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/UnorthodoxUsesoftheMemoryLeakDetectionTo_7189/relationships_thumb.png" width="644" border="0" />&#160;</a> </p>  <p>As we can see, there are four of them keeping alive more than 100 000 bytes of data. Let's pick the top one - bring up the context menu and select to show who's pointing to that particular instance (Show Referring Instances).</p>  <p><a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/UnorthodoxUsesoftheMemoryLeakDetectionTo_7189/show_referring_instances_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="378" alt="show_referring_instances" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/UnorthodoxUsesoftheMemoryLeakDetectionTo_7189/show_referring_instances_thumb.png" width="644" border="0" />&#160;</a> </p>  <p>Working our way backwards we see that it's the com.sun.jmx.mbeanserver.RepositorySupport holding on to a Hashtable that contains Hastables. We can now select the RepostiorySupport instance and verify that it indeed holds Hastables by bringing up the context menu and selecting &quot;Inspect Instance&quot;.</p>  <p><a href="http://blogs.oracle.com/hirt/WindowsLiveWriter/UnorthodoxUsesoftheMemoryLeakDetectionTo_7189/hashtable_found_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="378" alt="hashtable_found" src="http://blogs.oracle.com/hirt/WindowsLiveWriter/UnorthodoxUsesoftheMemoryLeakDetectionTo_7189/hashtable_found_thumb.png" width="644" border="0" /></a> </p>  <p>Summary:</p>  <p>In this example we used the Memory Leak Detector in Mission Control for looking at relations between various types and instances in our running JVM. In this particular case we followed up on where people are putting hashtables into hashtables.</p>]]></description>
         <link>http://blogs.oracle.com/hirt/2008/08/unorthodox_uses_of_the_memory.html</link>
         <guid>http://blogs.oracle.com/hirt/2008/08/unorthodox_uses_of_the_memory.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">JRockit Mission Control</category>
        
        
         <pubDate>Mon, 04 Aug 2008 15:09:51 +0100</pubDate>
      </item>
      
      <item>
         <title><![CDATA[JRCMD Goes Remote (&gt;=R27.1 edition) (Migrated from the old BEA blog)]]></title>
         <description><![CDATA[<h1></h1>  <p></p>  <p>This is an updated version of my JRCMD goes remote blog entry. In version R27 JRockit had a major overhaul of the MBeans used to expose JRockit specific manageability features. One major difference is that the JRockit specific features are not loaded into the platform MBean server by default. To load them, a specific MBean must first be created, which in turn will load the rest of the MBeans exposing the API. The MBeans also moved to a new domain: &quot;bea.jrockit.management&quot;.</p>  <p>The MBean to load is the bea.jrockit.management:JRockitConsole MBean. This can be done by simply using the MBeanServerConnection, for example like this:</p>  <pre>MBeanServerConnection#createMBean(
   &quot;bea.jrockit.management.JRockitConsole&quot;, null);</pre>

<p>The following example is an altered version of my old &quot;JRCMD Goes Remote&quot; blog that, just like the JRCMD, allows the performance counters and ctrl-break handlers to be read/executed - but remotely from another machine. </p>

<hr />

<pre>import java.lang.management.ManagementFactory;
import java.net.MalformedURLException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

<p>import javax.management.Attribute;<br />
import javax.management.InstanceNotFoundException;<br />
import javax.management.MBeanAttributeInfo;<br />
import javax.management.MBeanServerConnection;<br />
import javax.management.ObjectName;<br />
import javax.management.remote.JMXConnector;<br />
import javax.management.remote.JMXConnectorFactory;<br />
import javax.management.remote.JMXServiceURL;</p>

<p>/**<br />
 * Simple code example on how to execute ctrl-break handlers remotely.<br />
 * <br />
 * Usage: RemoteJRCMD -host <host> -port <host> -user <user> -pass <password><br />
 * -command <command> [<params>]<br />
 * <br />
 * All arguments are optional. If no command is specified, all performance<br />
 * counters and their current values are listed.<br />
 * <br />
 * @author Marcus Hirt<br />
 */<br />
public class RemoteJRCMD {<br />
  private final static String   KEY_CREDENTIALS                = &quot;jmx.remote.credentials&quot;;<br />
  private final static String   JROCKIT_PERFCOUNTER_MBEAN_NAME = &quot;bea.jrockit.management:type=PerfCounters&quot;;<br />
  private final static String   JROCKIT_CONSOLE_MBEAN_NAME     = &quot;bea.jrockit.management:type=JRockitConsole&quot;;<br />
  private final static String[] SIGNATURE                      = new String[] { &quot;java.lang.String&quot; };<br />
  private final static String   DIAGNOSTIC_COMMAND_MBEAN_NAME = &quot;bea.jrockit.management:type=DiagnosticCommand&quot;;</p>

<p><br />
  public static void main(String[] args) throws Exception {<br />
    HashMap<string string ,> commandMap = new HashMap<string string ,>();<br />
    commandMap.put(&quot;-host&quot;, &quot;localhost&quot;);<br />
    commandMap.put(&quot;-port&quot;, &quot;7091&quot;);<br />
    for (int i = 0; i &lt; args.length; i++) {<br />
      if (args[i].startsWith(&quot;-&quot;)) {<br />
        StringBuilder buf = new StringBuilder();<br />
        int j = i + 1;<br />
        while (j &lt; args.length &amp;&amp; !args[j].startsWith(&quot;-&quot;)) {<br />
          buf.append(&quot; &quot;);<br />
          buf.append(args[j++]);<br />
        }<br />
        commandMap.put(args[i], buf.toString().trim());<br />
        i = j - 1;<br />
      }<br />
    }<br />
    executeCommand((String) commandMap.get(&quot;-host&quot;), Integer<br />
        .parseInt(commandMap.get(&quot;-port&quot;)), commandMap.get(&quot;-user&quot;), commandMap<br />
        .get(&quot;-password&quot;), commandMap.get(&quot;-command&quot;));<br />
  }</p>

<p>  public static void executeCommand(String host, int port, String user,<br />
      String password, String command) throws Exception {<br />
    MBeanServerConnection server = null;<br />
    JMXConnector jmxc = null;<br />
    Map<string  , String[]> map = null;<br />
    if (user != null || password != null) {<br />
      map = new HashMap<string  , String[]>();<br />
      final String[] credentials = new String[2];<br />
      credentials[0] = user;<br />
      credentials[1] = password;<br />
      map.put(KEY_CREDENTIALS, credentials);<br />
    }<br />
    // Use same convention as Sun. localhost:0 means &quot;VM, monitor thyself!&quot;<br />
    if (host.equals(&quot;localhost&quot;) &amp;&amp; port == 0) {<br />
      server = ManagementFactory.getPlatformMBeanServer();<br />
    } else {<br />
      jmxc = JMXConnectorFactory.newJMXConnector(<br />
          createConnectionURL(host, port), map);<br />
      jmxc.connect();<br />
      server = jmxc.getMBeanServerConnection();<br />
    }</p>

<p>    System.out.println(&quot;Connected to &quot; + host + &quot;:&quot; + port);</p>

<p>    try {<br />
      server.getMBeanInfo(new ObjectName(JROCKIT_CONSOLE_MBEAN_NAME));<br />
    } catch (InstanceNotFoundException e1) {<br />
      server.createMBean(&quot;bea.jrockit.management.JRockitConsole&quot;, null);<br />
    }</p>

<p>    if (command == null) {<br />
      ObjectName perfCounterObjectName = new ObjectName(<br />
          JROCKIT_PERFCOUNTER_MBEAN_NAME);<br />
      System.out.println(&quot;Listing all counters...&quot;);<br />
      MBeanAttributeInfo[] attributes = server.getMBeanInfo(<br />
          perfCounterObjectName).getAttributes();<br />
      System.out.println(&quot;Counter\tValue\n=======\t====&quot;);</p>

<p>      String[] attributeNames = new String[attributes.length];<br />
      for (int i = 0; i &lt; attributes.length; i++) {<br />
        attributeNames[i] = attributes[i].getName();<br />
      }<br />
      Iterator valueIter = server.getAttributes(perfCounterObjectName,<br />
          attributeNames).iterator();<br />
      while (valueIter.hasNext()) {<br />
        Attribute attr = (Attribute) valueIter.next();<br />
        System.out.println(attr.getName() + &quot;\t=\t&quot; + attr.getValue());<br />
      }<br />
    } else {<br />
      System.out<br />
          .println(&quot;Invoking the ctrl-break command '&quot; + command + &quot;'...&quot;);<br />
      ObjectName consoleObjectName = new ObjectName(DIAGNOSTIC_COMMAND_MBEAN_NAME);<br />
      Object[] params = new Object[1];<br />
      params[0] = command;<br />
      System.out.println(&quot;The CtrlBreakCommand returned: \n&quot;<br />
          + server.invoke(consoleObjectName, &quot;execute&quot;,<br />
              params, SIGNATURE));<br />
    }</p>

<p>    if (jmxc != null) {<br />
      jmxc.close();<br />
    }<br />
  }</p>

<p>  private static JMXServiceURL createConnectionURL(String host, int port)<br />
      throws MalformedURLException {<br />
    return new JMXServiceURL(&quot;rmi&quot;, &quot;&quot;, 0, &quot;/jndi/rmi://&quot; + host + &quot;:&quot; + port<br />
        + &quot;/jmxrmi&quot;);<br />
  }<br />
}</pre></p>

<hr />

<p>The following example would list all the performance counters and their values on localhost on the default port (7091): </p>

<blockquote>
  <p><code>java RemoteJRCMD</code> </p>
</blockquote>

<p>The following example would start a 60 second JRA recording on a JRockit running at the host bitsy, port 7099, writing the resulting recording to a file called nisse.zip: </p>

<blockquote>
  <p><code>java RemoteJRCMD -command jrarecording filename=nisse time=60 -host bitsy -port 7091</code> </p>
</blockquote>

<p>And as always, don't forget to enable the JMX management agent of the JRockit you wish to monitor. You can enable the management agent by using the -Xmanagement option like so:</p>

<blockquote>
  <p><code>-Xmanagement:port=7091,ssl=false,authenticate=false</code></p></blockquote>]]></description>
         <link>http://blogs.oracle.com/hirt/2008/08/jrcmd_goes_remote_r271_edition.html</link>
         <guid>http://blogs.oracle.com/hirt/2008/08/jrcmd_goes_remote_r271_edition.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">JRockit</category>
        
        
         <pubDate>Mon, 04 Aug 2008 14:52:19 +0100</pubDate>
      </item>
      
   </channel>
</rss>
