Zu Hauptinhalt springen Zu ergänzendem Inhalt springen

Einrichten kompatibler Java-Versionen zum Ausführen von Jobs oder Microservices

Konfigurieren Sie Ihre Remote Engine so, dass sie Jobs oder Microservices mit der entsprechenden Java-Version basierend auf den Java-Kompatibilitätsstufen dieser Artefakte ausführt.

Standardmäßig verwendet eine Remote Engine die Java-Version der entsprechenden Umgebung, um Jobs oder Microservices auszuführen. Ab Remote Engine v2.13 muss Java 17 für den Engine-Start verwendet werden.

Es stehen jedoch zwei Ansätze zur Verfügung, um verschiedene Java-Versionen für die Ausführung von Jobs oder Microservices zu konfigurieren:
  • Empfohlen für Engines ab Version 2.13.9 (veröffentlicht in R2025-01): Ab dieser Version übernimmt Remote Engine einen dynamischen JVM-Auswahlmodus. Dieser Modus passt die Engine automatisch an die richtige Java-Version an, um Jobs oder Microservices auszuführen. Weitere Informationen finden Sie unter „Adaptiver Modus: Konfigurieren der Remote Engine für die dynamische Auswahl der Java-Version“.
  • Wenn Ihre Engine Version 2.13 oder höher ist, aber noch älter als Version 2.13.9 und Sie sie nicht auf die neueste Version aktualisieren können, befolgen Sie dieses Verfahren, um die Java-Version anzugeben, die für Ausführungen verwendet werden soll. Dieser Ansatz ist nicht dynamisch und nur eine Version kann angegeben werden. Weitere Informationen finden Sie unter „Festlegen einer Java-Version für die Ausführung von Jobs oder Microservices“.

Adaptiver Modus: Konfigurieren der Remote Engine für die dynamische Auswahl der Java-Version

In diesem Modus wählt Remote Engine automatisch die entsprechende Java-Instanz basierend auf dem Java-Kompatibilitätsgrad des auszuführenden Artefakts (Jobs oder Microservices) aus.

Dieser dynamische (adaptive) Java-Versionsmodus hilft Ihnen, Artefakte aus verschiedenen Studio-Versionen ohne Neuerstellung auszuführen.

InformationshinweisTipp: Der Java-Kompatibilitätsgrad des Artefakts wird in Talend Studio festgelegt.

Prozedur

  1. Halten Sie die Engine an.
  2. Legen Sie in der Datei <RE_installation>/etc/system.properties die Eigenschaften org.talend.execution.JAVA_*_PATH mit den Pfaden zu Ihren Java-Installationen fest.
    #
    # 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
    Remote Engine wählt die Java-Version wie folgt aus:
    • Analysiert die Java-Version des Artefakts als Kandidatenversion.
    • Wenn der Kandidat mit org.talend.execution.JAVA_*_PATH konfiguriert ist, verwendet er diese Java-Instanz.
    • Wenn nicht konfiguriert, wird die nächsthöhere konfigurierte Java-Version ausgewählt.

      Wenn ein Artefakt beispielsweise Java 8 verwendet, Java 8 jedoch nicht konfiguriert ist, während Java 11 konfiguriert ist, wählt Remote Engine Java 11 aus.

    • Wenn org.talend.execution.JAVA_17_PATH nicht festgelegt ist, während es vom Artefakt benötigt wird, wird die Java-Instanz für den Start der Engine verwendet. Wie bereits erwähnt, ist Java 17 für Remote Engine v2.13 und höher die Standardversion für den Engine-Start.
    InformationshinweisTipp: Bei der Installation von Remote Engine v2.13.9 oder höher mit dem Installationsprogramm wird der adaptive Modus automatisch aktiviert. Das Installationsprogramm legt org.talend.execution.JAVA_17_PATH mit der Java-Instanz für den Start der Engine fest. Während der Installation können Sie das Installationsprogramm zusätzlich so konfigurieren, dass es org.talend.execution.JAVA_8_PATH oder org.talend.execution.JAVA_11_PATH festlegt. Weitere Einzelheiten finden Sie unter Automatische Installation der Remote Engine.
  3. Starten Sie die Engine neu.

