Amit Mhatre wrote:
hi, I was facing similar issues some time back, though I was using a ruleflow and had >20000 fact objects evaluated daily. The problem I was facing was that the running time would get significantly slower day by day. The solution that fixed it was to use a statefulSession and call dispose() on the session once it is done. This made a single-run slower than before, but atleast fixed the problem of exponentially increasing the run-time after several days.
This sounds like a bug. Stateless session should definitely not get repeatedly slower - as it's really just conenience wrapper around a stateful session.

This might not necessarily be the ideal solution, so before you move to a StatefulSession and call session.dispose() after processing, you might want to try to increase the memory for the jvm, if is lower than the size of your facts, this might fix it.
Maybe someone can review the stateless session code and try and find where the memory leak is coming from?

It'd be useful to know if somebody has a better solution to Kris's problem.

Thanks,
- am


On Wed, Nov 26, 2008 at 9:35 AM, Kris Nuttycombe <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    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


      Instance Counts for All Classes (excluding platform)

    104827 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaacf5646f8> of class
    net.jxta.impl.document.LiteXMLElement$charRange
    <http://carrot.gaiam.com:7000/class/0x2aaacf5646f8>
    26806 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaacf5631e8> of class
    net.jxta.impl.document.LiteXMLElement$tagRange
    <http://carrot.gaiam.com:7000/class/0x2aaacf5631e8>
    26733 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaad66ea7f0> of class
    org.eclipse.jdt.internal.compiler.lookup.MethodBinding
    <http://carrot.gaiam.com:7000/class/0x2aaad66ea7f0>
    17366 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaad66e3c88> of class
    [Lorg.eclipse.jdt.internal.compiler.lookup.TypeBinding;
    <http://carrot.gaiam.com:7000/class/0x2aaad66e3c88>
    12412 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaacf032560> of class
    com.sun.enterprise.loader.EJBClassLoader$SentinelInputStream
    <http://carrot.gaiam.com:7000/class/0x2aaacf032560>
    10974 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaad5504450> of class
    org.apache.commons.collections.SequencedHashMap$Entry
    <http://carrot.gaiam.com:7000/class/0x2aaad5504450>
    8683 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaad68c3840> of class
    org.eclipse.jdt.internal.compiler.codegen.CachedIndexEntry
    <http://carrot.gaiam.com:7000/class/0x2aaad68c3840>
    7708 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaacf55e9d8> of class
    net.jxta.impl.document.LiteXMLElement
    <http://carrot.gaiam.com:7000/class/0x2aaacf55e9d8>
    7450 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaad5c4b6c0> of class
    org.hibernate.engine.CollectionKey
    <http://carrot.gaiam.com:7000/class/0x2aaad5c4b6c0>
    6836 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaaced3c3f8> of class
    org.netbeans.modules.schema2beans.AttrProp
    <http://carrot.gaiam.com:7000/class/0x2aaaced3c3f8>
    6271 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaad6642d18> of class
    org.eclipse.jdt.internal.compiler.lookup.FieldBinding
    <http://carrot.gaiam.com:7000/class/0x2aaad6642d18>
    5643 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaad6796890> of class
    org.eclipse.jdt.internal.compiler.ast.MessageSend
    <http://carrot.gaiam.com:7000/class/0x2aaad6796890>
    4928 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaad68a6018> of class
    org.eclipse.jdt.internal.compiler.util.HashtableOfObject
    <http://carrot.gaiam.com:7000/class/0x2aaad68a6018>
    4895 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaad66e3fa8> of class
    [Lorg.eclipse.jdt.internal.compiler.lookup.ReferenceBinding;
    <http://carrot.gaiam.com:7000/class/0x2aaad66e3fa8>
    4546 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaad669f968> of class
    org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding
    <http://carrot.gaiam.com:7000/class/0x2aaad669f968>
    4472 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaad687a0a8> of class
    [Lorg.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding;
    <http://carrot.gaiam.com:7000/class/0x2aaad687a0a8>
    4128 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaad6103ff0> of class
    org.drools.rule.Pattern
    <http://carrot.gaiam.com:7000/class/0x2aaad6103ff0>
    3899 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaacf493c90> of class
    net.jxta.impl.id.UUID.UUID
    <http://carrot.gaiam.com:7000/class/0x2aaacf493c90>
    3867 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaad5c416c0> of class
    org.hibernate.engine.EntityEntry
    <http://carrot.gaiam.com:7000/class/0x2aaad5c416c0>
    3731 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaad5c54d88> of class
    org.hibernate.collection.PersistentSet
    <http://carrot.gaiam.com:7000/class/0x2aaad5c54d88>
    3685 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaad66ca420> of class
    org.eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding
    <http://carrot.gaiam.com:7000/class/0x2aaad66ca420>
    3360 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaad6c12770> of class
    org.drools.reteoo.SingleTupleSinkAdapter
    <http://carrot.gaiam.com:7000/class/0x2aaad6c12770>
    3266 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaacf543dc0> of class
    net.jxta.document.MimeMediaType
    <http://carrot.gaiam.com:7000/class/0x2aaacf543dc0>
    3264 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaad6370288> of class
    org.drools.spi.PatternExtractor
    <http://carrot.gaiam.com:7000/class/0x2aaad6370288>
    3163 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaad5f8b990> of class
    org.apache.axis.encoding.TypeMappingImpl$Pair
    <http://carrot.gaiam.com:7000/class/0x2aaad5f8b990>
    3137 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaad5caad98> of class
    org.hibernate.collection.PersistentBag
    <http://carrot.gaiam.com:7000/class/0x2aaad5caad98>
    2881 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaad681b000> of class
    org.eclipse.jdt.internal.compiler.lookup.MethodScope
    <http://carrot.gaiam.com:7000/class/0x2aaad681b000>
    2688 instances
    <http://carrot.gaiam.com:7000/instances/0x2aaad6161860> of class
    org.drools.base.ClassFieldExtractor
    <http://carrot.gaiam.com:7000/class/0x2aaad6161860>

    _______________________________________________
    rules-users mailing list
    [email protected] <mailto:[email protected]>
    https://lists.jboss.org/mailman/listinfo/rules-users




--
I'm worst at what I do best, and for this gift I feel blessed
-- Kurt Cobain
------------------------------------------------------------------------

_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users

_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to