Talend JobServerがジョブを実行できるよう互換性があるJavaバージョンを設定
ジョブのJava互換性レベルに基づいて、適切なJavaバージョンを使ってジョブを実行できるようJobServerを設定します。
デフォルトでは、Talend JobServerはその環境のJavaバージョンを使ってジョブを実行します。したがって、このセクションをスキップするとTalend JobServerのデフォルトはJava 17になります。
- 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のバージョンがStudioのバージョンと共にどのように進化するかについては、互換性があるJava環境をご覧ください。
手順
適用モードの代表的なユースケース
- 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で同じ結果を得るためには、systemdベースのLinuxシステムにTalend JobServerをサービスとしてインストールをご覧ください。
手順
タスクの結果
-
<root>/conf/に移動し(<root>はTalend JobServerパス)、TalendJobServer.propertiesを開いて編集します。
- ジョブの起動パス専用の行で、等号の後に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
画面で示されているように、引用符はパスにスペースが含まれている場合のみ使用する必要があります。それ以外の場合は、引用符なしでパスを入力します。