Find JSRs
Submit this Search

Ad Banner

Summary  |  Proposal  |  Detail (Summary & Proposal)
JSRs: Java Specification Requests
JSR 174: Monitoring and Management Specification for the JavaTM Virtual Machine

Stage Access Start Finish
Final Release Download page 30 Sep, 2004  
Final Approval Ballot View results 31 Aug, 2004 13 Sep, 2004
Proposed Final Draft Download page 09 Aug, 2004  
Public Review Download page 14 Oct, 2003 13 Nov, 2003
Community Draft Ballot View results 22 Jul, 2003 28 Jul, 2003
Community Review Login page 26 Jun, 2003 28 Jul, 2003
Expert Group Formation   02 Apr, 2002  
JSR Review Ballot View results 19 Mar, 2002 01 Apr, 2002
Status: Final
JCP version in use: 2.1
Java Specification Participation Agreement version in use: 1.0

A specification for APIs for monitoring and management of the JavaTM virtual machine.

Please direct comments on this JSR to the Spec Lead(s)

Specification Leads
  Flavio Bergamaschi IBM
Expert Group
  BEA Systems Cyanea Systems Corp. Hewlett-Packard
  Hitachi, Ltd. IBM Intel Corp.
  Opnet Technologies, Inc Oracle Pramati Technologies
  Progress Software SAP SE Sitraka
  Sun Microsystems, Inc. Wasler, David Wily Technology, Inc.

Original Java Specification Request (JSR)

Identification | Request | Contributions

Section 1. Identification

Submitting Member: IBM and Sun Microsystems, Inc.

Name of Contact People: Flavio Bergamaschi & Mandy Chung

E-Mail Address:,

Telephone Number: +44 1962 815853, +1 408 276 7045

Fax Number: +44 1962 818999, +1 408 276 7700

Specification Lead: Flavio Bergamaschi

E-Mail Address:

Telephone Number: +44 1962 815853

Fax Number: +44 1962 818999

Initial Expert Group Membership:

Sun Microsystems, Inc.
other JavaTM Licensees
other Tools Vendors

Supporting this JSR:

Sun Microsystems, Inc.

Section 2: Request

2.1 Please describe the proposed Specification:

A specification for APIs for monitoring and management of the JavaTM virtual machine. These APIs will provide Java applications, system management tools and RAS-related tools with the ability to monitor the health of the Java virtual machine as well as manage certain run-time controls such as:

  • Health Indicators
    • Class load/unload
    • Memory allocation statistics
    • Garbage collection statistics
    • Monitor info & statistics
    • Thread info & statistics
    • Just-in-Time statistics
    • Object info (show/count all objects in the Java heap)
    • Underlying OS and platform info
    • etc.

  • Run-Time Control
    • Minimum heap size
    • Verbose GC on demand
    • Garbage collection control
    • Thread creation control
    • Just-in-Time compilation control
    • etc.

The APIs will be designed with the following characteristics:

  • Very low performance impact, even when events are being monitored
  • Restricted to low frequency events
  • Interface should be self describing (i.e. interface should not be described statically)
  • Mandatory and optional set of events and control values

These characteristics suggest the need for Java APIs to support self monitoring of Java applications as well as native interfaces to support tools requiring minimal perturbation of the system.

Support for existing system management standards such as JMX and CIM/WBEM will also be considered.

A new JavaTM Platform Profiling Architecture is being developed (JSR-163) which appears to have some functional overlap with the health indicators. If conflicting requirements do not preclude a single interface, one will be developed in concert with the JSR-163 Expert Group.

2.2 What is the target Java platform? (i.e., desktop, server, personal, embedded, card, etc.)

Java 2 Standard Edition

2.3 What need of the Java community will be addressed by the proposed specification?

This specification is intended to provide the underlying support for JVMTM monitoring and management from within Java applications as well as remote access by system management applications and RAS-related tools.

2.4 Why isn't this need met by existing specifications?

The majority of the existing monitoring and management options and techniques are very limited, lack functionality, degrade performance, and are unreliable and non standard, leading to a multitude of disconnected solutions.

2.5 Please give a short description of the underlying technology or technologies:

See item 2.1 above.

2.6 Is there a proposed package name for the API Specification? (i.e., javapi.something, org.something, etc.)

Not yet.

2.7 Does the proposed specification have any dependencies on specific operating systems, CPUs, or I/O devices that you know of?


2.8 Are there any security issues that cannot be addressed by the current security model?


2.9 Are there any internationalization or localization issues?


2.10 Are there any existing specifications that might be rendered obsolete, deprecated, or in need of revision as a result of this work?


2.11 Please describe the anticipated schedule for the development of this specification.

Inclusion in the J2SE Tiger release.

2.12 Please describe the anticipated working model for the Expert Group working on developing this specification.

Primarily email communication. Teleconference and face to face meetings as required.

Section 3: Contributions

3.1 Please list any existing documents, specifications, or implementations that describe the technology. Please include links to the documents if they are publicly available.


3.2 Explanation of how these items might be used as a starting point for the work.