[ 
https://issues.apache.org/jira/browse/ODE-395?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jürgen Schumacher updated ODE-395:
----------------------------------

    Attachment: inmemory-mexdao-release.patch

Extends BpelDAOConnection with a releaseMessageExchange(String mexId) method 
that is called by MessageExchangeImpl via ODEProcess in the release method. 
This releaseMessageExchange method is implemented only in the memdao 
implementation of the interface, the jpa and hibernate methods do nothing.

> MessageExchangeDAOs of in-memory processes are kept in memory despite 
> release()
> -------------------------------------------------------------------------------
>
>                 Key: ODE-395
>                 URL: https://issues.apache.org/jira/browse/ODE-395
>             Project: ODE
>          Issue Type: Bug
>          Components: BPEL Runtime
>    Affects Versions: 1.3
>            Reporter: Jürgen Schumacher
>         Attachments: inmemory-mexdao-release.patch
>
>
> 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.
> I've created a patch that removes the MessageExchangeDAO objects from the 
> in-memory BpelDAOConnection as soon as the invoker of the process calls 
> release() on its MyRoleMessageExchange object. It's probably too simplistic, 
> but in my test cases it works without a problem.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to