2009-06-26 78 views
0

我們遇到OutofMemory錯誤。 我使用Eclipse Memory Analyzer分析了* .phd文件,即websphere轉儲。Websphere中存在內存泄漏的原因ValueHandlerPool(懷疑)

墊的泄漏可疑報告,提供以下信息

類「com.ibm.rmi.io.ValueHandlerPool」,由「com.ibm.oti.vm.BootstrapClassLoader @ 0x466578」裝,佔地68,734,136(50.25%)字節。內存在由「com.ibm.oti.vm.BootstrapClassLoader @ 0x466578」加載的「java.util.Hashtable $ Entry []」的一個實例中累積。

但我無法將這個泄漏嫌疑人與任何應用程序的類相關聯。沒有明顯的聯繫。

任何指針如何去分析?

環境:我們在運行在Windows上的jdk 1.4.2上使用Websphere 6.1。數據庫是oracle 10gR1。 該應用程序是一個struts-Ejb應用程序。

回答

0

嘗試向下鑽取Entry[]實例。它應該告訴你什麼是條目。

在一個不相關的說明中,包com.ibm.rmi.io暗示這可能與RMI包含的EJB有關。

0

也看看該散列表的成員數量。例如,如果你有一個大規模的成員,那麼它會表明更深的東西(可能是某處的緩存數據)。如果你在散列表中有成千上萬的成員,它可能表明你正在泄漏實例。

我通常發現泄漏的應用程序是因爲信息被緩存而未被處置。泄漏是在啓動時發生,閒置時增長還是僅在負載下發生?