This is probably something that we are doing incorrectly, but it has me 
scratching my head.

We are running Oak embedded in a web application.  We construct a repository at 
startup using fairly standard construction:


DocumentNodeStore ns= new 
DocumentMK.Builder().setMongoDB(createMongoDB()).getNodeStore();


Oak oak = new Oak(ns);


LuceneIndexProvider provider = new LuceneIndexProvider();

Jcr jcr = new Jcr(oak).with((QueryIndexProvider) provider).with((Observer) 
provider)

.with(new LuceneIndexEditorProvider()).withAsyncIndexing();

repository = jcr.createRepository();

Looking at the JVM memory using JVisualVM, we see that memory usage increases 
over time.  Using heap dumps, we've determined that oak object is constantly 
growing in terms of  memory footprint.

Obviously the object will never be garbage collected, but I'm trying to track 
down why it is growing over time.  Our interactions with Oak all follow the 
same pattern:
Session session = repository.login(credentials, null);
... do some work
session.logout();

Any thoughts on possible reasons for Oak to keep increasing in size?

Thanks,

Jim

Reply via email to