Websphere Application Server8.5.5.xとJAVA1.71(JAVA1.8)のバージョンアップにおいて考慮すべき点(メモ)

遅ればせながら、2017年にWebsphere Application Server(略して、WAS)の7.0.0.xxから8.5.5.9へのバージョンアップと、Websphere Application ServerのJAVA1.6からJAVA1.7.1へのバージョンアップの要件定義・計画を行ったので、バージョンアップ実施までに考慮した事柄をメモ。
言葉足らず・説明足らず・考慮不足があると思うので、利用される方はご注意を。

■目的

WASの内部で使われているJAVAのうち、JAVA1.6が2018年04月30日にサポート切れになる。JAVA1.7もしくはJAVA1.8へのバージョンアップが必要なため。

参考:
WAS V7/V8 サポート終了 およびWAS V8.5同梱のJava 6/7のサポート終了について
http://www-01.ibm.com/support/docview.wss?uid=jpn1J1013265

■バージョンアップを行うOS・ミドルウェア・ソフトウェアの範囲

WAS → VerUp(WAS8.5.5.xとJAVA 1.71へ)
 + サーバOS → Stay(現OSバージョンのまま)
 + ORACLE → Stay(現JAVAバージョンのまま)
 + 自社開発アプリケーション → Stay(現JAVAバージョンのまま)

WASのJAVAのみバージョンアップを行い、他のミドルウェア・他のアプリのJAVAは更新しない。サーバOSのバージョンアップやサーバの構成変更も実施しない。

■WAS リリーススケジュールの確認

WASバージョン リリース日 自社開発アプリの評価 IBMが推奨するか 備考
WAS8.5.5.9 2016/03/18 評価済(JWSLT) 推奨する ★着地バージョンの最有力候補
WAS8.5.5.10 2016/08/15 未評価 推奨する
WAS8.5.5.11 2016/12/23 評価済(JWST) 推奨する
WAS8.5.5.12 2017/07/21 評価済(JST) 推奨する
WAS8.5.5.13 2018/02/05 未評価 推奨する

IBMが推奨するWASバージョンの一覧(英語)
Recommended updates for WebSphere Application Server
http://www-01.ibm.com/support/docview.wss?uid=swg27004980#ver85_0

■結論:WAS&JAVAの着地バージョン

JAVA:1.71
WAS:8.5.5.9
自社開発アプリ:2017/12か2018/01の最新モジュール

■バージョンアップ検討案

第一案:WAS8.5.5.11かWAS 8.5.5.12へバージョンアップし、JAVA 1.8をインストールしてJAVAの切替を行う

最も理想的な案。だが、WASのJAVA 1.8はWindows Server 2008(windows server 2008 R2を含む)をサポートしておらず、Windows 2008を利用している企業が半数を占める現状では、採択できなかった。

また、WAS 8.5.5.11でGUI画面からインストールすると、デフォルトのJAVAがJAVA1.8になる、という情報↓がある。

Installing Java SDK 8.0 on WAS 8.5.5.x
https://www.ibm.com/developerworks/community/blogs/aimsupport/entry/Installing_Java_SDK_8.0_on_WAS_8.5.5.x?lang=en

インストール時に表示される画面がWAS8.5.5.3インストール時の画面から変わったのであれば、WAS 8.5.5.11 以上を入手した後、社内サーバで動作検証を行った上で、社内のWASインストールマニュアルを変更しなければならない。しかしながら、検証とマニュアル更新を突貫工事で行い、バージョンアップ実作業に間に合わせるのは、少し無理があった。
→後日WAS8.5.5.12を社内検証サーバにインストールしたところ、JAVA7orJAVA8へのバージョンアップを推奨する画面が1枚追加されていただけで、インストール手順は今までとほぼ同じ。インストールされるJAVAもJAVA6だった。

第二案:WAS 8.5.5.9へバージョンアップし、JAVA 1.71をインストールしてJAVAの切替を行う。

WAS 8.5.5.9は、JAVA 1.6・JAVA 1.71・JAVA 1.8の3種類のJAVAが利用可能で、柔軟性が高い。Windows Server 2008・2008 R2・2012・2012 R2 のいずれのOSでも利用OK。
最も現状に即していたため、この案を採択。
(WAS 8.5.5.9は、WASインストール時のデフォルトがJAVA 1.6、オプションでJAVA1.71を利用できる。更に、このバージョンからJAVA1.8もサポートされる)

