Interstage Application Serverにおける、Javaオブジェクトのリークによるjava.lang.OutOfMemoryErrorの調査方法について
- Javaアプリケーションでのオブジェクトのリークにより、java.langOutOfMemoryErrorが発生した場合の調査方法を教えてください。
- リークしているJavaオブジェクトを確実に特定する方法はありませんが、調査を支援するツールとして、
- Qualyzer(V6~V9でサポート)
- Java監視機能(V9.2.0~V9.3.0はEnterprise Editionのみ、V9.3.1 はEnterprise Edition/Standard-J Editionのみ、V10以降は全Editionでサポート)
- jmapコマンド(V10以降でサポート)
- -XX:+PrintClassHistogramオプションの指定(V10以降でサポート)
があります。これらを利用することで、Javaヒープ内に生存するオブジェクトのクラスごとのサイズ情報などが取得できます。
通常時とリーク発生時にこの情報を採取し、その2つを比較し生存するオブジェクトの傾向に違いがないかの確認をしてください。違いがある場合は、それを足がかりにアプリケーションの調査を実施してください。各ツールの詳細は、下記マニュアルを参照してください。
・V10,V9,V8,V7,V6
Interstage Application Server/Interstage Web Server トラブルシューティング集 V10
付録A Javaツール機能なお、上記以外の製品バージョンについては、該当するマニュアル箇所を参照してください。
・V10
Interstage Application Server/Interstage Web Server チューニングガイド
第8章 JDK/JREのチューニング
8.5 チューニング/デバッグ技法
8.5.4 クラスのインスタンス情報出力機能
製品・サービス区分 | Interstage | ||||||
---|---|---|---|---|---|---|---|
製品・サービス情報 |
|
||||||
アンサー種別 | 運用/保守 |