Accéder au contenu principal Passer au contenu complémentaire

Configurer les versions compatibles de Java pour exécuter des Jobs ou des microservices

Configurez votre moteur distant (Remote Engine) pour exécuter des Jobs ou des microservices à l'aide de la version Java adaptée, en vous basant sur ces niveaux de compatibilité des versions Java et des artefacts.

Par défaut, un moteur distant utilise la version de Java de son environnement, pour exécuter des Jobs ou des microservices. À partir de la version 2.13 du moteur distant (Remote Engine), Java 17 est obligatoire pour démarrer le moteur.

Cependant, les deux approches sont disponibles pour configurer différentes versions de Java afin d'exécuter des Jobs ou des microservices :

Mode adaptatif : Configurer le moteur distant (Remote Engine) pour sélectionner dynamiquement une version de Java

Dans ce mode, le moteur distant sélectionne automatiquement l'instance Java appropriée, basée sur le niveau de compatibilité de Java et de l'artefact à exécuter (Jobs ou microservices).

Ce mode dynamique de sélection de versions de Java (adaptif) vous permet d'exécuter des artefacts à partir de différentes versions du Studio sans avoir à les construire à nouveau.

Note InformationsConseil : Le niveau de compatibilité de Java et des artefacts est configuré dans le Studio Talend.

Procédure

  1. Arrêtez le moteur.
  2. Dans le fichier <RE_installation>/etc/system.properties, configurez les propriétés org.talend.execution.JAVA_*_PATH en renseignant les chemins vers vos installations de Java.
    #
    # artifact dynamic Java version configuration
    # (to select Java version for artifact execution
    # based on the artifact Java compliance level)
    # java path must point to Java bin directory, e.g.
    # /usr/lib/jvm/java-17-openjdk-amd64/bin
    # C:\\Program Files\\Java\\bin
    #
    org.talend.execution.JAVA_8_PATH=/path/to/java8/bin
    org.talend.execution.JAVA_11_PATH=/path/to/java11/bin
    org.talend.execution.JAVA_17_PATH=/path/to/java17/bin
    Le moteur distant sélectionne la version de Java en procédant comme suit :
    • Il analyse le niveau Java des artefacts comme version candidate.
    • Si la version candidate est configurée avec org.talend.execution.JAVA_*_PATH, il utilise cette instance de Java.
    • Si elle n'est pas configurée, il sélectionne la version suivante la plus haute configurée de Java.

      Par exemple, si un artefact utilise Java 8 mais que Java 8 n'est pas configuré, tandis que Java 11 est configuré, le moteur distant sélectionne Java 11.

    • Si org.talend.execution.JAVA_17_PATH est déconfigurée alors que cette version est nécessaire pour l'artefact, l'instance Java utilisée est celle du démarrage du moteur. Comme mentionné précédemment pour le moteur distant v2.13 et supérieures, Java 17 est la version par défaut pour le démarrage du moteur.
    Note InformationsConseil : Lors de l'installation du moteur distant v2.13.9 ou supérieure à l'aide de l'installeur, le mode adaptatif est automatiquement activé. L'installeur configure org.talend.execution.JAVA_17_PATH avec l'instance de Java utilisée pour le démarrage du moteur. Au cours de l'installation, vous pouvez configurer l'installeur, de manière facultative, pour qu'il définisse org.talend.execution.JAVA_8_PATH ou org.talend.execution.JAVA_11_PATH. Pour plus d'informations, consultez Installation automatique de Remote Engine.
  3. Redémarrez le moteur.

