JDK8からJDK17への移行
JDK8からJDK17への移行は、以下のJDK8からJDK11への「移行ガイド」を参考にした後に、"JDK11からJDK17への移行"の説明を参考に移行してください。
https://docs.oracle.com/javase/jp/11/migrate/index.html |
JDK11からJDK17への移行
JDK17への移行は、以下の「移行ガイド」を参考に移行してください。
https://docs.oracle.com/javase/jp/17/migrate/index.html |
JDKツール
各ツールの注意事項は、"1.2.2 JDK ツール"を参照してください。
ハードウェア資源の動的再構成機能
アプリケーションを実行するハードウェア環境によっては、「DR(Dynamic Reconfiguration)機能」のハードウェア資源の動的再構成機能が利用できる場合があります。
ハードウェア資源の動的再構成機能を利用する場合、以下の注意が必要です。
Javaプロセスの再起動
OSから見たプロセッサー数が、シングルプロセッサーからマルチプロセッサー、またはマルチプロセッサーからシングルプロセッサーへとCPU数が変化する場合は、Javaプロセスの停止後に構成変更をしてください。
マルチプロセッサーからマルチプロセッサーへの変化の場合は、Javaプロセスの停止は不要です。
実行するJavaアプリケーションへの考慮
システム運用中にCPU数が変化するため、以下のJava APIを使用するJavaアプリケーションは、アプリケーション実行中にCPU数が動的に変化する可能性があることを考慮して各処理を実装する必要があります。
利用可能なCPU数に影響を受けるJavaアプリケーションは、ポーリング処理などにより処理を調整する必要があります。
Java Platform API仕様:
java.lang.Runtime#availableProcessors()
java.lang.management.OperatingSystemMXBean#getAvailableProcessors()
JVMTI(Java Virtual Machine Tool Interface):
GetAvailableProcessors()
Exception発生時に「<<no stack trace available>>」となる場合
Javaアプリケーション実行でExceptionが発生した場合に、スタックトレースが出力されず代わりに「<<no stack trace available>>」と出力される場合があります。
これはJava VM内部でExceptionを生成する際、「スタックトレース出力の情報」を格納するためのJavaヒープが不足していることになります。
このような場合、Java VMでは、java.lang.OutOfMemoryErrorを発行しないため、Javaのヒープサイズ(メモリー割り当てプールの大きさ)を大きくするなど対策をとり、Javaヒープの空きを十分に取った上でスタックトレースを確認してください。
スタックトレースについては、"3.1 スタックトレース"を参照してください。