2009-06-26 27 views
0

OutofMemoryエラーが発生しました。 Eclipse Memory Analyzerを使用して、websphereがダンプした* .phdファイルを分析しました。websphereのメモリリークの原因ValueHandlerPool(疑わしい)

MATのリーク容疑者報告書は、

クラス "com.ibm.oti.vm.BootstrapClassLoader @ 0x466578" でロードされた "com.ibm.rmi.io.ValueHandlerPool" は、占有し、以下の情報を提供します68,734,136(50.25%)バイト。メモリーは、 "com.ibm.oti.vm.BootstrapClassLoader @ 0x466578"によってロードされた "java.util.Hashtable $ Entry []"の1つのインスタンスに蓄積されます。

しかし、このリーク疑惑をアプリケーションのクラスに関連付けることはできません。明らかなリンクはありません。

どのように解析を進めるのですか?

環境:Windowsで動作するjdk 1.4.2でWebsphere 6.1を使用します。 DBはOracle 10gR1です。 アプリケーションはstruts-Ejbアプリケーションです。

答えて

0

Entry[]インスタンスに「ドリルダウン」を試みてください。エントリーの内容を表示する必要があります。

関連性のないメモでは、パッケージcom.ibm.rmi.ioは、これがRMI - EJBに関連する可能性があることを示しています。

0

また、そのハッシュテーブルのメンバーの数を見てください。たとえば、大規模なメンバーが1つあれば、それはもっと深い(おそらくどこかにキャッシュされたデータかもしれない)ことを示します。ハッシュテーブルに何千ものメンバーがいた場合、インスタンスが漏洩している可能性があります。

私は通常、情報がキャッシュされ、処分されていないためにアプリケーションが漏れていることがわかります。リークは起動時に発生するか、アイドル状態で成長するか、負荷の下でのみ発生しますか?

関連する問題