Windows でのクラッシュの診断

通常、クラッシュは、Java™ によってスローされたリカバリー不能例外として、または一般保護障害 (GPF) を通知するポップアップ・ウィンドウとして表示されます。 通常、ポップアップ・ウィンドウでは、java.exe がクラッシュの原因となったアプリケーションとして示されます。 クラッシュは、Java ランタイムの障害、または Java プロセスで実行されているネイティブ (JNI) コードの障害が原因で発生する可能性があります。

アプリケーションで JNI コードを適用、または JNI コードを使用するサード・パーティーのパッケージ (JDBC アプリケーション・ドライバーなど) を使用しているかどうか調べてみてください。 該当しない場合は、ランタイム環境での障害と言えます。

(JVM オプション、JNI アプリケーション、またはプロファイル作成ツールにおける) 最小限の依存関係でクラッシュを再現してみてください。

クラッシュ状態の場合は、Java 用の IBM® サービス・チームのために可能な限り多くのデータを収集します。 以下のことをしてください。
  • Javadump を収集します。 詳しくは、 J9 VM リファレンス の「 Javadump の使用 」を参照してください。
  • メモリー・ダンプを収集します。 詳しくは、 Windows 環境のセットアップと確認 を参照してください。
  • snap トレース・ファイルを収集します。 詳しくは、 J9 VM リファレンス の「 Java アプリケーションのトレース 」を参照してください。
  • JIT をオフにして実行します。 詳しくは、 J9 VM リファレンス の「 JIT または AOT の問題の診断 」を参照してください。 JIT をオフにして問題が解決した場合は、JIT コンパイル・オプションをいくつか試して、問題をさらに絞り込めるかどうか確認してください。
  • ガーベッジ・コレクションのパラメーターを調整してみます。 詳しくは、 J9 VM リファレンス の「 メモリー管理 」を参照してください。 動作の変化はすべてメモしておいてください。
  • 問題がマルチプロセッサー・システムで発生している場合は、ユニプロセッサー・システムでアプリケーションをテストします。 SMP ボックスで BIOS オプションを使用すれば、プロセッサー親和性を 1 にリセットし、ユニプロセッサーのように動作させることができます。 問題が解決した場合は、バグ・レポートにメモしておいてください。 それ以外の場合は、クラッシュ・ダンプを収集します。