[rules-users] Sliding Windows - Error

Edson Tirelli ed.tirelli at gmail.com
Fri Mar 26 08:40:52 EDT 2010


   Did you tried firing the rules before advancing the time clock?

   This is a very tricky situation because you are working with the edge
limits of the time window. Events are expired from the time window when the
clock advances. You are inserting events every 5 seconds. So, lets say you
insert events on T0, T5, T10, T15, T20, T25... at this point in time the
rule activates, but before it fires, you advance the clock to T30, when T0
is expired from the window, making the condition intValue > 5 false and
deactivating the rule.

    []s
    Edson

2010/3/25 Paul R. <reverselogic at gmail.com>

> Hi,
>
> I'm using an accumulate on a sliding window to count the number of events,
> which occur in a 30 second window;
> the events are inserted every 5 seconds - so with a 30 second window, I
> would expect 6 events to occur.
>
> The rule below never fires, though from the log output, it looks as though
> the condition has matched successfully?
>
> declare Foo
>     @role ( event )
>     @expires ( 60s )
>     @timestamp ( date )
> end
>
> rule "Count Foo"
> when
>     c : Number(intValue > 5) from accumulate
>         $f : Foo()
>             over window:time ( 30s )
>             from entry-point ChannelDataStream,
>         count($f))
> then
>     System.out.println("Count [30s] = " + c);
> end
>
> OBJECT ASSERTED value:com.test.DroolsTest$Foo at c52200 factId: 1
> OBJECT ASSERTED value:com.test.DroolsTest$Foo at 128edf2 factId: 3
> OBJECT ASSERTED value:com.test.DroolsTest$Foo at 1dddba factId: 4
> OBJECT ASSERTED value:com.test.DroolsTest$Foo at c7e8a7 factId: 5
> OBJECT ASSERTED value:com.test.DroolsTest$Foo at 7b4703 factId: 6
> ACTIVATION CREATED rule:Count Foo activationId:Count Foo [2, 0]
> declarations: c=6(2)
> OBJECT ASSERTED value:com.test.DroolsTest$Foo at 1732ed2 factId: 7
> ACTIVATION CANCELLED rule:Count Foo activationId:Count Foo [2, 0]
> declarations: c=6(2)
> ACTIVATION CREATED rule:Count Foo activationId:Count Foo [2, 0]
> declarations: c=6(2)
> OBJECT ASSERTED value:com.test.DroolsTest$Foo at be76c7 factId: 8
> ACTIVATION CANCELLED rule:Count Foo activationId:Count Foo [2, 0]
> declarations: c=6(2)
> ACTIVATION CREATED rule:Count Foo activationId:Count Foo [2, 0]
> declarations: c=6(2)
>
>
> Can anybody explain why this is happening? I've attached a test case, which
> demonstrates the problem.
>
> Thanks in advance.
>
> - Paul
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>


-- 
 Edson Tirelli
 JBoss Drools Core Development
 JBoss by Red Hat @ www.jboss.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20100326/46156e88/attachment.html 


More information about the rules-users mailing list