How to track memory leak with ObjectDb.



I suspect some memory leak in my application. ( turning app into OOM very fast )

In fact, some com.objectdb.o.MST objects are retaining a huge % of my heap space.

While watching the dump file ( with Eclipse MAT ), i was not able to inspect carrefully the memory leak issue.
That's is very hard to debug because of obfuscated objectdb code.

Well, objectdb is closed source, ok so ... but, in production case, how can a developper do his debug job correctly with your obfuscated code ?

Can you give me some advices about it or a way to do debug easier with objectdb ?



NB : I can't give you a dump ( too huge and some data are private )


Edit : I observed some deap objects inside objectdb.MST containing some trace of my entities beans.

It seems objectdb keep in memory some database object. My entities manager are closed ( i'm sure ! ).

I have some EntityManagerFactory ( 10, that's normal ) always open ( that's a correct behaviour ) during the lifecycle of the webapp ( close called on tomcat shutdown ).

Might are they keeping MST objects or a kind of internal cache ? I don't know ...


Are you using embedded mode or client-server mode?

Can you post the path from com.objectdb.o.MST to your objects?

ObjectDB Support

Objectdb is running in embedded mode 

I have attached a snapshot of deap object inspection.

The objectdb.PAG object seems to contain a byte[] object ( i observed that it represent some data of my entities beans ).


This shows the page cache. Its size in your example is not far from the default maximum (64MB), and this is normal because 64MB refers to the data, and there is some additional overhead.

ObjectDB Support