Native Support:
The sections above discussed the general requirements that any
monitoring model has to support. The API also provides
guidelines for a native interface that can be used to
externalize the JVM monitoring data. Most of the time JVM data
collected through monitoring is used internally for self
monitoring the JVM. These are cases when this JVM data needs to
be externalized so that JVMs can be monitored externally.
Typical users are system administrators who would need this data
to do continuous production monitoring. Other users could be IT
support engineers who need the JVM data to troubleshoot problems
in production and finally, development teams which require
production data to enhance performance.
The Monitoring API proposes a native interface to externalize
the monitoring data discussed above. These interfaces can be
defined by the utilizing the "self-describing extensions"
defined in the JVM tools interface (JVMTI) outlined in the JSR
163.
The native interface should support late binding of native
agents without a JVM restart and connection to multiple agents
and will help in the coordination of these multiple agents. They
shall provide multi-thread safe operation. The native system
shall provide facilities to monitor the life cycle of classes.
Related Specifications:
JVMTI:
The Java Virtual Machine Tool Interface (JVMTI) is defined as
part of the JSR 163 and is an API designed for developing tools
for monitoring and development. It provides a mechanism to query
the state of a JVM and control execution of applications running
in a JVM. JVMTI can be used for profiling, debugging, monitoring
and thread analysis to name a few. JVMTI can also help monitor
events and then notify JVMTI client of any events they are
registered to receive. The clients are usually thin and can be
controlled by the same JVM or by a separate JVM. Tools can be
directly written to the JVMTI or by using the high level
interfaces defined by the API. The JVMTI is an extension of the
Java Platform Debugger Architecture (JPDA).
JVMDI
The Java Virtual Machine Debug Interface (JVMDI) is a
programming interface used by debuggers and other programming
tools. JVMDI clients run in the same virtual machine in which
the application being debugged is running and access JVMDI
through a native interface. The native interface works with
minimal intrusion on the part of a debugging tool. JVMDI
describes the facilities provided by a JVM which can help in
debugging the applications running under that JVM. JVMDI is one
layer within the Java Platform Debugger Architecture (JPDA). The
JPDA is briefly discussed below.
JPDA:
The JPDA provides the infrastructure required for building
debugger applications for the Java 2 Platform. JPDA is included
in the J2SE 1.3 version. This API provides a standard interface
to write debugging tools, irrespective of the platform,
operating system and the JVM implementation.
Conclusion:
The JVM Monitoring API is just a proposed guideline for third
party tool developers to create monitoring tools. The API is not
a self-contained specification for developing tools but uses
relevant portions of the JVMTI so that details are not
duplicated. Ultimately the API would go as part of the JSR 163
where general specifications for tool developing would be
defined.
Benoy Jose is a web developer with over six years of experience
in J2EE and Microsoft technologies. He is a Sun Cetified
programmer and enjoys writing technical and non-technical
articles for various magazines.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.