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@c52200 factId: 1
OBJECT ASSERTED value:com.test.DroolsTest$Foo@128edf2 factId: 3
OBJECT ASSERTED value:com.test.DroolsTest$Foo@1dddba factId: 4
OBJECT ASSERTED value:com.test.DroolsTest$Foo@c7e8a7 factId: 5
OBJECT ASSERTED value:com.test.DroolsTest$Foo@7b4703 factId: 6
ACTIVATION CREATED rule:Count Foo activationId:Count Foo [2, 0]
declarations: c=6(2)
OBJECT ASSERTED value:com.test.DroolsTest$Foo@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@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