C2B2 logo icon

Java Mission Control Released

It’s been almost three years since Oracle announced theplans to converge Sun’s HotSpot JVM and BEA’s JRockit JVM, and we have thefirst official release of one of the most eagerly anticipated components fromthat convergence: Mission Control for the HotSpot JVM.
JRockit Mission Control is something we’ve already coveredon this blog and has been a firm favourite of ours when we need to get moreinsight into the JVM, both for recording historical data with the FlightRecorder and for seeing live data with the Mission Control GUI itself.
Java Mission Control has been a long time coming, due to thecomplexity of porting the features over to an entirely different implementationof Java. Indeed some features, like Memleak, aren’t available yet.

Flight Recorder

One of my own favourite features of Mission Control, FlightRecorder relies on capturing JVM events and so, if you’ve been used to theflight recordings of JRockit, you’ll notice that there are plenty of differences!In reality, Oracle has done a great job of bringing all the features of FlightRecorder over to HotSpot and most differences are improvements. Marcus Hirt has blogged extensively about itall.
The main thing to note about Flight Recorder, and probablythe one that will catch out the most first-time users, is that it is notenabled by default! Mission Control and Flight Recorder have always beenpremium, commercial features but since JRockit wasn’t a free JVM untilrelatively recently (and even now, licensing prevents it being used for free inanything but development) this was never a problem. If you’re running JRockit,you must have paid for it, so no features are restricted!
Today, however, Oracle are still offering Mission Controland Flight Recorder as premium features but you need to explicitly tell the JVMthat you have paid for them by following Marcus’ First Rule of FlightRecording:
Thou Shalt Never Forget to Start Your JVM with
-XX:+UnlockCommercialFeatures -XX:+FlightRecorder
Without those JVM flags, you won’t be able to useFlightRecorder!


Where’s Memleak?

A notable absence in this release is Memleak. Memleak is, asthe name would suggest, a tool for helping you find and diagnose memory leaks.It can analyse the heap on a live system and gives a great visual overview ofhot objects and their references.
While it’s not available at the moment, it is still plannedto be included in an upcoming release! For those of you who are really desperateto analyse your heap, there is a plugin available called JOverflow. It’s still experimental,but will provide heap dump analysis based on pattern recognition.


Anything else?

Java Mission Control is still developing, so there are manythings in the pipeline that we know about and can expect, like the addition ofMemleak, and I have no doubt that there are many other things that we don’t yetknow about. The best place to look is the JMCrelease notes for a summary of the newest features that I’ve mentioned andthose I haven’t.