Cas d'utilisation typiques pour le mode adaptatif du moteur

  • Jobs construits pour s'exécuter sur Java 8 :

    Ces Jobs sont compilés avec le niveau de conformité de Java 8 et ne comprennent pas --add-opens (la case Enable Java 17 compatibility (Activer la compatibilité avec Java 17) n'est pas cochée). Ils sont généralement compatibles avec Java 11. Configurer Java 8 et 11 ou configurer Java 11 uniquement leur assure une exécution correcte.

    Note InformationsConseil : Java 8 ne supporte pas --add-opens.
  • Jobs Standard (intégration de données) construits pour s'exécuter sur Java 11 :

    Ces Jobs sont compilés avec le niveau de conformité de Java 8 et comprennent --add-opens où nécessaire (la case Enable Java 17 compatibility (Activer la compatibilité avec Java 17) est cochée).

    Ils sont généralement compatibles avec Java 11. Il est possible de les exécuter sur Java 17 mais cela peut provoquer des erreurs, car --add-opens peut ne pas avoir les modules nécessaires pour que Java 17 fonctionne correctement.

    Configurez Java 11 en mode adaptif pour lui permettre de gérer ces Jobs.

  • Jobs construits pour s'exécuter sur Java 17 :

    Ces Jobs sont compilés avec le niveau de conformité de Java 17. Ils s'exécutent sur l'instance de Java 17 configurée en mode adaptatif, ou, si non configurée, sur l'instance de Java par défaut du moteur.

Spécifier une version de Java pour exécuter des Jobs ou des microservices

Configurez votre moteur distant pour qu'il exécute des Jobs ou des microservices à l'aide d'une version spécifique de Java. Si vous avez activé le mode adaptatif présenté ci-dessus, ignorez cette section.

Cette section fournit une alternative au mode adaptatif, si ce dernier n'est pas disponible dans la version de votre moteur. Cette alternative vous permet d'exécuter les artefacts conçus avec des versions de Java antérieures à Java 17.

Lorsque vous construisez des Jobs ou des microservices, pensez à les construire avec l'option add-opens, afin d'assurer la compatibilité avec Java 17. Cette option ouvre les packages nécessaires à la compatibilité avec Java 17, rendant vos Jobs ou microservices exécutables directement sur la nouvelle version du moteur distant (Remote Engine), sans avoir à passer par la procédure présentée dans cette section pour définir une version spécifique de Java. Pour plus d'informations concernant l'utilisation de cette option add-opens et ses limitations, consultez Configurer Java dans le Studio Talend.

Procédure

  1. Arrêtez le moteur.
  2. En fonction de l'emplacement d'installation du moteur en tant que service système Linux, procédez comme suit :
    • Si le moteur n'a pas été installé en tant que service système Linux :
      1. Parcourez votre système jusqu'au fichier <RemoteEngineInstallationDirectory>/bin/setenv.
      2. Ajoutez la ligne suivante : export PATH="<path-to-jvm-bin-directory>:${PATH}".

        Ce chemin path-to-jvm-bin-directory est le chemin d'accès au dossier bin de l'instance JVM à utiliser pour exécuter des Jobs ou des microservices. Cette ligne ajoute ce chemin d'accès à la variable d'environnement PATH.

    • Si le moteur a été installé en tant que service système Linux :
      1. Naviguez jusqu'au fichier <RemoteEngineInstallationDirectory>/etc/talend-remote-engine-wrapper.conf.
      2. Ajoutez la ligne suivante à la section Wrapper Properties ou modifiez le chemin si cette ligne existe déjà :
        set.PATH=<desired-java-home-path>:%PATH_WITH_JAVA%
        Ce chemin desired-java-home-path est le chemin d'accès au dossier bin de l'instance Java à utiliser. Ce chemin doit être ajouté juste après set.PATH=. Conservez %PATH_WITH_JAVA% sans modification.
  3. Redémarrez le moteur.

Afficher les versions de Java utilisées par un moteur distant pour exécuter les tâches

Vous pouvez voir les versions de Java utilisées par vos moteurs pour exécuter des tâches de Jobs, de services de données et de Routes.

Before you begin

Vous avez configuré votre moteur en mode adaptatif, comme présenté ci-dessus.

Procedure

  1. Ouvrez l'onglet Engines (Moteurs) de la page Processing (Traitement).
  2. Cliquez sur le nom du moteur pour afficher son panneau de détails.
  3. Cliquez sur l'onglet Configuration.

Results

Vous pouvez voir les versions de Java utilisées par le moteur pour exécuter les tâches, sous le champ Remote engine (Moteur distant).
Versions de Java utilisées par un moteur

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.