JVM Insight
 


Introduction
In this Insight article I would like to introduce a new feature, JVMInsight, that we recently made available in early access releases of JXInsight 4.1. JVMInsight is an extensible and configurable repository inspection solution that enables the JXInsight management and monitoring console to display additional state information acquired from a server's (local and remote) repositories.

Having the ability to access such detailed runtime configuration and state information from a production JVM is crucial in resolving service performance and outage problems. For developers this information provides a level of detail normally provided by a Java debugger but without the overhead. For testers the information can be stored for ongoing change & configuration management activities. With the ability to configure the automatic export of information from multiple repositories in the event of a runtime event (request failure, performance slowndown, JVM shutdown) operations and support staff have a powerful tool for post analysis of related incidents and service calls. Consolidating the performance profile, metric and tracing information with the runtime state and configuration enables remote support staff to work on resolving issues without the need to have actual physical access to the production systems.


Repositories
A repository is simply any information store accessible from within the server's JVM. The information can be transient or persistent as well as volatile or static. Standard repository technolgies found in J2EE and Java applications include JNDI, JDBC, RMI Registry, CORBA Naming Service, JMX MBeanServer, Java Management and Monitoring API. A repository could be an instance of a resource manager such as Java Logging LogManager or JDBC DriverManager.

With JXInsight 4.1 early access #4 we have shipped the following repository providers:
In upcoming releases we are planning to delivery repositories for:
  • BEA WebLogic 8.1 Management and Monitoring
  • Standard Compliant JMX MBeanServers
  • Standard Compliant Java EE 1.4 Management and Monitoring Containers (BEA, Sun JSAS...)
  • Java RMI Registry
  • JDBC DriverManager and DataSources (DatabaseMetaData)
  • BEA JRockit Profiling System

Probably the best way to highlight the benefit of a real-time configuration and state inspection solution is to show the actual type of repository information that can be displayed within the console. But first lets explain the common elements of the graphics below. The top node in all tree views represents the RepositoryProvider. All other tree nodes can be one of the following types: Object, Property and Folder. An Object, drawn as a full circle, is an identifable information structure within the repository. A Property, drawn as an empty circle, represents an JavaBean property of the Object. A Property's value can be a simple data type, a repository reference or a JXInsight model reference (Class, Thread). A Folder represents a collection of Objects referenced or contained within the parent tree node Object.

Java Naming (JNDI)
The screen shot below shows the in-depth detailed information provided by the Java Naming repository provider access from within a BEA WebLogic 8.1 Server. The naming tree displayed provides a comprehensive representation of the naming service accessed via an instance of InitialContext.




Java SE Management and Monitoring
The JXInsight management and monitoring console can display runtime state and metric information related to memory managers, memory pools, threads, call stacks, monitors, and garbage collectors accessed from within a server JVM (BEA JRockit 5.0) via the standard Java SE Management and Monitoring API.




Java Logging
With JXInsight's JVMInsight feature it is also possible to inspect the configuration of loggers, handlers, and formatters within a remote JVM.




BEA JRockit 1.4.2 JMAPI
Using the JRockit Management API (JMAPI) users can access a wealth information related to the JVM runtime state and configuration such as code generation strategies, garbage collection strategies, threads, call stacks, monitors, processor affinity, classloaders and classes.




HP OpenView ObjectServer (ServiceDesk 5.0)
JXInsight JVMInsight can also collect information from meta data repositories such as HP's OpenView ObjectServer. Repository information related to installed Modules, EntityTypes, Attributes, Templates as well as customized settings can be embedded within JXInsight's trace and profile snapshots enabling the effective delivery of support initiatives - "HP OpenView Self Healing Services".




Future Direction

As the list of runtime state and configuration repositories expands JInspired will deliver improved visualizations as well as powerful searching and comparison capabilities. JXInsight 4.5, scheduled for release in June 2006, will include automatic snapshot quality inspections that use the information within the repositories and the performance snapshots to delivery intelligent analysis and resolution suggestions.


William Louth, JXInsight Product Architect