By Acshorten-Oracle on May 13, 2015
One of the major advantages of the Oracle WebLogic Server Management Pack Enterprise Edition is the JVM Diagnostics (JVMD) engine. This tool allows java internals from JVM's to be sent to Oracle Enterprise Manager for analysis. It has a lot of advantages:
- It provides class level diagnostics for all classes in executed including base and custom classes.
- It provided end to end diagnostics when the engine is deployed with the application and the database.
- It has minimal impact on performance as the engine uses the JVM monitoring API's in memory.
It is possible to use JVMD with Oracle Utilities Application Framework in a number of ways:
- It is possible to deploy JVMD agent to the WebLogic servers used for the Online and Web Services tiers.
- It is possible to deploy the JVMD database agent to the database to capture the code execution against the database.
- It is possible to use standalone JVMD agent within threadpoolworkers to gather diagnostics for batch.
This article will outline the general process for deploying JVMD on the online servers. The other techniques will be discussed in future articles.
The architecture of JVMD can be summarized as follows:
- JVMD Manager - A co-ordination and collection node that collates JVM diagnostic information sent by JVM Agents attached to JVM's. This manager exposes the information to Oracle Enterprise Manager. The Manager can be installed within an OMS, standalone and multiple JVM Managers are supported to support large networks of agents.
- JVMD Agents - A small java based agent that is deployed within a JVM it is monitoring that collects Java diagnostics (primarily from memory, to minimize performance impact of collection) and sends them to a JVMD Manager. Each agent is hardwired to a particular JVMD Manager. JVMD Agents can be deployed to J2EE containers, standalone JVM's and the database.
The diagram below illustrates this architecture:
Before starting the process, ensure that the Oracle WebLogic Server Management Pack Enterprise Edition is licensed and installed (manually or via Self Update).
- Install the JVMD Manager - Typically the JVMD Manager is deployed to the OMS Server but can also be deployed standalone and/or multiple JVMD managers can be installed for larger numbers of targets to manage. There is a video from Oracle Learning Library on Youtube explaining how to do this step.
- Deploy the JVMD Agent to the Oracle WebLogic Server housing the product online using the Middleware Management function within Oracle Enterprise Manager using the Application Performance Management option. This will add the Agent to your installation. There is a process for deploying the agent automatically to a running WebLogic Server. Again there is a Youtube video describing this technique.
One the agent is installed the JVMD agent will start sending diagnostics of java code running within that JVM to Oracle Enterprise Manager.
Customers using the Oracle Application Management Pack for Oracle Utilities will see the JVMD link from their Oracle Utilities targets (it is also available from the Oracle WebLogic targets). For example:
Once selecting the Java Virtual Machine Pool for the server you will get access to the full diagnostics information.
This include historical analysis
JVMD is a useful tool for identifying bottlenecks in code and in the architecture. In future articles I will add database diagnostics and batch diagnostics to get a full end to end picture of diagnostics.