Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE

Qlik Talend Products: Java 17 Migration Guide

No ratings
cancel
Showing results for 
Search instead for 
Did you mean: 
BrianChanQlik
Support
Support

Qlik Talend Products: Java 17 Migration Guide

Last Update:

Apr 12, 2024 4:27:23 AM

Updated By:

Sonja_Bauernfeind

Created date:

Apr 11, 2024 11:18:18 AM

From R2024-05, Java 17 will become the only supported version to start most Talend modules, enforcing the improved security of Java 17 and eliminating concerns about Java's end-of-support for older versions. In 2025, Java 17 will become the only supported version for all operations in Talend modules.

Starting from v2.13, Talend Remote Engine requires Java 17 to run. If some of your artifacts, such as Big Data Jobs, require other Java versions, see Specifying a Java version to run Jobs or Microservices.

Content

 

Prerequisites

Qlik Talend Module Patch Level and Version
Studio Supported from R2023-10 onwards
Remote Engine 2.13 or later
Runtime 8.0.1-R2023-10 or later

 

Procedure

Windows

For Windows users, please follow the JDK installation guide (docs.oracle.com).

Linux

For Linux users, please follow the JDK installation guide (docs.oracle.com).

MAC OS

For MAC OS users, please follow the JDK installation guide (docs.oracle.com).

Multiple JDK versions

When working with software that supports multiple versions of Java, it's important to be able to specify the exact Java version you want to use. This ensures compatibility and consistent behavior across your applications. Here is how you can specify a specific Java version on the following products (such as build servers, shared application server, and similar):

Studio

For Studio users who are using multiple JDKs, please follow the appropriate instructions listed above and follow the proceeding additional steps:

  1. Backup and edit the <Studio Home>\Talend-Studio-win-x86_64.ini file
  2. Prepend:
    -vm
    <JDK17 HOME>\bin\server\jvm.dll
Remote Engine

For Remote Engine (RE) users who are using multiple JDKs, please follow the appropriate instructions listed above and follow the proceeding additional steps.

  1. Backup and edit the <RE HOME>/etc/talend-remote-engine-wrapper.conf file
  2. Modify the set.default.JAVA_HOME= property to point to the <JDK 17 HOME> path.

    Note 1: If Remote Engine is not installed as a service, the JDK file will be set in the <RE HOME>/bin/setenv file.

    Note 2: When it comes to running Jobs or Microservices, you retain the flexibility to either use the default Java 17 version or choose older Java versions, through straightforward configuration of the engine.

    How to modify?

    Check the following etc folder based configuration and change it to installed jdk/jre path: 

    {
    org.talend.ipaas.rt.dsrunner.cfg--> ms.custom.jre.path
    org.talend.remote.jobserver.server.cfg--> org.talend.remote.jobserver.commons.config.JobServerConfiguration.JOB_LAUNCHER_PATH
    }
ESB - Runtime

For Runtime users who are using multiple JDKs, please follow the appropriate instructions listed above and follow the proceeding additional steps.

  1. Backup and edit the <Runtime home>/etc/<TALEND-8-CONTAINER service>-wrapper.conf
  2. Modify the set.default.JAVA_HOME=C:\<JDK 17 HOME> path

If Runtime is not running as a service:

  1. Backup and edit the <Runtime home>/bin/setenv.sh
  2. Modify the SET JAVA_HOME= <JDK 17 HOME> path

Studio

  • Data Integration (DI):  After installing the 8.0 R2023-10 Talend Studio monthly update or a later one, if you switch the Java version to 17 and relaunch your Talend Studio with Java 17, you must enable your project settings for Java 17 compatibility.

    1. Go to Studio
    2. Go to File
    3. Edit Project properties
    4. Go to Build
    5. Go to Java Version
    6. Activate "Enable Java 17 compatibility"
      With the Enable Java 17 compatibility option activated, any Job built by Talend Studio cannot be executed with Java 8. For this reason, verify the Java environment on your Job execution servers before activating the option.
  • Big Data Users:  Do not enable Java 17 compatibility unless your Spark Cluster supports Java 17.  

 

Talend Administration Center (TAC)

