Getting Started with Java Management Service

Java Management Service (JMS) is a native Oracle Cloud Infrastructure (OCI) service that monitors Java deployments on OCI instances and instances running in customer data centers. It enables you to observe and manage the use of Java in your enterprise.

This chapter includes the following topics:

About Java Management Service

Java Management Service (JMS) is a reporting and management infrastructure integrated with Oracle Cloud Infrastructure Platform services to observe and manage your use of Java SE (on-premise or in the Cloud).

As the stewards of Java, Oracle uniquely leverages its expertise to gain critical insights into Java application behavior, compliance, and performance through JMS and equips you to:
  • Use insights from JMS to optimize your workloads across your enterprise (desktop, server, cloud); and
  • Protect your Java SE investments by identifying outdated Java installations, unauthorized applications, and Java runtime and application mismatches. For example, your application is using JDK 11, but you learn it's using no longer supported JDK 14, which is no longer supported.
JMS offers two levels of capabilities:
  1. Basic features, which includes the Java discovery and usage tracking capabilities available through Java Usage Tracker and file scanning. Basic features allow you to:
    • View the versions and vendor information of Java runtimes running in your systems
    • Identify which Oracle Java versions are being used
    • Identify how many Oracle Java installations are not up to date
    • View the applications running on Oracle Java runtimes
    • Identify which systems run Oracle Java runtimes
  2. Advanced features allow you to:
    • Identify and report potential vulnerabilities (CVE) associated with 3rd party Java libraries used by applications
    • Assess the impact of Oracle JRE and JDK Cryptographic Roadmap on your applications
    • Analyze the usage of application servers
    • Use JDK Flight Recorder (JFR) to gather your application details
    • Download and install Oracle Java versions
    • Remove reported Oracle Java versions
    • Configure JDK post installation actions

Everyone has access to basic features, but advanced features are available only to subscribers.

Java Management Service will track and report Java usage in your fleet by using:

  1. Java Usage Tracker: JMS relies on Java Usage Tracker to report Java usage. Using the Java Usage Tracker, you can monitor Oracle Java Runtime Environment usage and capture information such as the JRE version, vendor, applications running, and other details.
    Note

    Java Usage tracker properties file is truncated once the usage reports are successfully sent to JMS.

    Java Usage Tracker is available for all Oracle JDK 7 runtimes and later releases, as well as the following older Java versions:

    • 6u25 and later updates

    • 5.0u33 and later updates

    • 1.4.2_35 and later updates

    JMS generates the usage tracker in the following locations:

    • central location: for release 1.8.0_60 and later that supports central usage tracker location. The usage tracker is generated during agent installation.
    • locally: for versions earlier than 1.8.0_60 that don't support central usage tracker location. Agents check for older versions periodically and generate local usage tracker properties file for the discovered older Java runtimes.
  2. Attach API: JMS uses Attach API during the execution of advanced features. In addition, JMS uses Attach API to detect and report OpenJDK usage, if any. OpenJDK usage may be reported by JMS during the execution of Scan for Java Libraries in the fleet.
    Note

    To exclude applications from being attached to, include the command line options: -XX:+DisableAttachMechanism and -XX:-UsePerfData.
  3. File scanning: JMS periodically performs file scanning to detect Java runtimes that aren't captured by Java usage tracker or Attach API. OpenJDK binaries will be detected by JMS through file scanning.

System Requirements

Java Management Service currently supports the following operating systems:
Operating System Version - all 64 bit
Windows 2019, 2016, 2012 R2, 10
Note

Currently, these features are not available on Windows:

The JMS plugin for the Oracle Cloud Agent isn’t available for Windows at this time.
Oracle Linux 6, 7, 8
Red Hat Enterprise Linux 6, 7, 8
CentOS 6, 7
SUSE Linux Enterprise Server 12, 15
Ubuntu 20.04.3 LTS

Key Concepts and Terminology

The following concepts and terminology will help you get started with Java Management Service. The Oracle Cloud Infrastructure documentation provides related terminology.

Application

An application refers to a Java program.

The name of an application is derived from the fully-qualified name of its main class by default. An application can run on multiple Java runtimes.

Compartment

A compartment enables you to organize and control access to your cloud resources, such as a Fleet or a Management Agent. A compartment should be thought of as a logical group and not as a physical container.

For more details, see OCI Key Concepts and Terminology.

Compute Instance

A Compute Instance is a host that is provisioned and managed by Oracle Cloud Infrastructure. For more information, see Overview of the Compute Service.

Deployed Application

An application or Java program that is deployed on a Java server.

Fleet

A fleet is the primary collection with which you interact when using JMS. It contains Managed Instances that share rules and policies.

Installation

An installation refers to an installation of a Java Runtime on one or more hosts.

