JVM設定
Liferay DXP 2024.Q3+/Portal GA125+以降、Liferay DXP/Portal には、特定の JVM オプション設定を含む Java JDK 17 または 21 (以前のバージョンでは JDK 8 および 11 をサポート) が必要です。 JDK 11、17、21 に固有の推奨設定と、推奨されるベースライン メモリ設定もあります。 これらの設定についてはここで説明し、Tomcat スクリプトの例で示します。
JDKを選択するには、 Liferay DXP互換性マトリックス を参照してください。
推奨されるJVM設定
| 種類 | 設定/デフォルト | 必須 | 説明 |
|---|---|---|---|
| ファイルのエンコーディング | -Dfile.encoding=UTF8 | はい | DXPでは、国際化をサポートするためにUTF-8ファイルエンコーディングが必要です。 |
| タイムゾーン | -Duser.timezone=GMT | はい | DXPは、すべての日付にGMTタイムゾーンを使用します。 |
| ヒープサイズ | -Xms2560m -Xmx2560m | いいえ | デフォルトの最小サイズと最大サイズは、ニーズに合わせて調整できますが、JVM による動的な調整を防ぐために、同じ最小サイズ (-Xms) と最大サイズ (-Xmx) を設定する必要があります。 |
| Log4j | -Dlog4j2.formatMsgNoLookups=true | はい* | 2.15.0 より前のバージョンの Log4j は、LDAP JNDI パーサーを介したリモート コード実行 (RCE) の脆弱性の影響を受けます。 詳細については、 LPS-143663 を参照してください。 *Liferay DXP 7.4 GA1 および Liferay PORTAL 7.4 GA1 - GA3 では、セキュリティの脆弱性を解決するためにこの設定が必要です。 |
サポートされているアプリケーションサーバーのLiferayインストールの記事では、これらの設定を適用する場所が説明されています。 記事のリンクは次の通りです。
既知の問題:不正アクセスの警告
JDK 11、17、または 21 では、アプリケーション サーバーに Liferay を手動でインストールしている場合、次のような 不正アクセス 警告がログに出力されることがあります。
これらの警告は既知の問題 (LPS-87421) によって発生し、次の JVM オプションを追加することで解決できます。
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.lang.invoke=ALL-UNNAMED
--add-opens=java.base/java.lang.reflect=ALL-UNNAMED
--add-opens=java.base/java.net=ALL-UNNAMED
--add-opens=java.base/sun.net.www.protocol.http=ALL-UNNAMED
--add-opens=java.base/sun.util.calendar=ALL-UNNAMED
--add-opens=jdk.zipfs/jdk.nio.zipfs=ALL-UNNAMED
Tomcatスクリプトの例
以下は、上記のJVMオプションの一部を示すTomcat setenv.shスクリプトです。
CATALINA_OPTS="$CATALINA_OPTS -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -Duser.timezone=GMT -Xms2560m -Xmx2560m -XX:MaxNewSize=1536m -XX:MaxMetaspaceSize=768m -XX:MetaspaceSize=768m -XX:NewSize=1536m -XX:SurvivorRatio=7"
CATALINA_OPTS="$CATALINA_OPTS --add-opens=java.base/java.io=ALL-UNNAMED"
CATALINA_OPTS="$CATALINA_OPTS --add-opens=java.base/java.lang.reflect=ALL-UNNAMED"
Liferayは多くのアプリケーションサーバーをサポートしており、それらはすべて、選択したJVMオプションで構成することができます。