Reference
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

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互換性マトリックス を参照してください。

種類設定/デフォルト必須説明
ファイルのエンコーディング-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 を手動でインストールしている場合、次のような 不正アクセス 警告がログに出力されることがあります。

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.liferay.petra.reflect.ReflectionUtil (file:/Users/malei/dev/project/bundles/master-bundles/tomcat-9.0.10/lib/ext/com.liferay.petra.reflect.jar) to field java.lang.reflect.Field.modifiers
WARNING: Please consider reporting this to the maintainers of com.liferay.petra.reflect.ReflectionUtil
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

これらの警告は既知の問題 (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オプションで構成することができます。