Correction: The original post did not include another rule that exists in the stream. The memory leak does not appear unless both rules are active in the stream.
declare MyEvent @role(event) @timestamp(timestamp) end /* If a RAISE is buffered for N seconds, send it out */ rule "forward raise" no-loop duration (3s) when $raise : MyEvent(eventState == EventState.RAISE, $raiseId : eventId) then System.out.println("Forwarding RAISE(" + $raiseId + ")"); delete($raise); end /* When CLEAR, and buffered, clear them both out */ rule "forget it ever happened" no-loop when $clear : MyEvent(eventState == EventState.CLEAR, $clearId : eventId) $raise : MyEvent(eventState == EventState.RAISE, eventId == $clearId) then System.out.println("Forgetting RAISE/CLEAR(" + $clearId + ")"); delete($clear); delete($raise); end On Jul 10, 2014, at 2:50 PM, Kent Anderson <kent.ander...@psware.com> wrote: > The following rule produces a memory leak in Drools 6.1.0-SNAPSHOT: > > (Stream mode) > > declare MyEvent > @role(event) > @timestamp(timestamp) > end > > /* If a RAISE is buffered for N seconds, send it out */ > rule "forward raise" > no-loop > duration (3s) > when > $raise : MyEvent(eventState == EventState.RAISE, $raiseId : eventId) > then > System.out.println("Forwarding RAISE(" + $raiseId + ")"); > delete($raise); > end > > > I see the rule fire as expected, printing out the message 3 seconds after the > event is added into the session. While the event is waiting, I see a > FactCount of 1 in the session. After the rule fires, the fact count goes to > 0. However, using JVisualVm, querying the heap dump shows 1 instance of > MyEvent, referenced by an EventFactHandle and several other Drools objects. > > Is this a bug, or is there a better way to write this rule so Drools’ > internals let go of the object after it is no longer a fact? > > <PastedGraphic-1.png> > > <PastedGraphic-2.png> > _______________________________________________ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users