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
>

Reply via email to