# Java Runtime

## How Avantra uses Java

Avantra is a Java application and so requires a valid runtime environment in order to function. This is the case for both the Avantra Server runtime as well as the Avantra Agent runtime however the JRE requirements for each may differ slightly. Please note that Avantra recommends the use of the Temurin JRE as provided by Adoptium from the Eclipse foundation (formerly known as Adopt OpenJDK) and this is the JRE upon which we perform our own mass testing.

| Avantra software is currently transitioning to use Java runtime version 17. During this transition you will be required to have certain components running under Java 17 and others under Java 8. Please read all release notes and upgrade guides carefully to ensure you are correctly setting up your environment during this transition. With the release of Avantra 24.X in late 2023, it is expected that all Avantra components will require Java runtime version 17.

## Keep Java up to date

It is incredibly important to keep the Java runtime for your Avantra landscape up to date within (typically) 6 months of a new Java runtime release (or earlier if your organizational policies dictate). Java is frequently updated by the maintainers and each update usually includes security and bug fixes which are important to apply to your Avantra landscape. Avantra uses only LTS (long term support) versions of Java (8 & 17) which typically see updated releases monthly. Keeping within 6 releases of the most current version of the major LTS runtime is good practice. Customers are also encouraged to regularly review Java release notes to ensure appropriate action is taken in the event of a major security alert that would required immediate updates.

| If you raise a support query with Avantra where the Java runtime is out of date (older than 6 months), Avantra support will most likely ask you to upgrade the Java before performing any other action to ensure that the issue is not being caused by an outdated runtime.

## Supported Versions

### JRE for Avantra Server

For the Avantra Server, we support the use of Java runtime version 8 for Avantra Server versions 23.x and below. For Avantra Server versions 24.x and above, you must use a Java runtime version 17. During the installation you can provide the location of your desired JRE or else the installer will attempt to detect a valid JRE installation.

Supported JRE versions for Avantra Server
Server Version | JRE 8 | JRE 17
--- | --- | ---
23.x and below |
    YES
    NO
24.x and above |
    NO
    YES

### JRE for Avantra Agent

For the Avantra Agent 23.2.x and below, Avantra supports the use of Java 8 only. For the Avantra Agent 24.x and above, Avantra supports the use of Java 17 only. Avantra Agent 23.3.x supports both Java 8 and 17 to facilitate a seamless upgrade to the new Java runtime.

Supported JRE versions for Avantra agents
Agent Version | JRE 8 | JRE 17
--- | --- | ---
23.2.x and below |
    YES
    NO
23.3.x up to 23.9.x |
    YES
    YES
24.x and above |
    NO
    YES

## Upgrading to Java 17 from Java 8 (agent)

From Avantra Agent version 23.3.x you can begin to use the next chosen LTS Java version - Java 17. The 23.3.x code line is designed to be the transition point where you can safely start on Java 8 and upgrade to Java 17. From Avantra Agent version 24.x you will only be able to use Java 17.

### Upgrade Path Information

#### Upgrade path to Java 17 for Avantra Agents

Customers upgrading their existing installations from an earlier version are advised to follow this procedure:

The high level procedure can be seen in the following diagram:

- Bring your Avantra Server up to a minimum of version 23.3.x

- [IMPORTANT] Bring all agents up to a minimum version of 23.3.x using the built-in `Agent Updates` feature in the `Administration` menu. This is the only agent version that supports both Java runtime 8 as well as 17.

- Upload a Java 17 runtime into Avantra Server under `Administration` - `Agent Updates` in the new tab `Java Packages`. Note you will not see this tab if your Avantra Server is not at 23.3.x or above.

- Start by upgrade ONE (1) agent of a non-critical system to use the new Java 17 runtime by going to the `Status` tab and selecting `Select systems for a Java update`, select your system and select the new JRE you have just uploaded.

  - Once the Java update has completed successfully and the agent is functioning correctly (wait 15 minutes for all cycles to complete or force a full check cycle). Make sure to check within Avantra that the server is showing as running under Java 17 within 15 minutes of the update.

- Once you have successfully upgraded one agent, you can proceed to upgrade more. We recommend doing these in increasing buckets of agents in case you run into issues. For example, if you have 100 agents to upgrade then follow this approach:

  - 1 agent to check the process

  - 4 agents to verify the process

  - 15 agents

  - 30 agents

  - 50 agents