To use Talend Administration Center with Java 17, you need to open the <tac_installation_folder>/apache-tomcat/bin/setenv.sh file and add the following commands:

# export modules 
export JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/sun.security.x509=ALL-UNNAMED --add-opens=java.base/sun.security.pkcs=ALL-UNNAMED"
Windows users use <tac_installation_folder>\apache-tomcat\bin\setenv.bat

 

CICD

Windows Users

For Java 17 users, Talend CICD process requires the following Maven options:

    1. Backup and edit <Maven_home>\bin\mvn.cmd
    2. Modify to:
      set "MAVEN_OPTS=%MAVEN_OPTS% --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/sun.security.x509=ALL-UNNAMED --add-opens=java.base/sun.security.pkcs=ALL-UNNAMED"

 

Linux Users

For Java 17 users, Talend CICD process requires the following Maven options:

  1. Backup and edit <Maven_home>/bin/mvn
  2. Modify to:
    export MAVEN_OPTS="$MAVEN_OPTS \ 
    --add-opens=java.base/java.net=ALL-UNNAMED \ 
    --add-opens=java.base/sun.security.x509=ALL-UNNAMED \ 
    --add-opens=java.base/sun.security.pkcs=ALL-UNNAMED"

 

Jenkins Users

  1. Backup and edit the jenkins_pipeline_simple.xml 
  2. Include the following in the Talend_CI_RUN_CONFIG parameter:
    <name>TALEND_CI_RUN_CONFIG</name>
    <description>Define the Maven parameters to be used by the product execution, such as:
        - Studio location
        - debug flags
    These parameters will be put to maven 'mavenOpts'.
    If Jenkins is using Java 17, add:
    --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/sun.security.x509=ALL-UNNAMED --add-opens=java.base/sun.security.pkcs=ALL-UNNAMED
    </description>

 

Additional Notes

Specifying a Java version to run Jobs or Microservices

Overview

Enable your Remote Engine to run Jobs or Microservices using a specific Java version.

By default, a Remote Engine uses the Java version of its environment to execute Jobs or Microservices. With Remote Engine v2.13 and onwards, Java 17 is mandatory for engine startup. However, when it comes to running Jobs or Microservices, you can specify a different Java version. This feature allows you to use a newer engine version to run the artifacts designed with older Java versions, without the need to rebuild these artifacts, such as the Big Data Jobs, which reply on Java 8 only.

When developing new Jobs or Microservices that do not exclusively rely on Java 8, that is to say, they are not Big Data Jobs, consider building them with the add-opens option to ensure compatibility with Java 17. This option opens the necessary packages for Java 17 compatibility, making your Jobs or Microservices directly runnable on the newer Remote Engine version, without having to go through the procedure explained in this section for defining a specific Java version. For further information about how to use this add-opens option and its limitation, see Setting up Java in Talend Studio.

Procedure

  1. Stop the engine.

  2. Browse to the <RemoteEngineInstallationDirectory>/etc directory.

  3. Depending on the type of the artifacts you need to run with a specific Java version, do the following:

    For both artifact types, use backslashes to escape characters specific to a Windows path, such as colons, whitespace, and directory separators, while keeping in mind that directory separators are also backslashes on Windows.

    Example:
    c:\\Program\ Files\\Java\\jdk11.0.18_10\\bin\\java.exe
    • For Jobs, in the <RemoteEngineInstallationDirectory>/etc/org.talend.remote.jobserver.server.cfg file, add the path to the Java executable file.

      Example:
      org.talend.remote.jobserver.commons.config.JobServerConfiguration.JOB_LAUNCHER_PATH=c:\\jdks\\jdk11.0.18_10\\bin\\java.exe
    • For Microservices, in the <RemoteEngineInstallationDirectory>/etc/org.talend.ipaas.rt.dsrunner.cfg, add the path to the Java executable file.

      Example:
      ms.custom.jre.path=C\:/Java/jdk/bin
      Make this modification before deploying your Microservices to ensure that these changes are correctly taken into account.

  4. Restart the engine.

 

 

Version history
Last update:
3 weeks ago
Updated by: