[rules-users] Temporal rule doesn't fire in STREAM mode

Melton, Michael P CTR SPAWARSYSCEN-ATLANTIC, 01200 michael.melton.ctr at navy.mil
Mon Jul 25 08:52:34 EDT 2011


Hello, 
I have been fighting with this issue for several days, and I just stumbled upon the reason why, but that raised another question for me. 
I have a rule checking that two events of the same type do not occur in succession without an event of a specific other type in between them: 
# If two WorkerInWorkEvents exist for a worker, there must be a WorkerOutOfWorkEvent between them 
rule "ERROR: Consecutive WorkerInWorkEvents" 
        when 
                $w1 : WorkerInWorkEvent( $workerId : workerId ) 
                $w2 : WorkerInWorkEvent( workerId == $workerId, this after $w1 ) 
                not WorkerOutOfWorkEvent( workerId == $workerId, this after $w1, this before $w2 ) 
        then 
                errors.add("Two WorkerInWorkEvents without a WorkerOutOfWorkEvent in between (" + $w2 + ")"); 
                retract( $w2 ); 
end 
I could see via the log that this file was activating, however it was never firing.  The retraction of $w2 should have cancelled other rules' activations, but it wasn't doing so because this rule was never firing.  I just discovered a thread (http://drools.46999.n3.nabble.com/Drools-fusion-and-absence-of-events-td51125.html) which finally explained to me the reason why:  I was running in STREAM mode, and the engine was waiting to see if a WorkerOutOfWorkEvent timestamped between the two WorkerInWorkEvents was going to show up.  When I switched to CLOUD mode, the rule fired as expected and my other activations were cancelled as I expected. 
Now, my new question is:  Since I have not specified any intervals, how long will the engine wait for the WorkerOutOfWorkEvent to show up?  Forever? 
Thanks in advance for any light you can shed on this. 
Mike
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20110725/0fcdec07/attachment.html 


More information about the rules-users mailing list