Hi, all,
I'm encountering significant problems with running out of memory when executing a small ruleset (only 16 rules, < 100 facts). I've run jmap on the process (which has previously spawned multiple stateless sessions in parallel) and it looks like Drools, and specifically the Eclipse jdt compiler, is seriously eating up memory. The code calling the is fairly simple; one of the initial facts is an accumulator that I refer to later:
StatelessSession session = ruleBase.newStatelessSession();
session.execute(initialFact, accumulator);
accumulator.doSomething();
where ruleBase is a shared instance, and initialFact is a base fact that is expanded during rules processing. Is there something I should be doing to dispose the session after use to release the objects created by the drools compiler after use? I'm using a shared RuleBase, and I'm wondering whether it is somehow keeping references around. Are these sorts of object counts to be expected?
Thanks,
Kris