Java Installations Test

Java installations refer to the Java Runtime Environment (JRE) and Java Development Kit (JDK) versions installed on a server that are required for running Java-based applications and services. Incorrect Java versions, non-compliant installations, Java binaries installed outside standard locations, or improperly configured JVM startup parameters can lead to application failures, security vulnerabilities, memory mismanagement, performance degradation, and unexpected runtime behavior. Additionally, uncontrolled or misconfigured running Java processes may consume excessive system resources and impact overall server stability.

The Java Installations test monitors Java installations across all vendors and reports the number of installed and running Java instances per vendor. It identifies installations that do not meet the configured minimum Java version, detects Java installed outside expected directories, and tracks active Java processes. In addition, the test highlights JVM configuration issues such as missing or conflicting heap settings (Xms/Xmx), inappropriate use of MaxRAMPercentage, and security risks arising from passwords exposed in process arguments. By providing comprehensive visibility into Java version compliance, runtime usage, configuration consistency, and security posture, this test enables administrators to proactively resolve compatibility issues, optimize resource utilization, enforce standards, and ensure the stable, secure operation of Java-based workloads.

This test is disabled by default. To enable the test, go to the enable / disable tests page using the menu sequence : Agents -> Tests -> Enable/Disable, pick the desired Component type, set Performance as the Test type, choose the test from the disabled tests list, and click on the < button to move the test to the ENABLED TESTS list. Finally, click the Update button.

Target of the test : Any host system

Agent deploying the test : An internal agent

Outputs of the test : One set of results for every Java vendor on the monitored host system.

Configurable parameters for the test
Parameter Description

Test Period

How often should the test be executed.

Host

The host for which the test is to be configured.

Port

The port on which the server is listening. By default, it is given as NULL.

Java Minimum Version

Specify the minimum Java version that installations on the target host are expected to comply with. By default, this is set to none, indicating that no version compliance check is enforced. If a version value is configured, the test compares all detected Java installations against the specified version and reports those that do not meet the requirement in the Java installations not compliant with minimum version measure. Specify the version in one of the following formats: 12.0.11 or 15 or 7u341 or J2SE Development Kit 5.0 Update 20.

Exclude Installs

Specify a comma-separated list of Java installations that should be excluded from monitoring. Wildcard patterns are supported. By default, *egurkha*, *egvm* are excluded from monitoring. If you wish to exclude more installations, you can specify in this text box.

Exclude Java Processes

Provide a comma-separated list of Java processes that should be excluded from monitoring. By default, this is set to none. One or more Java process names can be provided as comma-separated values using wild card patterns.

DD Frequency

Refers to the frequency with which detailed diagnosis measures are to be generated for this test. The default is 1:1. This indicates that, by default, detailed measures will be generated every time this test runs, and also every time the test detects a problem. You can modify this frequency, if you so desire. Also, if you intend to disable the detailed diagnosis capability for this test, you can do so by specifying none against DD frequency.

Detailed Diagnosis

To make diagnosis more efficient and accurate, the eG Enterprise embeds an optional detailed diagnostic capability. With this capability, the eG agents can be configured to run detailed, more elaborate tests as and when specific problems are detected. To enable the detailed diagnosis capability of this test for a particular server, choose the On option. To disable the capability, click on the Off option.

The option to selectively enable/disable the detailed diagnosis capability will be available only if the following conditions are fulfilled:

  • The eG manager license should allow the detailed diagnosis capability
  • Both the normal and abnormal frequencies configured for the detailed diagnosis measures should not be 0.
Measurements made by the test
Measurement Description Measurement Unit Interpretation

Number of Java installations

Indicates the total number of Java installations detected for this vendor on the target host.

Number

 

Java installations not compliant with minimum version

Indicates the number of Java installations for this vendor that do not meet the configured minimum Java version.

Number

A non-zero value is a cause for concern, as outdated Java versions may expose the system to security vulnerabilities, compatibility issues, and unsupported runtime behavior.

Java not in 'Program Files' location

Indicates the number of Java installations for this vendor that are not installed under the standard Program Files directory.

Number

This measure is only reported for Microsoft Windows and related components.

Java installations outside expected directories may indicate non-standard setups, manual installations, or potential security risks, making management and patching more difficult.

Running Java instances

Indicates the number of Java processes currently running on the host for this vendor.

Number

A high value suggests heavy Java workload activity. This may be expected in application servers, but unexpected spikes could indicate runaway processes or misconfigured applications.

Java processes running without Xmx settings

Indicates the number of running Java processes for this vendor that do not have maximum heap size (Xmx) configured.

Number

Java processes without Xmx limits may consume excessive memory, potentially leading to memory exhaustion and system instability.

Java processes running with multiple Xmx settings

Indicates the number of Java processes for this vendor that are started with multiple Xmx parameters.

Number

Multiple Xmx values can cause ambiguity in heap size allocation and may result in unpredictable JVM behavior. This typically points to misconfigured startup parameters.

Java processes with passwords in arguments

Indicates the number of Java processes for this vendor that have passwords exposed in their startup arguments.

Number

This is a security risk, as credentials passed in command-line arguments can be visible to other users or processes on the system.

Java processes with MaxRAMPercentage in arguments

Indicates the number of Java processes for this vendor that are configured with the MaxRAMPercentage JVM option.

Number

This shows that JVM memory usage is dynamically tuned based on available system memory. While useful in containerized or dynamic environments, improper values may still lead to memory pressure.

Java processes with Xms-Xmx inconsistencies

Indicates the number of Java processes for this vendor where the initial heap size (Xms) and maximum heap size (Xmx) settings are inconsistent.

Number

Inconsistent Xms and Xmx values can lead to frequent heap resizing, increased garbage collection overhead, and degraded application performance.