Java Platform, Standard Editionトラブルシューティング・ガイド
目次      

ハングアップ・プロセス・ツール

表2-3では、ハングアップまたはデッドロックしたプロセスに関連するシナリオで役立つ可能性のあるオプションやツールをまとめています。これらのツールでは、アプリケーション起動時に特殊なオプションは必要ありません。

このリリースのJDK 8では、JVMおよびJavaアプリケーションに関する問題を診断するため、Java Mission Control、Java Flight Recorderおよびjcmdユーティリティが導入されています。診断機能を強化し、パフォーマンスのオーバーヘッドを削減するには、以前のjstackjinfoおよびjmapユーティリティのかわりに最新の診断ツールjcmdの使用をお薦めします。

表2-3 ハングアップ・プロセス・ツール

ツールまたはオプション 説明および使用方法

Ctrl+Breakハンドラ

(Oracle SolarisおよびLinuxオペレーティング・システムでは[Ctrl]+[\]またはkill -QUIT pid、Windowsでは[Ctrl]+[Break])

このキーの組み合わせでは、スレッド・ダンプとデッドロック検出が実行されます。Ctrl+Breakハンドラではオプションで、並行ロックとその所有者の一覧や、ヒープ・ヒストグラムを出力することもできます。「Ctrl+Breakハンドラ」を参照してください。

jcmdユーティリティ

jcmdユーティリティを使用してJVMに診断コマンド・リクエストを送信し、JVMではこれらのリクエストを使用してJavaフライト記録を制御します。JFRはフライト記録のイベントのトラブルシューティングと診断に使用します。「jcmdユーティリティ」を参照してください。

jdbユーティリティ

デバッガ・サポートには、jdbなどのJava言語デバッガがプロセスに接続することを許可する、接続コネクタが含まれています。これは、ハング・アップやデッドロックの発生時に各スレッドが何をしていたのかを示すのに役立つ可能性があります。「jdbユーティリティ」を参照してください。

jhatユーティリティ

このユーティリティは、ヒープ・ダンプ内のオブジェクト・トポロジを参照するための便利な手段を提供します。「jhatユーティリティ」を参照してください。

jinfoユーティリティ

このユーティリティはJavaプロセスから構成情報を取得できます。「jinfoユーティリティ」を参照してください。

jmapユーティリティ

このユーティリティは、Javaプロセスからヒープ・ヒストグラムなどのメモリー・マップ情報を取得できます。Oracle SolarisおよびLinuxオペレーティング・システムでは、プロセスがハングアップした場合に-Fオプションを使用できます。「jmapユーティリティ」を参照してください。

jsadebugdデーモン

(Oracle SolarisおよびLinuxオペレーティング・システムのみ)

Serviceability Agent Debug Daemon (jsadebugd)は、Javaプロセスまたはコア・ファイルに接続し、デバッグ・サーバーとして動作します。「jsadebugdデーモン」を参照してください。

jstackユーティリティ

このユーティリティは、JavaプロセスからJavaおよびネイティブ・スタックの情報を取得できます。Oracle SolarisおよびLinuxオペレーティング・システムでは、プロセスがハングアップした場合に-Fオプションを使用できます。「jstackユーティリティ」を参照してください。

ネイティブ・ツール

各オペレーティング・システムには、ハング・アップやデッドロックの状況で役立つ可能性のあるネイティブ・ツールおよびユーティリティがあります。「オペレーティング・システムのネイティブ・ツール」を参照してください。


目次      

Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.