第三案:WAS 8.5.0.xへバージョンアップし、JAVA 1.70をインストールして、JAVAの切り替えを行う。

JAVA 1.6・JAVA 1.7の2種類しかサポート範囲に含まれないが、バージョンアップするサーバ台数が少なくて済むというメリットがある。
だが、WAS 8.5.0.xにはクリティカルな脆弱性があるそうで、開発チーム・ミドルウェア出荷チームから激しい反発にあい、JAVA1.70は出荷すらして貰えなかった。この案は採択できず。
(JAVA 1.71はWAS 8.5.5.2以降しかサポートされないため、WAS 8.5.0.xはJAVA 1.70しか選択できない)

第四案(補欠):WAS 7.0.0.xxのまま、JAVA 1.70をインストールして、JAVAの切り替えを行う。

十分な計画と準備が必要で手間と時間も要するWASバージョンアップを行わずに済むため、トータル作業時間が最も少ない案。
但し、WAS7.0とJAVA1.7の組み合わせはIBMのサポート範囲外のため、実装できるかどうかや、正常に動作するかどうかは分かっていない。
社内検証だけでも試してみたかったが、採択できず。

■超重要!な注意事項

・IBMは、Windows Server 2008 OS × Websphere Application Server JAVA1.8 の組み合わせをサポートしない。

JAVA1.8を使うなら、Windows Server 2012もしくはWindows Server 2016へのOSバージョンアップが必須。

windows server 2008の延長サポートは2020年1月14日まで提供されるが、WASのJAVA 1.7のサポートは2019年9月30日で切れるので、OSより先にWASが(マルウェアを覚悟しないと)使えなくなってしまう。

・JAVA1.7.1の初期バージョンには、致命的な不具合がある

WAS8.5.5の各Fix Packの紹介ページに1行だけ注意書きが付されているが、JAVA1.7.1の初期バージョンにはWASが起動できないという致命的な不具合がある。


Known side effects

WebSphere Application Server 8.5.5 may not start when using Java 7 after upgrading to fix pack 2 or later. See Technote for more details.

<日本語訳>
(本FixPackの)既知の副作用

JAVA7を用いてFix Pack2以上にアップグレードすると、WAS 8.5.5が起動しないことがあります。詳細はテクニカルノートを参照のこと。


この不具合は、JAVAをJAVA7.1.4以上にバージョンアップすると解消する。JAVA7.1.4はWAS8.5.5.12以上のFixPackと同時に出荷されている。
WASと、そのWASに対応するJAVAは同時に出荷されるが、JAVAだけを切り離して適用しても差し支えない。そのため、WAS8.5.5.2以上のWASに適用するJAVA7は、WASのバージョンに関わらず、JAVA7.1.4以上となる。

本不具合の詳細については、下記のURLより確認できる。

JAVA7を用いてFix Pack2以上にアップグレードすると、WAS 8.5.5が起動しないことがあります(英語)

WebSphere Application Server 8.5.5 may not start when using Java 7 after upgrading to fix pack 2 or later, with APAR PM97140
http://www-01.ibm.com/support/docview.wss?uid=swg21692797


Problem(Abstract)
After upgrading WebSphere to 8.5.5 fix pack 2 or above, if a server is using Java 7 and the optional Java 7 service release is not also updated (as recommended), WebSphere will fail to start.

Symptom
WebSphere fails to start after upgrade and native_stderr.log has the following error message:

JVMJ9VM007E Command-line option unrecognised: -Xcheck:dump
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

Cause
APAR PM97140 introduced -Xcheck:dump to the application server arguments which requires a minimum of Java 7 SR4.

Resolving the problem
Upgrade the optional Java 7 to the recommended version to match the WAS upgrade: https://www-304.ibm.com/support/docview.wss?uid=swg27005002

<日本語訳(抜粋)>

障害(概要)
WAS8.5.5 fixPack 2もしくはそれ以上を用いてアップグレードした後、サーバがjava 7 を用いており、かつ、オプションのjava7 サービスリリース(?)を更新していなければ、Websphereが起動に失敗します。

(中略)

原因
(文章前半は訳せない) ..最低でもjava7のSR 4が必要です。

問題の解決
JAVA 7を推奨バージョンまでアップグレードし、WASのアップグレードに合わせて下さい。


