Windowsの全TalendサービスでJavaをアップグレード
Javaをアップグレードすれば、セキュリティ問題を回避できます。この操作には、TalendサービスでJavaのマイナーまたはメジャーアップデートが必要となるさまざまなステップがあります。また、マイナーダウングレードの場合もこの手順が必要です。
始める前に
- このページのパネルにあるメニューの
タブから、update_java.batファイルを取得します。
- sed.exeファイルは、Talendホームフォルダーのutilsフォルダーにこのようなファイルがない場合のみ[Download] (ダウンロード)タブから取得されます。
このタスクについて
注: NexusはJava 11をサポートしていません。
手順
-
update_java.batファイルをTalendホームフォルダー内の
utils
フォルダーに配置します。 - sed.exeを[Download] (ダウンロード)タブからダウンロードした場合は、このファイルをutilsフォルダーに配置します。
- 互換性があるJava環境ページに従って新しいJavaバージョンをインストールします。
- Windowsの検索タブでservices.mscと入力し、Microsoft Management Consoleアプリケーションを開きます。
-
Talendサービスのリストを検索し、各サービスを右クリックして[Stop] (停止)を選択します。
最後に停止するサービスは、Talend Administration Center、Talend Identity and Access Management、Kafka、Zookeeper、MongoDB の順になります。
- [System Properties] (システムプロパティ) > [Advanced] (詳細設定) > [Environments Variables] (環境変数)に移動します。
-
JAVA_HOME環境変数とPATH変数を更新します。
- [System Variables](システム変数)で、[New...] (新規...)をクリックして変数を作成します。変数JAVA_HOMEに名前を付け、Java環境のパスを入力して、[OK]をクリックします。
-
[System Variables](システム変数)で、[Path](パス)変数を選択し、[Edit...] (編集...)をクリックして、
;%JAVA_HOME%\bin
という変数をパス変数値の最後に追加します。
- コマンドプロンプトアプリケーションを開きます。
- echo %JAVA_HOME%と入力してEnterキーを押します。表示される値は新しい設定値です。
- テキストエディターでupdate_java.batを開きます。
-
スクリプト内の変数を検索し、以下のように設定します。
"TALEND_HOME=C:\<Talend_home_folder>" (例: set "TALEND_HOME=C:\Talend\8.0.1")
"PROD_VER=<Talend_version>" (例: set "PROD_VER=8.0.1")
- スーパーユーザーとして、update_java.batを実行します。このスクリプトによって、ハードコードされたJavaへのパスがインストールの新しい値に置き換えられます。
- コンピューターを再起動するか、service.mscアプリケーションからTalendの全サービスを手動で起動します。
タスクの結果
これでTalendの全サービスが新しいJavaバージョンを使用するようになります。
Talend Remote EngineのJavaをアップグレード
Remote Engineがインストール済みである場合の、Javaのバージョンを8から11にアップグレードする方法について説明します。
このタスクについて
手順
-
Java 8で実行するRemote Engineで、次のファイルを<RE>/deployディレクトリーにコピー&ペーストします。
- <RE>/system/org/apache/servicemix/specs/org.apache.servicemix.specs.jaxws-api-2.3/2.3_2/org.apache.servicemix.specs.jaxws-api-2.3-2.3_2.jar.
- <RE>/system/org/apache/servicemix/specs/org.apache.servicemix.specs.saaj-api-1.4/1.4_1/org.apache.servicemix.specs.saaj-api-1.4-1.4_1.jar(観測可能な機能が有効にならない場合のみ)。
- Remote Engineとそのサービスが動作している場合は、それを停止します(Remote Engineサービスを管理をご覧ください)。
- Java 11をインストールします。
-
システムサービスファイル(/opt/Talend Remote Engine/etc/talend-remote-engine-wrapper.conf)をアップデートします。
-
ファイルを編集して、次の行を検索します:
set.default.JAVA_HOME=/usr/lib/jvm/jre1.8.0_221
新しいJAVA_HOMEのパスでそれをアップデートします。たとえば:set.default.JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
。 -
Remote Engine Karafコンテナーバージョンを記述する新しい変数(Remote Engine 2.11.2 - 2.11.11の場合は4.2.12、Remote Engine 2.12.0以降の場合は4.2.15)を追加します。
たとえば:
set.default.KARAF_VERSION=4.2.15
。 -
"set.JAVA_TOOL_OPTIONS=-Dlog4j2.formatMsgNoLookups=true"
の後に、追加のJavaオプション設定を入力します。set.JDK_JAVA_OPTIONS=--add-reads=java.xml=java.logging --add-exports=java.base/org.apache.karaf.specs.locator=java.xml,ALL-UNNAMED --patch- module java.base=%KARAF_HOME%/lib/endorsed/org.apache.karaf.specs.locator-%KARAF_VERSION%.jar --patch-module java.xml=%KARAF_HOME%/lib/endorsed/org.apache.karaf.specs.java.xml-%KARAF_VERSION%.jar --add- opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.naming/javax.naming.spi=ALL-UNNAMED --add-opens java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED --add- exports=java.base/sun.net.www.protocol.file=ALL-UNNAMED --add-exports=java.base/sun.net.www.protocol.ftp=ALL-UNNAMED --add- exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED --add-exports=java.base/sun.net.www.protocol.https=ALL-UNNAMED --add- exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED --add-exports=java.base/sun.net.www.content.text=ALL-UNNAMED --add- exports=jdk.xml.dom/org.w3c.dom.html=ALL-UNNAMED --add-exports=jdk.naming.rmi/com.sun.jndi.url.rmi=ALL-UNNAMED
-
Karaf Javaクラスパス:
を次のように置き換えることでアップデートします。wrapper.java.classpath.1=%KARAF_BASE%/lib/boot/*.jar wrapper.java.classpath.2=%KARAF_BASE%/lib/wrapper/*.jar
wrapper.java.classpath.1=%KARAF_BASE%/lib/boot/*.jar wrapper.java.classpath.2=%KARAF_BASE%/lib/jdk9plus/*.jar wrapper.java.classpath.3=%KARAF_BASE%/lib/wrapper/*.ja
-
JVMパラメーター:
を次のように置き換えることでアップデートします。wrapper.java.additional.1=-Djava.endorsed.dirs=%JAVA_HOME%/jre/lib/endorsed:%JAVA_HOME%/lib/endorsed:%KARAF_HOME%/lib/endorsed wrapper.java.additional.2=-Djava.ext.dirs=%JAVA_HOME%/jre/lib/ext:%JAVA_HOME%/lib/ext:%KARAF_HOME%/lib/ext wrapper.java.additional.3=-Dkaraf.instances=%KARAF_HOME%/instances wrapper.java.additional.4=-Dkaraf.home=%KARAF_HOME% wrapper.java.additional.5=-Dkaraf.base=%KARAF_BASE% wrapper.java.additional.6=-Dkaraf.data=%KARAF_DATA% wrapper.java.additional.7=-Dkaraf.etc=%KARAF_ETC% wrapper.java.additional.8=-Dkaraf.log=%KARAF_LOG% wrapper.java.additional.9=-Dkaraf.restart.jvm.supported=true wrapper.java.additional.10=-Djava.io.tmpdir=%KARAF_DATA%/tmp wrapper.java.additional.11=-Djava.util.logging.config.file=%KARAF_ETC%/java.util.logging.properties wrapper.java.additional.12=-Dkaraf.startLocalConsole=false wrapper.java.additional.13=-Dkaraf.startRemoteShell=true
wrapper.java.additional.1=-Dkaraf.instances=%KARAF_HOME%/instances wrapper.java.additional.2=-Dkaraf.home=%KARAF_HOME% wrapper.java.additional.3=-Dkaraf.base=%KARAF_BASE% wrapper.java.additional.4=-Dkaraf.data=%KARAF_DATA% wrapper.java.additional.5=-Dkaraf.etc=%KARAF_ETC% wrapper.java.additional.6=-Dkaraf.log=%KARAF_LOG% wrapper.java.additional.7=-Dkaraf.restart.jvm.supported=true wrapper.java.additional.8=-Djava.io.tmpdir=%KARAF_DATA%/tmp wrapper.java.additional.9=-Djava.util.logging.config.file=%KARAF_ETC%/java.util.logging.properties wrapper.java.additional.10=-Dkaraf.startLocalConsole=false wrapper.java.additional.11=-Dkaraf.startRemoteShell=true
注: Remote Engineのインストール後に作成された元の行が置き換えられます。JVMパラメーターを追加した場合は、12から始まる番号で、隙間を空けずに上記のリストの後に配置する必要があります。
-
ファイルを編集して、次の行を検索します:
-
/opt/Talend Remote Engine/bin/talend-remote-engine-serviceファイルを編集して、次の行を検索します:
JAVA_HOME="/usr/lib/jvm/jre1.8.0_221"
:新しいJAVA_HOMEのパスでそれをアップデートします。たとえば:JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64".
- Remote Engineサービスを起動します(Remote Engineサービスを管理をご覧ください)。
- Talend Cloud Management Consoleを起動し、ログでRemote Engineの可用性とステータスを確認します。
- Remote Engineを起動します。