views:

419

answers:

2

We encounter an OutofMemory error. I analyzed the *.phd file, that websphere dumps, using Eclipse Memory Analyzer.

The Leak Suspect Report of MAT, provides the following information

The class "com.ibm.rmi.io.ValueHandlerPool", loaded by "com.ibm.oti.vm.BootstrapClassLoader @ 0x466578", occupies 68,734,136 (50.25%) bytes. The memory is accumulated in one instance of "java.util.Hashtable$Entry[]" loaded by "com.ibm.oti.vm.BootstrapClassLoader @ 0x466578".

But I am not able to related this leak suspect to any of the application's class. There is no apparent link.

Any pointers how to go about the analysis ?

Environment : We use Websphere 6.1 on jdk 1.4.2 running on Windows. The DB is oracle 10gR1. The application is a struts-Ejb application.

A: 

Try 'drilling down' into the Entry[] instance. It should show you what the entries are.

On an unrelated note, the package com.ibm.rmi.io hints that this it might related to RMI - EJBs included.

Robert Munteanu
A: 

Also look at the number of members of that hashtable. For example if you have one massive member then it would indicate something deeper (maybe cached data somewhere). If you had thousands of members in the hashtable it may indicate that you are leaking instances.

I normally find that leaking application is because of information being cached and not disposed of. Does the leak happen at startup, grow while idle or only occur under load?

Michael Ransley