10.3.3 アプリケーションサーバ 11-00,11-10,11-20,または11-30から,11-40までの仕様変更
この項にある表で,アプリケーションサーバ 11-00,11-10,11-20,または11-30から,11-40までの仕様変更の項目を示します。
アプリケーションサーバ 11-00,11-10,11-20,または11-30から,11-40に移行する場合,この項にある表の「移行前のアプリケーションサーバのバージョン」列で該当する列を確認してください。「○」のときは仕様変更があるため,「仕様変更の項目」列に記載の参照先を確認してください。「−」のときは仕様変更がない,または移行前のバージョンにその仕様がないため,参照先の確認は不要です。
-
アプリケーションに関する仕様変更
表10‒11 アプリケーションサーバ 11-00,11-10,11-20,または11-30から,11-40までの仕様変更(アプリケーションに関する仕様変更) 分類
仕様変更の項目
移行前のアプリケーションサーバのバージョン
11-30
11-20
11-10
11-00
J2EEサーバ
−
−
○
○
−
−
○
○
JavaVM※
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
- (凡例)
-
○:仕様変更があるため,参照先の確認が必要
−:仕様変更がない,または移行前のバージョンにその仕様がないため,参照先の確認は不要
- 注※
-
JDK17以降を使用する場合に参照してください。
-
構築環境に関する仕様変更
表10‒12 アプリケーションサーバ 11-00,11-10,11-20,または11-30から,11-40までの仕様変更(構築環境に関する仕様変更) 分類
仕様変更の項目
移行前のアプリケーションサーバのバージョン
11-30
11-20
11-10
11-00
J2EEサーバ
−
−
−
○
J2EEサーバおよびバッチサーバ
○
○
○
○
- (凡例)
-
○:仕様変更があるため,参照先の確認が必要
−:仕様変更がない,または移行前のバージョンにその仕様がないため,参照先の確認は不要
-
運用環境に関する仕様変更
表10‒13 アプリケーションサーバ 11-00,11-10,11-20,または11-30から,11-40までの仕様変更(運用環境に関する仕様変更) 分類
仕様変更の項目
移行前のアプリケーションサーバのバージョン
11-30
11-20
11-10
11-00
J2EEサーバ
−
−
−
○
Webサーバ連携
−
−
○
○
JavaVM
○
○
○
○
- (凡例)
-
○:仕様変更があるため,参照先の確認が必要
−:仕様変更がない,または移行前のバージョンにその仕様がないため,参照先の確認は不要
- 〈この項の構成〉
-
(1) アプリケーションサーバのJPA機能
アプリケーションサーバ 11-10以降,アプリケーションサーバのJPA機能はデフォルトで有効になります。11-00から移行した場合でも同様です。
11-00から移行した場合に,11-00のJ2EEサーバでJPA2.1を利用していたアプリケーションが,メッセージKDJE56515-Eを出力して開始に失敗するときは,アプリケーションサーバのJPA機能を無効にしてください。アプリケーションサーバのJPA機能を無効にするには,ユーザプロパティファイルに次のプロパティを設定してください。
ejbserver.jpa.disabled=true
- 互換性を重視したシステムへ移行する場合に必要な作業
-
作業はありません。
- 推奨機能を使用したシステムへ移行する場合に必要な作業
-
作業はありません。
- 影響を受けるもの
-
ありません。
(2) アプリケーションサーバのJPA機能のCDI Managed Bean対応
11-20以降では,CDI Managed Bean(それに関連づくインターセプタ含む)からアプリケーションサーバのJPA機能の使用をサポートします。そのため,CDI Managed Beanで@PersistenceContextおよび@PersistenceUnitが有効になり,アノテーションによってコンテナ管理のEntityManagerとEntityManagerFactoryがインジェクトされます。11-10以前から移行した場合でも同様です。
CDI Managed Beanで@PersistenceContextおよび@PersistenceUnitを無効にしたい場合は,ユーザプロパティファイルに次のプロパティを設定してください。
ejbserver.jpa.cdiEnabled=false
- 互換性を重視したシステムへ移行する場合に必要な作業
-
作業はありません。
- 推奨機能を使用したシステムへ移行する場合に必要な作業
-
作業はありません。
- 影響を受けるもの
-
ありません。
(3) Webコンテナのwelcomeファイル転送方式
11-20以降では,Webコンテナのwelcomeファイル転送方式がリダイレクト方式からフォワード方式に変更になります。このため,welcomeファイルをリダイレクトで処理することを期待していたアプリケーションを11-10以前から移行する場合,次の動作が異なります。
-
welcomeファイル内で指定した相対パスは,welcomeファイルを配置した位置からの相対パスではなく,リクエストURLからの相対パスとして処理します。
-
welcomeファイルを配置した位置からの相対パスとリクエストURLからの相対パスとが異なる場合,welcomeファイルからの遷移先が11-10以前と異なることがあります。
- 互換性を重視したシステムへ移行する場合に必要な作業
-
V9互換モードでは,リダイレクト方式から変更がないため作業はありません。
- 推奨機能を使用したシステムへ移行する場合に必要な作業
-
welcomeファイル内で相対パスを指定していて,リクエストURLからの相対パスとは異なる位置を期待している場合,指定したパスの変更が必要です。
- 影響を受けるもの
-
welcomeファイルから他のページへ遷移する場合に,期待したページへ遷移できない場合があります。
(4) リダイレクタ機能
11-20以降では,リダイレクタ機能を使用するためにHTTP Serverを起動する際は,環境変数を設定する必要があります。
- 互換性を重視したシステムへ移行する場合に必要な作業
-
リダイレクタ機能を使用するためにHTTP Serverを起動する際は,次の環境変数を設定する必要があります。
- Linuxの場合
-
LD_LIBRARY_PATH=/opt/Cosminexus/common/lib
- Windowsの場合
-
PATH=<Application Serverのインストールディレクトリ>¥common¥lib
- 推奨機能を使用したシステムへ移行する場合に必要な作業
-
作業はありません。
- 影響を受けるもの
-
ありません。
(5) リソース枯渇監視機能
11-40以降,リソース枯渇監視機能のメモリ枯渇監視情報のRate2のアラート出力は,デフォルトで無効になります。11-30以前から移行した場合でも同様です。
リソース枯渇監視機能のメモリ枯渇監視情報のRate2のアラート出力を有効にしたい場合は,ユーザプロパティファイルに次のプロパティを設定してください。
ejbserver.watch.memory.rate2alert.enabled=true
- 互換性を重視したシステムへ移行する場合に必要な作業
-
作業はありません。
- 推奨機能を使用したシステムへ移行する場合に必要な作業
-
作業はありません。
- 影響を受けるもの
-
ありません。
(6) sun.nio.cs.mapシステムプロパティの削除
JDK17以降の場合,sun.nio.cs.mapシステムプロパティを使用できません。そのため,エンコーディング名shift_jis,csshiftjis,ms_kanji,x-sjisをMS932の別名として実行させることができません。この変更によって文字化けが発生する場合は,アプリケーションを改修してください。
- 互換性を重視したシステムへ移行する場合に必要な作業
-
作業はありません。
- 推奨機能を使用したシステムへ移行する場合に必要な作業
-
作業はありません。
- 影響を受けるもの
-
ありません。
(7) javacコマンドのsource/target/releaseオプションに指定できる値
JDK17以降の場合,javacコマンドのsourceオプション,targetオプションおよびreleaseオプションに「6」を指定することはできません。
- 互換性を重視したシステムへ移行する場合に必要な作業
-
作業はありません。
- 推奨機能を使用したシステムへ移行する場合に必要な作業
-
作業はありません。
- 影響を受けるもの
-
ありません。
(8) Java SEのバージョン
アプリケーションサーバ11-40以降で使用されているJava SE 17は,Java SEの旧バージョンと,一部の機能に互換性がありません。詳細は,Java SEのドキュメントを参照してください。
- 互換性を重視したシステムへ移行する場合に必要な作業
-
作業はありません。
- 推奨機能を使用したシステムへ移行する場合に必要な作業
-
作業はありません。
- 影響を受けるもの
-
ありません。
(9) クラスファイルバージョンの変更
JDK17のクラスファイルバージョンは「61.0」です。
また,このクラスファイルバージョンの変更に伴い,クラスファイルフォーマットも変更されています。
- 互換性を重視したシステムへ移行する場合に必要な作業
-
クラスファイルの解析などを実施するプログラムやライブラリを使用している場合は,実装の変更やライブラリの更新などが必要となる場合があります。
- 推奨機能を使用したシステムへ移行する場合に必要な作業
-
互換性を重視したシステムへ移行する場合に必要な作業と同じです。
- 影響を受けるもの
-
ありません。
(10) JDKのバージョンによる明示管理ヒープ機能の使用可否
アプリケーションサーバ11-40に同梱されているJDK17では,明示管理ヒープ機能は非サポートです。明示管理ヒープ機能は,SerialGCにおけるGC停止時間の長期化を防ぐために使用します。11-40ではアプリケーションサーバでサポートしているG1GC,またはZGCを使用することでGC停止時間の長期化を防ぐことができます。継続して明示管理ヒープ機能をご使用になる場合は,JDK11をご使用ください。
JDK17の使用時にGC停止時間の長期化を防ぐときは,G1GCまたはZGCを使用してください。どのGCを選択するかによって,スループットや停止時間など,アプリケーションに与える影響が異なります。それぞれのGCの特徴を考慮して,アプリケーションの要件に合うGCを選択してください。それぞれのGCの特徴については,マニュアル「アプリケーションサーバ システム設計ガイド」の「7.1 GCとJavaVMのメモリ管理の概要」を参照してください。
明示管理ヒープ機能の使用状況については,-XX:[+|-]HitachiUseExplicitMemoryオプションの指定有無をご確認ください。詳細は,マニュアル「アプリケーションサーバ 機能解説 拡張編」の「7.13.1 明示管理ヒープ機能を利用するための共通の設定(JavaVMオプションの設定)」を参照してください。
これまでに明示管理ヒープ機能を使用していて,これからJDK17を使用する場合,次の対応をしてください。
-
明示管理ヒープ機能のJavaVMオプションを指定している場合,プロセスの起動に失敗します。そのため,明示管理ヒープ機能のJavaVMオプションはすべて削除してください。明示管理ヒープ機能のJavaVMオプションについては,マニュアル「アプリケーションサーバ 機能解説 拡張編」の「7.13.1 明示管理ヒープ機能を利用するための共通の設定(JavaVMオプションの設定)」を参照してください。
-
明示管理ヒープ機能のAPIを使用している場合,アプリケーションの改修は必要ありません。明示管理ヒープ機能が無効の場合と同じ挙動となります。明示管理ヒープ機能のAPIについては,マニュアル「アプリケーションサーバ 機能解説 拡張編」の「7.12 明示管理ヒープ機能APIを使ったJavaプログラムの実装」を参照してください。
-
明示管理ヒープ機能は,Javaヒープとは別のExplicitヒープという独自の領域を使用しています。これまで明示管理ヒープ機能を使用していた場合,Explicitヒープに配置されていたオブジェクトは,すべてJavaヒープに配置されることになります。そのため,これまでExplicitヒープに設定していたヒープサイズ(-XX:HitachiExplicitHeapMaxSizeに指定した値)をJavaヒープに加算してください。G1GC,ZGCを使用する場合は,さらにそれぞれのGCで必要なJavaヒープサイズを加算して使用してください。G1GCのチューニングについては,マニュアル「アプリケーションサーバ システム設計ガイド」の「7.16 G1GCのチューニング」,ZGCのチューニングについては,マニュアル「アプリケーションサーバ システム設計ガイド」の「7.18 ZGCのチューニング(JDK17以降の場合)」を参照してください。
- 互換性を重視したシステムへ移行する場合に必要な作業
-
作業はありません。
- 推奨機能を使用したシステムへ移行する場合に必要な作業
-
作業はありません。
- 影響を受けるもの
-
ありません。
(11) JSPから生成されたサーブレット用コンパイラのバージョン
JSPファイルをコンパイルする過程で,中間ファイルとしてサーブレットのJavaソースを生成します。生成されたサーブレットのJavaソースはJavaコンパイラによって,最終的にclassファイルを生成します。このとき使用されるJavaコンパイラのJava言語仕様のバージョンは,製品のバージョンによって異なります。J2EEサーバでは,インストールされているjavacコンパイラのデフォルトバージョンのJava言語仕様に従ってJSPから生成されたサーブレットのソースファイルをコンパイルします。
コンパイルするJava言語仕様のバージョンを次の表に示します。
アプリケーションサーバのバージョン |
JDKのバージョン |
コンパイルJava言語仕様バージョン |
---|---|---|
09-87から11-40より前 |
JDK11 |
Java SE 11 |
11-40 |
JDK11 |
Java SE 11 |
JDK17 |
Java SE 17 |
JSPファイルのスクリプティングに移行後のJava言語仕様(JDK11を使用している場合はJava SE 11,JDK17を使用している場合はJava SE 17)に反したコーディングをしていて,JSPから生成されたサーブレットのソースファイルがコンパイルできない場合,J2EEサーバのユーザプロパティファイルのwebserver.jsp.compile.backcompatキーに,移行前と同じコンパイラのJava言語仕様のバージョンを指定します。
cjjspcコマンドを使用してJSP事前コンパイルを実行する場合は,cjjspcコマンドの-sourceオプションに移行前と同じ値を指定します。
JSPファイル内にスクリプティングを記述していない場合や,JSPファイルのスクリプティングが移行後のJava言語仕様に反さずJSPから生成したサーブレットのソースファイルのコンパイルが正常にできる場合,上記の設定は不要です。
- 互換性を重視したシステムへ移行する場合に必要な作業
-
移行前のアプリケーションサーバのコンパイルJava言語仕様バージョンに合わせて,次の値を設定してください。
J2EEサーバ用のユーザプロパティファイル(usrconf.properties)のwebserver.jsp.compile.backcompatキー
-
JDK11を使用している場合:「1.6」「6」「1.7」「7」「1.8」または「8」
-
JDK17を使用している場合:「1.7」「7」「1.8」「8」または「11」
cjjspcコマンドの-sourceオプション(cjjspcコマンドを使用してJSP事前コンパイルを実行する場合)
-
JDK11を使用している場合:「1.6」「6」「1.7」「7」「1.8」「8」または「9」
-
JDK17を使用している場合:「1.7」「7」「1.8」「8」「9」または「11」
-
- 推奨機能を使用したシステムへ移行する場合に必要な作業
-
JSPファイルのスクリプティングに移行後のJava言語仕様に反したコーディングをしている場合,移行後のJava言語仕様に従うようにJSPファイルを修正してください。
- 影響を受けるもの
-
ありません。
(12) GCのデフォルト
GCのデフォルトは,11-30以前はSerialGCですが,11-40以降はG1GCになります。ただし,論理プロセッサが2未満または物理メモリが1792メガバイト未満の場合は,自動でSerialGCがデフォルトとして選択されます。
- 互換性を重視したシステムへ移行する場合に必要な作業
-
移行前にJDKでGCのオプションを指定していない,かつ11-40以降も11-30以前と同様にSerialGCを使用する場合は,-XX:+UseSerialGCオプションを指定してください。
- 推奨機能を使用したシステムへ移行する場合に必要な作業
-
作業はありません。
- 影響を受けるもの
-
ありません。