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
Advanced features are to be enabled only on desktops, servers, or cloud deployments covered by an Oracle Java SE Universal Subscription, a legacy Oracle Java SE Subscription, a legacy Java SE Desktop Subscription, or when running on an Oracle Cloud Infrastructure service that permits access to the underlying operating system. Basic features are available to all Java users, whether or not they have an Oracle Java SE Universal Subscription or a legacy Oracle Java SE Subscription.
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
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 JMS Plug-in. 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
JMS supports Apache Tomcat, JBoss, and WebLogic.
JMS Plug-in
Java Management Service (JMS) plug-in allows JMS to interact with hosts and send the data back to the cloud service.
JMS plug-ins are provided by Oracle Management Agent and Oracle Cloud Agent for OCI Compute Instances. Deploy JMS plug-ins on:
- Oracle Cloud Agent: to monitor OCI Oracle Linux compute instances that are in the same tenancy and region
- Oracle Management Agent: to monitor all other hosts
A host that contain deployed JMS plug-ins is a Managed Instance.
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 JMS Plug-in. 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.
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.
Managed Instance
A Managed Instance is a host that contain deployed JMS plug-ins. Hosts can be any computer running in your enterprise, either on premise or in the cloud. A managed instance has a unique identity that's used by JMS to distinguish it from other managed instances and can only be part of a single Fleet at any given time.
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 JMS Plug-in.
For more information, see Managing Plugins with Oracle Cloud Agent.
Oracle Management Agent
Management Agent is installed on a host. It allows the JMS plug-ins to monitor and collect data from the sources that reside on hosts or virtual hosts.
The management agent cloud service is an OCI service that manages management agents and their life cycle. For more details, see Management Agent Concepts.
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 Create 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.