ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <Juergen.Schumac...@empolis.com>
Subject Memory consumption of in-memory processes
Date Mon, 10 Dec 2007 13:57:29 GMT

I am new to BPEL and ODE, therefore: Sorry, if I abuse ODE 
for something it is not designed for.

I have done some performance/throughput tests with ODE
and ran into some memory problems when deploying my
process for in-memory execution. The problem is that
org.apache.ode.bpel.memdao.BpelDAOConnectionImpl keeps
already processed MessageExchangeDAOImpl objects in memory
for too long. In the cleanupDeadWood() method, they are removed 
only if they are older than 10 minutes and this method is
called only after the successful creation of a new MExDAO,
so within a short time my experiment ends with OutOfMemory.
If I just change the TIME_TO_LIVE constant to a value of
3000 or 10000 ms, the test completes without problems (and 
with great performance - much better than I expected, actually :-)
Currently I use the code from the SVN trunk.

So I have two questions:
- Would it be possible to remove these MExDAO objects from memory
  immediately after they have been processed? Or at least after the
  process instance that created them, is terminated? I had a look
  at the code, but I found no immediate way to do it. Or would this
  be in opposite to some principals of BPEL processing? I noticed that
  these objects are also not removed from the persistence database, if
  the process is not executed in-memory, so the database grows quite
  large, too. How should they be removed from this database?
- If not, would it be possible to make the TIME_TO_LIVE configurable?

Thanks in advance!
Juergen Schumacher
empolis GmbH | Europaallee 10 | 67657 Kaiserslautern | Germany

View raw message