Orbeon Memory Comsumption - How to reduce

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Orbeon Memory Comsumption - How to reduce

Vedha
This post was updated on .
We are using Orbeon from java code, our forms are really huge. Orbeon is taking huge memory for proceesing it and it keep holding that memory (May be its taking memory for its form sessions and caching).

Since we care calling Orbeon forms from Java code, each request is new so, we like to completely disable all caching and form sessions.

What are the seeting we need to change?

Properties which we already tried for reducing memory consumption,

        <property as="xs:integer" name="oxf.xforms.cache.documents.size" value="1"/>
        <property as="xs:integer" name="oxf.xforms.cache.static-state.size" value="1"/>
Reply | Threaded
Open this post in threaded view
|

Re: Orbeon Memory Comsumption - How to reduce

Erik Bruchez
Administrator
Vedha,

Can you define "huge" forms and memory? How much are you talking about here?

Orbeon has caches, and it is normal to have those caches take a few hundreds of MB by default, or even more depending on the size of the forms.

We don't recommend turning off caching altogether, but the answer is probably more complicated than that.

If you generate form definitions from Java code, and the form definitions are different with every request, then I would say it is a problem, and this should be avoided.

In general, what happens is that the number of distinct form definitions should be limited (even if that number I can go "large", for example a company could have a few hundred separate form definitions). If there's something different with each request, this should be dealt with by changing for example the content of instance data, or loading information from the request. Anything that makes a form definitions constant is a good thing for performance (memory and CPU).

This said, if you can't do the above, then caching of the formal definitions will indeed be counterproductive. So maybe, and again, this is not a good solution, you could try reducing the number of form definitions that can be cached, which by default is 50:

    <property as="xs:integer" name="oxf.xforms.cache.static-state.size" value="50"/>

However, for subsequent interactions of users with forms, caching should still be left enabled. You should probably keep the number of form sessions cached to approximately the number of concurrent users filling out forms. This is also 50 by default.

<property as="xs:integer" name="oxf.xforms.cache.documents.size" value="50"/>

-Erik