WAS8.5.5.9とJAVA1.7.1.0.0の組み合わせで社内検証した際、プロファイルが新規作成できず、DmgrとNodeAgentの両サービスが起動に失敗するという悲惨な目に遭った。JAVA7.1.4が手元になかったため、手元にある最上位バージョンだったJAVA1.7.1.3.60を上書きインストールすると、どちらのサービスも正常に起動できるようになった。
上記の不具合と直接の関係はないのかもしれないが、初期出荷のJAVA7.1は十分警戒した方がいい。

・一度に2種類のJAVA7はインストールできない

JAVA 7.1.0.0がインストールされているWAS 8.5.5.9にJAVA 7.1.3.60をインストールすると、JAVA 7.1.0.0が上書きされてしまった。JAVA6とJAVA7は2つ同時にインストールしておくことができ、managesdk.batで使うJAVAを切り替えることができるが、JAVA7同士は同時にインストールしておくことができないようだ。

先にインストールしたJAVA 7.1.0.0フォルダをリネームしてから2種類目のJAVA 7.1.3.60をインストールし、2種類のJAVA 7を無理矢理共存させる方法は採れなくもない。ただその場合、Installation Managerが先にインストールしたJAVA 7.1.0.0を認識できなくなるのではないかと危ぶんでいる。

■WAS バージョン検討の詳細

WASバージョン JAVAバージョン 使用可否 考慮事項
8.5.5.11~ JAVA1.71 or JAVA1.8 NG WASがデフォルトで使うJAVAとしてJAVA 1.6もしくはJAVA1.8のどちらかをインストールでき、JAVA1.71をオプションとして選択できる。JAVA1.6が2018/04/30にサポート終了(EOS)することを踏まえると、①JAVA1.8でインストールする、②JAVA1.6でインストールして4月末までにJAVA1.71へバージョンアップする、の二択。但し、JAVA1.8はWindows Server 2008をサポートしない。また、GUIモードでインストールするとデフォルトがJAVA1.8になる。(コマンドラインを用いたインストールであれば、JAVA1.6かJAVA1.8を選択できる)
8.5.5.10 JAVA1.71 or JAVA1.8 NG 自社開発アプリが未検証
8.5.5.9 JAVA1.71 or JAVA1.8 OK
8.5.5.3~8.5.5.8 JAVA1.71 OK
8.5.5.2 JAVA1.71 NG Solaris/ HPでJAVA1.7を利用できないのでNG
8.5.0.x JAVA1.70 NG 自社開発アプリがJAVA1.70をサポートしないのでNG
7.0.0.x JAVA1.6 NG 2018年4月末以降IBMがサポートしないのでNG

WAS8.5.5.11以降
デフォルトがJAVA1.8。
コマンドラインモードでインストールするのであればJAVA1.6を利用でき、JAVA1.7をオプションで選択できる。
本来はJAVA1.8でインストールし、一時的にJAVA1.8→JAVA1.7のバージョンダウンすべきだが、バージョンダウンは未検証なので、現時点では使用不可。

WAS8.5.5.9
デフォルトがJAVA1.6かJAVA1.8。JAVA1.7をオプションで選択でき、WASバージョンアップなしにJAVA1.8を利用できる。
本来はJAVA1.8でインストールし、一時的にJAVA1.8→JAVA1.7のバージョンダウンすべきだが、バージョンダウンは未検証なので、現時点では使用不可。

WAS8.5.5.2以上(実質8.5.5.3↑)
JAVA1.71インストールが可能になる

WAS8.5.0.x
JAVA1.70しかインストールできない

Installing optional Java 7.x on WebSphere Application Server 8.5
https://www.ibm.com/developerworks/community/blogs/aimsupport/entry/installing_optional_java_7_x_on_websphere_application_server_8_5_0_0?lang=en

————————————————–
・Java 7.0 was shipped as an optional feature that can be installed with WAS v8.5.0.0
・Java 7.1 is shipped with WAS v8.5.5.2 (in a full installation) which can be installed as an optional feature on WAS v8.5.5.2 or higher (not available for WAS running on Solaris/ HP)
————————————————-
訳文

・java7.0はオプションの機能として出荷され、WASのバージョン8.5.0.0でインストールできます。
・java 7.1はWASのバージョン8.5.5.2とともに出荷され、WAS8.5.5.2かそれ以降のバージョンで、オプションの機能としてインストールできます。(但し、ソラリスやHPで稼働しているWASには、ご利用頂けません)

(和訳文はブログ管理人が作成)
———————————————-

