In particular, this chapter covers the following:
Java Virtual Machine Diagnostics (JVMD) is one of the critical functionalities in Enterprise Manager Cloud Control that enables administrators to diagnose performance problems in Java applications in the production environment. By eliminating the need to reproduce problems, it reduces the time required to resolve these problems, thus improving application availability and performance.
Using JVMD Engine's capabilities, administrators can manage applications effectively and identify the root cause of performance problems in the production environment without having to reproduce them in the test or development environment. The JVMD Engine runs as an Enterprise JavaBeans (EJB) Technology on a WebLogic Server.
The JVMD Agent is deployed on the targeted JVM (the one running a production WebLogic Server). It collects real-time data and transmits it to the JVM Diagnostics Engine. This data is stored in the Management Repository, and the collected information is displayed on Enterprise Manager Cloud Control console for monitoring purposes. The communication between the JVMD Engine and the JVMD Agent can be a secure (SSL) or non-secure connection. Enterprise Manager Cloud Control 13.x does not support JVMD agent backward compatibility. That is, if the OMS is upgraded from 12.x to 13.x then JVMs with 12.x JVMD agents will cease to be monitored. All 12.x JVMD agents will have to be undeployed and 13.x JVMD agents will have to be deployed. It is important to monitor deployment step output (job step output if you are using bulk deployment or output of doing manual deployment) to determine if JVM restart is required.
Starting with 13c Release 1, as part of the Oracle Fusion Middleware Plug-in deployment, one Java Virtual Machine Diagnostics (JVMD) Engine is installed by default on the OMS. For every additional OMS you deploy, you receive one JVMD Engine by default with that OMS. While JVMD Engine is installed by default on the OMS host, you will still need JVMD Agents to be manually deployed on the targeted JVMs.
To install JVMD Agents, use the Setup page that is accessible from within the Enterprise Manager Cloud Control console. To access this page, from the Setup menu, select Middleware Management, then select Engines And Agents.
Figure 8-1 displays the Engines And Agents page.
Figure 8-1 Engines And Agents Page
You can use the Engines and Agents page for the following:
Monitor the availability of all JVMD Engines.
Access information about JVMD Engines such as the hosts to which the JVMD Engines are deployed, their current status, the port on which they are running, their version, and so on.
Deploy, upgrade, and remove JVMD Agents.
Know the number of reporting JVMD Agents, and whether they must be upgraded or not.
You can deploy JVMD Agents on monitored Oracle Cloud targets.
As prerequisites, a Hybrid Cloud Agent must be deployed on the Oracle Cloud target, and a Hybrid Gateway must be configured in Oracle Cloud. The Hybrid Gateway forwards communication from the JVMD Agent (deployed in Oracle Cloud) to the JVMD Engine (deployed on premise, on your OMS host), and from the JVMD Engine back to the JVMD Agent. A single Hybrid Gateway can be utilized by multiple JVMD Agents.
For information on how to deploy a JVMD Agent on an Oracle Cloud target, see Deploying JVMD Agents on Monitored WebLogic Domains.
Before you install JVMD Agents, ensure that the target application server is up and running.
Ensure that you meet the following prerequisites:
This section describes how to deploy JVMD Agents on monitored WebLogic domains. For information on how to deploy JVMD Agents on application servers other than WebLogic Server, see Oracle Enterprise Manager Cloud Control Advanced Installation and Configuration Guide.
To deploy JVMD Agents on monitored WebLogic domains using the Setup page, follow these steps:
If there is any configuration issue with JVMD Engine(s), the Manage JVMD Agents button is disabled.
If you select Expand All from the View menu, you can view the target name, target type, target host, target status, platform, and so on of all the discovered WebLogic Administration Servers and Managed Servers (part of all discovered WebLogic domains).
Select the WebLogic Managed Servers on which you want to deploy JVMD Agents. Click Next.
In case host and domain preferred credentials are already set for the Admin server target, they are automatically applied to the domain, and it is not required to click Apply.
Oracle EMAgent Target Host Credentials are the login credentials for the host on which the Management Agent, that is used to discover the WebLogic domain's Admin Server, is running. Oracle WebLogic Domain Credentials are the credentials for the Administration Server of the selected WebLogic domain.
To set the preferred credentials for a WebLogic domain's Admin server (that is, the preferred EMAgent target host credentials and the preferred Oracle WebLogic Domain credentials), from the Setup menu, select Security, then select Preferred Credentials. Select the Oracle Admin Server target type, then click Manage Preferred Credentials. In the Target Preferred Credentials section, set the preferred host credentials and the preferred WebLogic administrator credentials for the required WebLogic Admin server.
If you want to deploy JVMD Agents on Oracle Cloud targets, select Configure Hybrid Cloud Mode, and specify the Hybrid Cloud Proxy Host and Hybrid Cloud Proxy Port that is configured in Oracle Cloud. When you select Configure Hybrid Cloud Mode, the value for Available JVMD Engine is automatically set to Other, as the JVMD Agent connects to the Hybrid Gateway, which in turn connects to the JVMD Engine.
If you have not selected Configure Hybrid Cloud Mode, then for each WebLogic domain, a default JVMD Engine is selected for each domain. If necessary, to change the Engine selected for a domain, select a new Engine from list of Available JVMD Engine(s) and click Apply. All the JVMD Agents deployed on Managed Servers of the selected WebLogic domain will report to this JVMD Engine. Alternatively, you can select Other to connect to a load balancer in case of multiple engines and manually specify the engine host, port, and protocol details.
In Enterprise Manager Cloud Control 13c, you can deploy multiple JVMD Agents that connect to JVMD Engines using HTTP or HTTPS. Hence, both the HTTP and HTTPS URLs for a JVMD Engine are displayed in the Available JVMD Engines list. However, if you have configured a load balancer in your setup, JVMD Agents can connect to the load balancer using HTTP or HTTPS, but cannot connect to the individual JVMD Engines using HTTPS. Hence, if you have configured a load balancer for your setup, only the HTTP and HTTPS URLs for the load balancer, and the HTTP URLs for the individual JVMD Engines are displayed in the Available JVMD Engines list.
If the WebLogic Home and Middleware Home fields are displayed in this section, specify values for them. The WebLogic Home and Middleware Home fields are displayed if their values could not be obtained internally.
Also, if the WebLogic Administration Server is behind a firewall or on a virtual host, the application may not be able to connect to it using the default information. In this case, you may need to provide additional information in the Advanced Domain Configuration section. For example, if the WebLogic Administration Server is on a virtual host, and the application cannot connect to it using the default host value, you must provide the virtual host IP address for Administration server host.
Under Advanced Domain Configuration, you can specify java args that would be used in the java processes used to deploy JVMD agent. For example, some of the java args that may be required are:
Dweblogic.security.SSL.trustedCAKeyStore=<path to cacert>
A job is created for JVMD Agent deployment. Click the link to view the job progress. Once the JVMD Agent deployment job is successful, you can verify the deployment by navigating to the Setup page, and viewing the JVMD Agents section.
While deploying a JVMD Agent, if the Deploy HTTPDeployer On Target job step fails due to an SSL handshake failure, or if you encounter any other error, refer Oracle Enterprise Manager Cloud Control Advanced Installation Guide.
After deploying JVMD Agents, you can perform the following sanity checks to verify if the JVMD Agents were installed on the Managed Servers successfully:
In Cloud Control, from the Targets menu, select Middleware. On the Middleware home page, select the domain where the JVMD agents were deployed. On the left hand pane, from the Target Navigation section, click Java Virtual Machine Pools to expand the menu. The JVMD targets must appear.
Each of the targets corresponds to one of the Managed Servers chosen for JVMD Agent deployment. All these targets must be up and running.
Log in to the WebLogic Administration console of the domain where the JVMD Agents were deployed. The target Managed Servers should have a new application having the name
javadiagnostics (depending upon the type of deployment), and this application should be up and running.