Getting Started with Java Management Service
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).
- 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.
- 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
- 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:
- 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.
-
- 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
. - 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
Operating System | Version - all 64 bit |
---|---|
Windows | 2019, 2016, 2012 R2, 10
Note
Currently, these features are not available on Windows:
|
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.
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.
- 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.
- 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.
- 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
- 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 () in the OCI console.