JAVA1.8はWAS8.5.5.9以上が必要
————————————————–
WAS traditional V8.5でJava 8をサポートするには、少なくとも8.5.5.9またはそれ以降のフィックス・パックが必要であり、
Java 7.1であれば8.5.5.2またはそれ以降のフィックス・パックが必要であり、
Java 7.0であればV8.5.0.0からサポートされています。
————————————————–

WAS8.5.5.11以降は、デフォルトがJAVA6かJAVA1.8でインストールされる
Installing IBM WebSphere SDK Java Technology Edition Version 7.0 or 7.1 using the GUI
https://www.ibm.com/support/knowledgecenter/en/SS7K4U_8.5.5/com.ibm.websphere.installation.nd.doc/ae/tins_installation_jdk7_gui.html

自社開発アプリ側はWAS8.5.5.11で評価、お客様にも案内

8.5.5以降 デフォルトJAVA1.6
8.5.5.2以降 オプションでJAVA1.71インストールok WAS8.5.5.2は一部OSがサポート外
8.5.5.11以降 デフォルトJAVA1.8
 ->WAS8.5.5.3~8.5.5.10がベスト

自社開発側のJAVA1.8対応が済んでる?? -> 済んでたらwindows2012のみJAVA8、windows2008はJAVA7でインストール&稼動
自社開発側のJAVA1.8対応が済んでない -> windows2012・windows2008ともjava7でインストール&稼動

現在、windows2012の自社アプリはJAVA1.7.011で稼働中。WASはJAVA1.6で稼動

WAS8.5.5.2 JAVA7.1とRED HAT LINUX5との組合せがNG
H社はRED HAT LINUX6でセーフ
N社はDBサーバがRED HAT LINUX5だが、APサーバはwindowsOSなのでセーフ

■JAVA SDK7.1のインストール

インストール手順書
 インストール + JAVA切替 が必要
 JAVA1.6とJAVA1.7とJAVA1.71はそれぞれ別フォルダにインストールされるため、同時に存在でき、切り替え・切り戻しが可能
 インストール&切替手順は別記事で記載

SDKモジュール
WAS8.5.5.9に付属なし
SDKモジュールをMW出荷担当部署からに送って貰う

■Oracleバージョンアップ

Oracle 11.2.0.3以下 -> 11.2.0.4
 具体的な手順書は別記事で記載
 既存環境に上書き適用ができず、実質的に新規インストール+α
 実績少ない
 適用モジュール不明 ★要対応
   >>Oracleパッチ適用の手順は、
   >>(1)現行のOracleインストールフォルダをリネーム
   >>(2)新たにOracle11.2.0.4をインストール
   >>(3)設定ファイルを移行
   >>(4)各インスタンスにアップグレード処理を実行
 HDD空きは、全環境のフルDMP + 10~20GB
 11.2.0.4で新規作成した方が早いかも…?

Oracle 10g->11g、10g->12c、11g->12c
 通常のインストール手順書で代用

■全工程WBS作成

Oracle + WAS(7->8.5.5 or 8->8.5.5) + TLS1.2対応 で作成



■参考リンク

Installing IBM WebSphere SDK Java Technology Edition Version 7.0 or 7.1 using the GUI
https://www.ibm.com/support/knowledgecenter/en/SS7K4U_8.5.5/com.ibm.websphere.installation.nd.doc/ae/tins_installation_jdk7_gui.html

————————————————–
Starting in version 8.5.5.11, you must install either Java SE 6 or Java SE 8 as the version of Java SE contained in the /java and /java64 directories in WebSphere Application Server and used by default during server and node configuration. Java 8 is the recommended Java SDK because it provides the latest features and security updates. You can continue to use Java SE 6, but no service can be provided after the end of support in April 2018, which could expose your environment to security risks.
————————————————–

Installing IBM WebSphere SDK Java Technology Edition Version 7.0 or 7.1 using response files
https://www.ibm.com/support/knowledgecenter/en/SS7K4U_8.5.5/com.ibm.websphere.installation.nd.doc/ae/tins_installation_jdk7_silent.html

Switching to Java 7.0 SDK in WebSphere Application Server
https://www.ibm.com/support/knowledgecenter/en/SSWLGF_8.5.0/com.ibm.sr.doc/twsr_java17.html


8.5.5.9: WebSphere Application Server V8.5.5 Fix Pack 9
http://www-01.ibm.com/support/docview.wss?uid=swg24041819