Java11へのアップグレード

SmartDB Ver.4.2よりJava 11のサポートを開始しています。

ここでは従来のJava8からのアップグレード手順を説明します。

準備・注意事項

Oracle JDKを利用する場合

ご使用のOSに対応したJDK11のインストーラーをオラクル社のサイトから入手してください。

(例)以降の説明ではアップデートの数字を “X.X” で表記します。

Oracle JDK 11の場合:jdk-11.X.X_linux-x64_bin.tar.gz

Javaのバージョンアップには、tomcatサービスの再起動が必要です。

OpenJDKを利用する場合

ご使用のOS(Red Hat Enterprise Linux、あるいはCentOS)に含まれているOpenJDK11パッケージを利用します。 下記手順では、yumコマンドにより、RedHat(CentOS)のリポジトリへアクセスする必要があります。

サーバから直接、リポジトリへアクセスできない場合は、事前に、リポジトリよりパッケージファイル(rpm)を取得してください。

※下記コマンドは、パッケージファイルを「/tmp/repo」にダウンロードする例です。

# mkdir /tmp/repo
# cd /tmp
# yum install --downloadonly --downloaddir=repo java-11-openjdk-devel

Javaのバージョンアップには、tomcatサービスの再起動が必要です。

アップグレード手順

各SmartDB APサーバにてアップグレード作業を実施します。

1. JDKのインストール

Oracle JDKを利用する場合

事前準備でダウンロードしたJDK11のインストーラーを、Sm@rtDB APサーバの任意のディレクトリに保存します。 ※本手順では、/opt 配下に保存したものとして記載します。

保存したJDK11を解凍します。解凍したフォルダには、root権限を付与してください。

# cd /opt
# tar zxvf jdk-11.0.1_linux-x64_bin.tar.gz
# chown -R root:root jdk-11.0.1

OpenJDKを利用する場合

◆リポジトリへアクセスできる環境の場合

yumコマンドを利用して、最新のOpenJDK11をインストールします。

# yum install java-11-openjdk java-11-openjdk-devel

◆リポジトリへアクセスできない環境の場合

事前準備でダウンロード・移送したパッケージファイル(rpm)よりインストールします。

※下記コマンドは、パッケージファイルを「/tmp/repo」に配置した例を示します。

# yum localinstall /tmp/repo/*.rpm

2. tomcat サービスの停止

JDKのアップグレードをする前に全てのSmartDB AP サーバのtomcat サービスを停止します。

各SmartDB APサーバにroot ユーザでログインし、tomcat を停止してください。

また、cron でインデックス最適化処理を設定している場合には、インデックス最適化処理をロックしてください。

# service tomcat stop
# cd /var/hibiki/data/cabinet/index/
# touch optimize.lock.new
# mv -i optimize.lock.new optimize.lock  

※上記コマンドでディレクトリが存在しない場合は、ロックファイルの作成と移動の手順をスキップしてください。

※上記コマンドでファイルの上書きの警告が出た場合は、既にプログラム側でロックファイルを作成している可能性があります。この場合は、ロックファイルが消えるまで待って再度作成するようにしてください。

tomcat サービスは停止信号を送り、コンソールが入力待ちに戻った後でもプロセスが完全に終了するまでに時間がかかる場合があります。

以下の手順へ進む前にプロセスが完全に停止していることを確認して下さい。

# ps -ef | grep java

3. リンクの作成

以下のシンボリックリンクを作成します。

Oracle JDKを利用する場合

# cd /opt
# ln -s jdk-11.0.1 jdk11

OpenJDKを利用する場合

# cd /opt/
# ln -s /usr/lib/jvm/java-11-openjdk-11.0.1.13-3.el7_6.x86_64 jdk11

4. tomcatの起動スクリプト変更

インストールされたjdkを使用できるようにtomcat の起動スクリプトを修正します。

tomcatのJAVA_HOMEのディレクトリをjdk18からjdk11に変更してください。

変更前の記述はご使用の環境の設定に合わせて読み替えてください。

/etc/init.d/tomcat の以下の記述を変更します。

変更前: export JAVA_HOME=/opt/jdk18
  ↓
変更後: export JAVA_HOME=/opt/jdk11

また、下記の起動パラメータがJava9以降で廃止となっています。 Java8では警告のみでしたが、Java9以降ではエラーとなり起動できなくなります。 下記起動パラメータが指定されている場合は削除してください。

-XX:PermSize
-XX:MaxPermSize

※GCログに関するパラメータも変更されているので、ご注意ください。

5. SmartDB Toolの起動スクリプト変更

インストールされたjdkを使用できるようにSmartDB Toolの起動スクリプトを修正します。

smartdb_tool.shのJAVA_HOMEのディレクトリをjdk18からjdk11に変更してください。

変更前の記述はご使用の環境の設定に合わせて読み替えてください。

/home/hibiki/bin/smartdb_tool.shの以下の記述を変更します。

変更前: export JAVA_HOME=/opt/jdk18
  ↓
変更後: export JAVA_HOME=/opt/jdk11

また、下記の起動パラメータがJava9以降で廃止となっています。 Java8では警告のみでしたが、Java9以降ではエラーとなり起動できなくなります。 下記起動パラメータが指定されている場合は削除してください。

-XX:PermSize
-XX:MaxPermSize

※GCログに関するパラメータも変更されているので、ご注意ください。

6. tomcat サービスの起動

各SmartDB AP サーバのtomcat を起動します。

また、インデックス最適化処理をロックしている場合は、ロックファイルを削除してください。

※2. の手順でディレクトリが存在しなかった場合は、ロックファイルの削除をスキップしてください。

# service tomcat start

SmartDBが起動していることを確認します。

7. 動作確認

ブラウザに以下のURLを入力し、モジュールの読み込みが完了していることを確認します。

http://【サーバ名】/hibiki/About.do

以上でJava11へのアップグレードは完了です。