Typische Anwendungsfälle für den adaptiven Engine-Modus

  • Für die Ausführung auf Java 8 erstellte Jobs:

    Diese Jobs werden mit dem Java 8-Compliance-Level kompiliert und schließen --add-opens nicht ein (das Kontrollkästchen Enable Java 17 compatibility (Java 17-Kompatibilität aktivieren) ist nicht aktiviert). Sie sind in der Regel mit Java 11 kompatibel. Wenn entweder Java 8 und Java 11 oder nur Java 11 im adaptiven Modus festgelegt werden, stellt dies sicher, dass sie korrekt ausgeführt werden.

    InformationshinweisTipp: Java 8 unterstützt --add-opens nicht.
  • Standard-Jobs (für Datenintegration), die für die Ausführung auf Java 11 erstellt wurden:

    Diese Jobs werden mit dem Java 8-Compliance-Level kompiliert und schließen --add-opens bei Bedarf ein (das Kontrollkästchen Enable Java 17 compatibility (Java 17-Kompatibilität aktivieren) ist aktiviert).

    Sie sind in der Regel mit Java 11 kompatibel. Sie können auf Java 17 ausgeführt werden, was aber fehleranfällig ist, da möglicherweise erforderliche Module für --add-opens für ein korrektes Funktionieren von Java 17 nicht vorhanden sind.

    Wenn Java 11 im adaptiven Modus festgelegt wird, können diese Jobs verarbeitet werden.

  • Für die Ausführung auf Java 17 erstellte Jobs:

    Diese Jobs werden mit dem Java 17-Compliance-Level kompiliert. Sie werden auf der im adaptiven Modus eingerichteten Java 17-Instanz ausgeführt, bzw. bei fehlender Einrichtung auf der Standard-Java-Instanz der Engine.

Festlegen einer Java-Version für die Ausführung von Jobs oder Microservices

Konfigurieren Sie Ihre Remote Engine für die Ausführung von Jobs oder Microservices unter Verwendung einer bestimmten Java-Version. Wenn Sie den oben erläuterten adaptiven Modus aktiviert haben, ignorieren Sie diesen Abschnitt.

Dieser Abschnitt bietet eine Alternative zum adaptiven Modus, wenn dieser für Ihre Engine-Version nicht verfügbar ist. Es ermöglicht Ihnen, die Artefakte auszuführen, die mit Java-Versionen entwickelt wurden, die älter als Java 17 sind.

Bei der Entwicklung neuer Jobs oder Microservices können Sie bei deren Generierung die Option add-opens verwenden, um die Kompatibilität mit Java 17 sicherzustellen. Diese Option stattet die erforderlichen Pakete mit Java 17-Kompatibilität aus, sodass Ihre Jobs und Microservices direkt auf der neueren Remote Engine-Version ausgeführt werden können, ohne dass Sie dazu das zuvor in diesem Abschnitt erläuterte Verfahren für die Festlegung einer bestimmten Java-Version durchzuführen brauchen. Weitere Informationen zur Verwendung der Option add-opens und deren Einschränkungen finden Sie unter „Einrichten von Java in Talend Studio“.

Prozedur

  1. Halten Sie die Engine an.
  2. Navigieren Sie zum Verzeichnis <RemoteEngineInstallationDirectory>/etc.
  3. Je nach Typ der Artefakte, die mit einer bestimmten Java-Version ausgeführt werden müssen, ist Folgendes durchzuführen:
    • Fügen Sie für Jobs den Pfad zur zu verwendenden Java-Instanz der PATH-Umgebungsvariablen hinzu. Öffnen Sie dann ein Befehlszeilenterminal und führen Sie den Befehl java -version aus. Die Version der Java-Instanz wird ausgegeben.

      Jeder Java-Prozess startet mit dieser in PATH definierten Instanz.

    • Für Microservices fügen Sie den Pfad der exe-Datei von Java in der Datei <RemoteEngineInstallationDirectory>/etc/org.talend.ipaas.rt.dsrunner.cfg hinzu. Beispiel:
      ms.custom.jre.path=C\:/Java/jdk/bin

      Nehmen Sie diese Änderung vor der Implementierung der Microservices vor, um sicherzustellen, dass die Änderung direkt berücksichtigt wird.

    Verwenden Sie für beide Artefakttypen Backslashes als Escape-Sequenz, um die Zeichen, die zu einem Windows-Pfad gehören, wie z. B. Punkte, Leerzeichen und Verzeichnistrennzeichen, zu markieren. Beachten Sie dabei allerdings, dass Backslashes in Windows ebenfalls als Trennzeichen für Verzeichnisse genutzt werden. Beispiel:
    c:\\Program\ Files\\Java\\jdk11.0.18_10\\bin\\java.exe
  4. Starten Sie die Engine neu.

Anzeigen von Java-Versionen, die von einer Remote Engine für die Taskausführung verwendet werden

Sie können die Java-Versionen anzeigen, die von Ihren Engines zum Ausführen von Job-, Datenservice- und Routen-Tasks verwendet werden.

Before you begin

Sie haben die Engine wie oben erläutert mit dem adaptiven Modus konfiguriert.

Procedure

  1. Gehen Sie auf der Seite Processing zur Registerkarte Engines.
  2. Klicken Sie auf den Engine-Namen, um das Detailfenster anzuzeigen.
  3. Klicken Sie auf die Registerkarte Configuration (Konfiguration).

Results

Sie sehen die Java-Versionen, die von der Engine zum Ausführen von Tasks verwendet werden, unter dem Feld Remote Engine.
Von einer Engine verwendete Java-Versionen

Hat diese Seite Ihnen geholfen?

Wenn Sie ein Problem mit dieser Seite oder ihrem Inhalt feststellen, sei es ein Tippfehler, ein ausgelassener Schritt oder ein technischer Fehler, informieren Sie uns bitte!