On Mon, Oct 20, 2008 at 6:44 AM, <[EMAIL PROTECTED]> wrote: > 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? >
They shouldn't, the release is meant to destroy them so if they stick around, we have a bug :) The TIME_TO_LIVE is just there to make sure that we won't plainly leak memory if release doesn't work properly. > > 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. That would be perfect. I can comment on it if I see any problem and we can increment on that. Thanks! Matthieu > > > Yours, > Jürgen > Committer for the Eclipse SMILA project > http://www.eclipse.org/smila >
