I've had another look at Forrest's memory issue, this time more
deeply.  I still only understand parts of it, and hope someone can
help fill in the missing pieces.

The problem seems to originate at the LinkRewriteTransformer.  Through
one way or the other, a single XMLFileModule is used.  This
XMLFileModule seems to be used to access XML content.  XMLFileModule
also keeps the documents for further reference, in my opinion for
caching.  That's where most of the memory goes during a "forrest
site."

I've hacked Cocoon's XMLFileModule#getDocumentHelper(Configuration) to
return a new DocumentHelper every time.

    // Disable caching - for testing only
    //this.documents.put(src, new DocumentHelper(reload, cache, src, this));
    return new DocumentHelper(reload, cache, src, this);

After compiling Coccon and replacing cocoon-2.2.0-dev-r230820.jar, I
changed forrest.properties in site-author to "forrest.maxmemory=32m,"
and ran "forrest site," with sucess.  I also compared two memory
snapshots taken during the run, and they look good.

Now, my question is: How do you guys usually proceed if you have
issues like this with Cocoon?

Ron








Reply via email to