メイン コンテンツをスキップする 補完的コンテンツへスキップ

ジョブやマイクロサービスを実行できるよう互換性があるJavaバージョンを設定

アーティファクトのJava互換性レベルに基づいて、適切なJavaバージョンを使ってジョブやマイクロサービスを実行できるようRemote Engineを設定します。

デフォルトでは、Remote Engineはその環境のJavaバージョンを使ってジョブやマイクロサービスを実行します。Remote Engine v2.13以降では、エンジンの起動にJava 17が必須です。

ただし、ジョブやマイクロサービスを実行するためにJavaバージョンを個別に設定する場合は、次の2つのアプローチがあります:

適用モード: Javaバージョンを動的に選択するようRemote Engineを設定

このモードでは、実行するアーティファクト(ジョブまたはマイクロサービス)のJava互換性レベルに基づいて、Remote Engineが自動的に適切なJavaインスタンスを選択します。

この動的Javaバージョン(適用)モードを使用すれば、さまざまなStudioバージョンのアーティファクトを再ビルドすることなく実行できます。

情報メモヒント: アーティファクトのJava互換性レベルは、Talend Studioで設定されます。

手順

  1. エンジンを停止します
  2. <RE_installation>/etc/system.propertiesファイルで、Javaインストールへのパスを使ってorg.talend.execution.JAVA_*_PATH プロパティを設定します。
    #
    # 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は、Javaのバージョンを次のように選択します:
    • アーティファクトのJavaレベルを候補バージョンとして分析します。
    • 候補がorg.talend.execution.JAVA_*_PATH使って設定されている場合は、そのJavaインスタンスを使用します。
    • 設定されていない場合は、設定されている直上のJavaバージョンが選択されます。

      たとえば、アーティファクトがJava 8を使用しているものの、設定されているバージョンがJava 8ではなくJava 11である場合、Remote EngineはJava 11を選択します。

    • アーティファクトでorg.talend.execution.JAVA_17_PATHが必要とされているものの設定されていない場合は、エンジン起動用のJavaインスタンスが使用されます。上述のとおり、Remote Engin v2.13以降では、エンジン起動のデフォルトバージョンがJava 17となります。
    情報メモヒント: インストーラーを使ってRemote Engine v2.13.9以降をインストールすると、適用モードが自動的に有効になります。インストーラーは、エンジン起動用のJavaインスタンスを使ってorg.talend.execution.JAVA_17_PATHを設定します。インストール中に、org.talend.execution.JAVA_8_PATHまたはorg.talend.execution.JAVA_11_PATHを設定するようインストーラーを設定することもできます。詳細は、Remote Engineを自動でインストールをご覧ください。
  3. エンジンを再起動します。

エンジン適用モードの代表的なユースケース

  • Java 8で動作するようビルドされたジョブ:

    これらのジョブはJava 8のコンプライアンスレベルでコンパイルされ、--add-opensは含まれていません([Enable Java 17 compatibility] (Java 17の互換性を有効化)チェックボックスは選択されていません)。これらは一般的にJava 11と互換性があります。Java 8と11の両方を設定するかJava 11だけを適用モードに設定することで、正しく動作するようになります。

    情報メモヒント: Java 8は--add-opensをサポートしていません。
  • Java 11で動作するようにビルドされた標準(データ統合)ジョブ:

    これらのジョブはJava 8のコンプライアンスレベルでコンパイルされ、--add-opensが含まれています([Enable Java 17 compatibility] (Java 17の互換性を有効化)チェックボックスが選択されています)。

    これらは一般的にJava 11と互換性があります。Java17 でこれらを実行することは可能であるものの、Java17での正しい動作に必要なモジュールを--add-opensが持たないことがあるため、エラーが発生しやすくなります。

    Java 11を適用モードに設定すれば、これらのジョブを処理できるようになります。

  • Java 17で動作するようビルドされたジョブ:

    これらのジョブはJava 17のコンプライアンスレベルでコンパイルされています。適用モードに設定されたJava 17インスタンスで実行されるか、未設定の場合はエンジンのデフォルトのJavaインスタンスで実行されます。

ジョブまたはマイクロサービスを実行するJavaバージョンを指定

特定のJavaバージョンを使ってジョブやマイクロサービスを実行できるよう、Remote Engineを設定します。上述の適用モードを有効にした場合、このセクションは無視して構いません。

このセクションでは、適用モードがお使いのエンジンバージョンで利用できない場合に適用モードの代替となる方法について説明します。それによって、Java 17より古いJavaバージョンでデザインされたアーティファクトを実行できるようになります。

新しいジョブやマイクロサービスを開発する場合、Java 17との互換性が確保されるよう、add-opensオプションでビルドすることを検討してください。このオプションはJava 17との互換性のために必要なパッケージを開き、このセクションで説明した特定のJavaバージョンを定義する手順を踏むことなく、より新しいRemote Engineバージョンで直接実行可能なジョブやマイクロサービスを作成します。このadd-opensオプションの使用方法とその制限については、Talend StudioでJavaを設定をご覧ください。

手順

  1. エンジンを停止します。
  2. エンジンがLinuxシステムサービスとしてインストールされているかどうかに応じて、以下を実行します:
    • エンジンがLinuxシステムサービスとしてインストールされていない場合:
      1. <RemoteEngineInstallationDirectory>/bin/setenvファイルを参照します。
      2. export PATH="<path-to-jvm-bin-directory>:${PATH}"という行を追加します。

        このpath-to-jvm-bin-directoryは、ジョブやマイクロサービスの実行に必要となるJVMインスタンスのbinフォルダーへのパスです。この行によって、このパスがPATH環境変数に追加されます。

    • エンジンがLinuxシステムサービスとしてインストールされている場合:
      1. <RemoteEngineInstallationDirectory>/etc/talend-remote-engine-wrapper.confファイルを参照します。
      2. [Wrapper Properties] (ラッパーのプロパティ)セクションに次の行を追加するか、この行が既に存在する場合はパスを変更します:
        set.PATH=<desired-java-home-path>:%PATH_WITH_JAVA%
        このdesired-java-home-pathは、使用するJavaインスタンスのbinフォルダーへのパスです。このパスは、set.PATH=の直後に追加する必要があります。PATH_WITH_JAVA%はそのままにしておきます。
  3. エンジンを再起動します。

Remote Engineがタスクの実行で使用するJavaのバージョンを表示

エンジンがジョブ、データサービス、ルートタスクの実行で使用するJava バージョンを確認できます。

Before you begin

上記の説明のように、適用モードでエンジンを設定済みであること。

Procedure

  1. [Processing] (処理中)ページの[Engines] (エンジン)タブに移動します。
  2. エンジン名をクリックすると詳細パネルが表示されます。
  3. [Configuration] (設定)タブをクリックします。

Results

Remote Engineフィールドの下に、エンジンがタスクの実行で使用するJavaのバージョンが表示されます。
エンジンによって使用されるJavaのバージョン

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。