Java News from Saturday, August 14, 2004

IBM has posted the proposed final draft of Java Specification Request (JSR) 174, Monitoring and Management Specification for the Java Virtual Machine. In essence, this would allow external processes to hook into a virtual machine to watch over thread and memory use. According to the draft,

Modern enterprise solutions are complex and often comprise a stack of different distributed products, many of which are Java platform applications. In such an environment, the task of monitoring and managing the solution is very complex and requires a collection of probes and adapters in order to collect the necessary data.

Monitoring and understanding the overall health of the JVM is an important contributor to the management of the solution, and the monitoring should be as non-intrusive as possible in order not to alter the original characteristics of the solution.

JVM monitoring and management will be most useful in customer production environments where it will be used to gather information about the health of the JVM and the application and to dynamically select/configure data collection.

The current specification for the JVM does not include any lightweight standard interface for the monitoring of its health indicators nor for the management of some of its run-time characteristics. The main goal of this specification is to provide the necessary guidelines and recommendations for the definition of a set of APIs to enable the monitoring and management of the JVM. This specification will _not_ propose any interfaces to monitor or manage applications, nor to supply a higher level abstraction to monitoring and management. Monitoring and management intelligence shall be provided by another layer yet to be defined. The expectation is that monitoring and management intelligence shall be provided by 3rd party software vendors.

In essence, JSR174 is about the definition of the data required for the lightweight monitoring and the management of the Java virtual machine.

It's not immediately clear to me why this need isn't met by the Java Virtual Machine Profiling Interface (JVMPI); but one hopes the working group has good reasons for what they're doing.