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

Talend JobServerがジョブを実行できるよう互換性があるJavaバージョンを設定

ジョブのJava互換性レベルに基づいて、適切なJavaバージョンを使ってジョブを実行できるようJobServerを設定します。

デフォルトでは、Talend JobServerはその環境のJavaバージョンを使ってジョブを実行します。したがって、このセクションをスキップするとTalend JobServerのデフォルトはJava 17になります。

ただし、ジョブの実行でJavaバージョンを個別に設定する場合は、次の2つのアプローチがあります:
  • 8.0.2.20250129_0823_patch (R2025-01リリース)以降のJobServerインスタンスが推奨されます。このリリースから、ジョブ実行に適切なJavaバージョンにサーバーを自動的に適応させる動的なJVM選択モードが追加されています。適用モード: Javaバージョンを動的に選択するようTalend JobServerを設定をご覧ください。
  • JobServerのバージョンが古く、最新バージョンにアップグレードできない場合は、実行に使用するJavaのバージョンを次の手順で指定します。この方法は動的ではなく、指定できるバージョンは1つだけです。Talend JobServerのJVMを設定をご覧ください。

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

このモードでは、実行するジョブのJava互換性レベルに基づいて、Talend JobServerが適切なJavaインスタンスを自動的に選択します。

この動的Javaバージョン(適用)モードを使用すれば、さまざまなStudioバージョンのジョブを再ビルドすることなく実行できるようになります。

情報メモヒント: ジョブのJava互換性レベルは、Talend Studioで設定されます。

手順

  1. Talend JobServerを停止します。安全なシャットダウンの詳細は、Talend JobServerを安全にシャットダウンをご覧ください。
  2. Talend JobServerがインストールされているディレクトリーに移動し、start_rs.shファイルを開いて編集します。
  3. MY_JVM_ARGSという行に、Javaのシステムプロパティを追加します。これらのプロパティによって、Javaインストールへのパスが入力されます。
    # set the JVM arguments here
    MY_JVM_ARGS="-Dorg.talend.execution.JAVA_8_PATH=/path/to/java8/bin -Dorg.talend.execution.JAVA_11_PATH=/path/to/java11/bin -Dnorg.talend.execution.JAVA_17_PATH=/path/to/java17/bin"
                      
    Talend JobServerは、Javaのバージョンを次のように選択します:
    • ジョブのJavaレベルを候補バージョンとして分析します。
    • 候補がorg.talend.execution.JAVA_*_PATH使って設定されている場合は、そのJavaインスタンスを使用します。
    • 設定されていない場合は、設定されている直上のJavaバージョンが選択されます。

      たとえば、ジョブがJava 8を使用しているものの、設定されているバージョンがJava 8ではなくJava 11である場合、Talend JobServerはJava 11を選択します。

    • ジョブでorg.talend.execution.JAVA_17_PATHが必要とされているものの設定されていない場合は、サーバー起動用のJavaインスタンスが使用されます。
  4. JobServerを再起動します。

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

  • 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インスタンスで実行されます。

Talend JobServerのJVMを設定

Talend JobServerにより、デフォルトで使用されているJVMとは別のJVMを選択してジョブを実行できるようになります。上述の適用モードを有効にした場合、このセクションは無視して構いません。

このタスクについて

たとえば、Java 17で開始し、Java 11でジョブを実行するようTalend JobServerを設定できます。

サービスとしてインストールしたTalend JobServerで同じ結果を得るためには、systemdベースのLinuxシステムにTalend JobServerをサービスとしてインストールをご覧ください。

手順

  1. まだの場合は、PATH環境変数にJava 11インスタンスへのパスを追加します。
  2. コマンドラインターミナルを開き、java -versionコマンドを実行します。
    Java 11と表示されているはずです。これは、PATHに定義されたJava 11実行ファイルを使い、Javaプロセスがデフォルトで開始されることを示しています。
  3. まだの場合は、JAVA_HOME環境変数にJava 17インスタンスへのパスを追加します。
  4. Talend JobServerがインストールされているディレクトリーに移動し、start_rs.shファイルを開いて編集します。
  5. MY_JAVA=javaMY_JAVA=$JAVA_HOME/bin/javaに変更し、JAVA_HOMEで定義されているJava 17と共にTalend JobServerが必ず開始されるようにします。
  6. stop_rs.shファイルでこの操作を繰り返します。

タスクの結果

Talend JobServerの次回起動時には、開始にはJava 17が、ジョブの実行にはJava 11が使用されるようになります。
情報メモ注: またはジョブランチャーのパスパラメーターを使い、使用するJavaインスタンスを定義することもできますが、これは移植性に欠けるためお勧めできません。手順は次のとおりです。
  1. <root>/conf/に移動し(<root>Talend JobServerパス)、TalendJobServer.propertiesを開いて編集します。

  2. ジョブの起動パス専用の行で、等号の後にJava実行可能ファイルのパスを追加します。
    # Set the executable path of the binary which will run the job, for example: /usr/bin/java/java or "c:\\Program Files\\Java\\bin\\java.exe"
    org.talend.remote.jobserver.commons.config.JobServerConfiguration.JOB_LAUNCHER_PATH=/usr/bin/java/java

    画面で示されているように、引用符はパスにスペースが含まれている場合のみ使用する必要があります。それ以外の場合は、引用符なしでパスを入力します。

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

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