Drools also use the 13 temporal operators as "hints", so if you have a rule:

$a : A()
$b : B( this after[0,3m] $a )

   Drools will know that A's must be held in memory for 3 minutes while B's will expire immediately. Drools will calculate all possible expiration offsets based on all used temporal operators.

   In case no expiration offset can be calculated for a given event (i.e., no temporal operator was used, no sliding window, no @expires policy, resulting in expiration offset to be infinity), the event is help in memory until explicitly retracted.

   Edson

2010/8/23 Tina Vießmann <tviessmann@stud.hs-bremen.de>
 Hi,

I'm thinking about something. Maybe anyone can tell me.

The Stream Processing Mode of Drools Fusion provides automatic lifecycle
managment. For my understandings this is based on the sliding windows
used inside the rule conditions, the @expires metadata and the @delay
metadata. Am I right so far?
My questions is now: How are Events handled if non of the things listed
above are used?

Let's say I've got rules just using the temporal reasoning operators
inside the rule conditions - no sliding windows at all. I'm also not
using any of the @expires and @delay metadata. Is it correct than that:
 - Drools matches the event coming in and the events existing in the
KnowledgeBase and eventually activates a rule. And after fireAllRules()
is called the resulting actions are performed and all Events are
retracted by the automatic lifecycle managment,  because there are no
hints (like a sliding window) that events will be needed again. (So that
the knowledge base would be empty again?)

Thanks for any explanations. :)
Tina
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users



--
  Edson Tirelli
  JBoss Drools Core Development
  JBoss by Red Hat @ www.jboss.com