Hello,

We have experienced a high memory consumption by ODE in scenarios where 
in-memory processes are invoked with a relatively high frequency. This is 
caused by the org.apache.ode.bpel.memdao.BpelDAOConnectionImpl which keeps the 
created instances of MessageExchangeDAOImpl in memory until they exceed the 
TIME_TO_LIVE (hardcoded constant). This way we have around 400 of these 
unneeded (at least for us ;-) objects hanging in memory occupying around 30 MB 
of memory all the time.

So, I would like to ask if this behavior can be changed such that these objects 
are released as soon as the invoker of the process calls the release() method 
of the MyRoleMessageExchange object. I've done a quick patch to test this and 
at least in my test cases it works without a problem. Is there a reason why 
these objects should be kept in memory after explicitly telling the engine that 
the data can be released?

I can produce a diff for this change (have to port it to the current trunk 
first). I'm not sure that I did it the right way, though, but I can try to 
improve it.

Yours,
Jürgen 
Committer for the Eclipse SMILA project
http://www.eclipse.org/smila

Reply via email to