Skip to main content

That What It Takes

Posted by editor on October 18, 2007 at 10:36 AM PDT

A new diagnostic tool for Java

Writing this blog has been tricky, because the big news of the day is the release of the VisualVM project, a new all-in-one troubleshooting tool for the Java platform. Problem is, while a couple of people have blogged about it, almost nobody has described it in significant detail. And that makes it hard to know what you're going to get with the binary download.

Fortunately, someone mentioned that it had been shown at JavaOne, and while it doesn't appear in any of the technical session PDF's that I looked through, Mandy Chung has posted a PDF (592 KB) of the BoF session, "Visualize Runtime Problems:
A New All-in-One Troubleshooting Tool".

Reading this, we can better understand the runtime problems that VisualVM is meant to address, specifically given the fact that most JDK diagnostic tools are geared to a single task (consider jstack, jmap, jstat, jinfo, jhat, etc.). There's no integration between tools, and no performance tool at all. So, the VisualVM offers "a graphical tool from monitoring, performance
analysis to troubleshooting", suitable for production use, as it can be attached to a running JVM. VisualVM integrates integrates jps, jstack, jstat, jmap, and jinfo, along with CPU and memory profiling functionality, and a heap walker for heap analysis.

And beyond that, I think the next step is to download the VisualVM and try it out. Hmm... 7.8 MB zip. Hope it runs on the Mac Java 5.0 JVM...

Also in Java Today,
OpenMark is an innovative online assessment system developed by The Open University, then released under the GPL. OpenMark differs from many CAA systems in its emphasis on feedback, its allowing of multiple attempts, the breadth of interactions supported, and its design for anywhere, anytime use.
Version 1.4.0 is the first stable release since the code was open-sourced. The developers say, "please give it a try and let us know what you think."

Ericsson AB has submitted JSR-319, Availability Management for Java. "The purpose of the Availability Management for Java is to enable availability frameworks to supervise and to control Java runtime units in a standardized way." To do this, the framework is meant to "coordinate redundant resources within a cluster to deliver a system with no single point of failure," by deciding how to distribute software resources across the cluster, manage activation and deactivation of those resources and monitor their health, handle error recovery, and more. The JSR review period runs through October 29.

James Stauffer wonders about Type inference in Java in today's Weblogs.
"I initially asked about adding dynamic types to Java but someone pointed out that I probably wanted type inference instead. So, would type inference be a good fit for Java?"

Fabrizio Giudici gives
Gutsy Gibbon: thumbs up.
"Tomorrow is the day of Linux Ubuntu 7.10, "Gutsy Gibbon" - but I have already installed the Release Candidate.Well, thumbs up for it! The installation on both my MacBook Pro and Mac Mini Core Duo went fine, with no special operations required."

Fabrizio also wonders about Java ME porting possibilities as Apple opens the iPhone and the iPod Touch.
"Good news. Now let's hope that the SDK will allow the porting of PhoneME and JavaFX (and - who knows - maybe also a full fledged J2SE?)."

In today's Forums,
woel needs EJB design guidance in
Re: Enumeration mapping JPA.
"I could also use some design advice: Do you usually put EJB QL queries in you entity or session beans? I currently have all queries in my session beans. If I for example want to filter a set of entities in a one-to -many relationship, would you add a getter method to the entity bean which retrieves them with a EJB QL query? Also, do you have a solution how to create a query where you want to filter the result in where statement for all entities that exist in a set. Example "select objects from table where objects.value in ('x','y','z')". I have only managed to create a query like this by just building a String. I cannot seem to use query.setParameter and replace the values in the in statement with a ":set"."

Still on the topic of JPA, wfsaxton posts a
Basic JPA Question.
"According to the JPA, all entities must have an identifier UNIQUE amongst all entities of its type. I'm in a situation where objects that I wish to persist all have unique identifiers, but the components of these objects do not...they only have unique identifiers amongst the other components within the object that contains them. So, for example, if I have a "Server" object, with ID "A", which contains a CPU component with ID "1", I could also have a Server object, with ID "B", which contains a CPU with ID "1"."

Finally, Kristian Rink seeks deployment help in
[JDIC] deploying jdic-based application from NetBeans?.
"So far been into building a SystemTray based application which should be run on Linux and Windows, and so by now I want to somehow package this beast to be deployed to our local machines Using NetBeans/Linux for development / build, running the application from within NetBeans works perfectly fine. However in order to get it deployed, I have to add the platform-specific components, and most notably the jdic_stub stuff for both relevant platforms, to the application... Not sure whether this is on-topic on this list, but would anyone around here mind sharing any experience in deploying jdi applications from within NetBeans with me?"

Current and upcoming Java

Registered users can submit event listings for the href=""> Events Page using our href="">events submission form.
All submissions go through an editorial review before being posted to the

Archives and Subscriptions: This blog is delivered weekdays as
the Java
Today RSS feed
. Also, once this page is no longer featured as the
front page of it will be
archived along with other past issues in the href=""> Archive.

A new diagnostic tool for Java