An installation is identified by four attributes:
  • File system path, such as /usr/lib/jvm/jdk13.0.1/
  • Vendor, such as Oracle Corporation
  • Operating System version, such as Linux 5.4.17-2011.7.4.el7uek.x86_64
  • Architecture, such as x64

Java Runtime

A Java Runtime Environment (JRE, or Java Runtime) is a Java Virtual Machine (JVM), Java platform core classes, and supporting Java platform libraries. It's released as a certain version of a distribution or included with a vendor's product release. A Java Runtime can be installed to run a single Application or to be used by many applications.

A Java Runtime is identified by three attributes:
  • Vendor, such as Oracle Corporation
  • Name of distribution to which it belongs, such as OpenJDK Runtime Environment
  • Version, such as 1.8.0_282

When displayed by JMS, a Java Runtime from Oracle indicates if it requires an update.

Java Server

There are two types of Java servers:

  • Web server: A web server delivers static web content such as HTML pages, files, images, videos in response to hypertext transfer protocol (HTTP) requests from a web browser. The web servers handle only HTTP requests and responses.

    Example: Apache Tomcat

  • Application server: An application server enables interaction between end-user clients and server-side application code (business logic) to generate and deliver dynamic content. The client for an application server can be an end-user UI, mobile application, web browser, and so on. The client-server interaction can happen through various communication protocols, including HTTP.

    Examples: WebLogic, JBoss

Log Configuration

JMS uses the OCI Logging service to store inventory, operation logs and crypto analysis logs. Inventory logs are Custom Logs that store the Java Runtime inventory and usage related information reported from the hosts by the Management Agent. Operation logs are Custom Logs for storing the logs related to operations carried out through JMS. Each fleet has its own unique inventory and operation log. Crypto analysis logs are custom logs that hold results of a crypto analysis performed on the fleet. Logs are placed under a Log Group. By relying on logs and JMS reports, you can do additional analytics using Logging Analytics.

Management Agent

A Management Agent is installed on a host. A management agent can be installed directly on a host (for example, a host on your premises or on a third-party cloud platform) or indirectly as a plug-in for an oracle cloud agent (in the case of a Compute Instance). A management agent's plug-ins monitor and collect data from its host, which they then report to the Management Agent Cloud Service.

Management agents are used within JMS to collect data about Java Application, Java Runtimes and Installations. The agent reports the following data to the management agent cloud service:
  • The presence of a Java Runtime installation
  • The start of a Java application
  • The start of a Java Runtime
  • Data provided by Java Usage Tracker

A management agent may have one or more Tags.

See also, Managed Instance.

The management agent cloud service is an OCI service that manages management agents and their life cycle. For more details, see Management Agent Concepts.

Managed Instance

A Management Agent that has been installed on a host is known as a Managed Instance. A host can be any computer running in your enterprise. In most cases, the host is a computer on your premises, but it can be on OCI or on any other cloud platform. A managed instance has a unique identity that's used by JMS to distinguish it from other managed instances.

A managed instance must be contained by only one Fleet.

Managed Server

Managed Servers host business applications, application components, web services, and their associated resources.

You can deploy web applications, web services, and other resources onto the Managed Servers and use the Administration Server only for configuration and management purposes.

As an example, see Managed Servers and Managed Server Clusters.

Oracle Cloud Agent

An Oracle Cloud Agent is a lightweight process that manages plug-ins running on a compute instance. Its plug-ins collect performance metrics, install OS updates, and perform other instance management tasks. An example plug-in is a Management Agent.

For more information, see Managing Plugins with Oracle Cloud Agent.

Tag

A tag is a key-value pair that you use to add metadata to your OCI resources.

JMS uses a tag in the namespace jms with the key fleet_ocid to identify the contents of a fleet. The managed instances contained in a fleet are identified by the tag value corresponding to the OCID of the fleet. (For more information, see Creating a Fleet.)

For a more detailed description of tags, see Tagging Overview.

Tenancy

When you sign up for Oracle Cloud Infrastructure, Oracle creates a tenancy for you or your enterprise. This is a secure and isolated partition within Oracle Cloud Infrastructure where you can create, organize, and administer your cloud resources.

Work Request

A Work Request allow you to monitor long-running operations such as Java Runtime Lifecycle Management operations. When you launch such an operation, JMS creates a work request. A work request is an activity log that enables you to track each step in the operation's progress. Work requests are helpful in the following scenarios:
  • If an operation fails, a Work Request can help you determine which step of the process had an error.
  • Some operations affect multiple resources. For example, a delete Java Runtime operation could affect multiple Java Runtimes, Java Runtime installation paths and Managed Instances. A work request provides a list of the resources that an operation affects.

Getting Help

Follow the guidance below if you encounter an error or issue with Oracle Cloud Infrastructure or need help with Java Management Service.

Review the Troubleshooting chapter.

Review Getting Help and Contacting Support in the OCI documentation.

If you're unable to resolve your issue, open a support service request using the Help menu (Help Menu Icon) in the OCI console.