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

6 プロセスのハングおよびループのトラブルシューティング

この章では、ハング・アップまたはループしているプロセスをトラブルシューティングする具体的な手順に関する情報と指針を提供します。

ハング・アップまたはループしているプロセスが関与する問題が発生することがあります。ハング・アップはさまざまな理由で発生する可能性がありますが、多くの場合、アプリケーション・コード、APIコード、またはライブラリ・コード内のデッドロックが原因です。Java HotSpot VMのバグが原因でハングアップが発生することもあります。

ハング・アップのように見えて、実はループであることが判明する場合もあります。たとえば、VMプロセス内のバグによって1つ以上のスレッドが無限ループに入ると、使用可能なCPUサイクルがすべて消費される可能性があります。

ハングアップを診断する最初の手順は、VMプロセスがアイドル状態なのか、それとも使用可能なCPUサイクルをすべて消費しているかを調べることです。これはオペレーティング・システム(OS)のネイティブ・ユーティリティを使用して行うことができます。プロセスがビジー状態で、使用可能なCPUサイクルをすべて消費しているように見える場合は、デッドロックではなくループしているスレッドが問題である可能性が高いです。Oracle Solarisオペレーティング・システムではたとえば、prstat -L -p pidコマンドを使用してターゲット・プロセスのすべての軽量プロセス(LWP)の統計を報告することができ、このようにしてCPUサイクルを大量に消費しているスレッドが特定されます。

この章には、次のセクションがあります。

目次      

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