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

ジョブやマイクロサービスを実行できるよう互換性がある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. <RemoteEngineInstallationDirectory>/etcディレクトリーに移動します。
  3. 特定のJavaバージョンで実行する必要があるアーティファクトのタイプに応じて、以下を実行します:
    • ジョブの場合は、使用するJavaインスタンスへのパスをPATH環境変数に追加します。次に、コマンドラインターミナルを開き、java -versionコマンドを実行します。Javaインスタンスのバージョンが表示されます。

      どのJavaプロセスも、PATHに定義されたこのインスタンスで開始されます。

    • マイクロサービスの場合は、<RemoteEngineInstallationDirectory>/etc/org.talend.ipaas.rt.dsrunner.cfgにJava実行可能ファイルへのパスを追加します。例:
      ms.custom.jre.path=C\:/Java/jdk/bin

      これらの変更が正しく反映されるよう、マイクロサービスをデプロイする前にこの修正を行ってください。

    両方のアーティファクトタイプで、Windowsパス特有の文字(コロン、空白、ディレクトリーセパレーターなど)をエスケープするためにバックスラッシュを使用します。例:
    c:\\Program\ Files\\Java\\jdk11.0.18_10\\bin\\java.exe
  4. エンジンを再起動します。

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

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

Before you begin

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

Procedure

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

Results

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

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

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