In Memory DAO, there is a cleanup strategy, which assigns TTL 10 min. for in-memory instances.
I works for 1 in-memory process, but for 2 or more, there are cases when it doesn't do cleanup.
I figured out that cleaning strategy in bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/ProcessDaoImpl.java holds a static _lastRemoval field, which is updated globally. But if there are >1 in-mem processes, it may cause only one to do cleanup.
A simple patch, which removes static declaration solves problem, because then, cleanup is done separately for each process.