Hi Walfgang, Thanks a lot for the pointers. My goal is to try detect a situation when readings about a user is consistent high for the last 30 seconds. The reading comes every 10 seconds. I have tried many different ways and still can not get it working. Here are a list of things that I found not working, I am wondering whether anyone has encountered some of this before or whether there is a known issue related to some of this or whether there is some configuration that I am missing in my environment. Also, what is a good way to find out whether a event has expired or still in working memory? I am stuck, please help.
1) the following rule does not work, according to drools book, this should work. rule "rule1" dialect "mvel" when $user: mUser(status==true) not (Reading ($user.userid== userid, reading<=90) over window :time (30s) from entry-point ReadingStream then 2) the following rules work on its own, (that is if I only include one rule in the .drl file), but when I put both rules in the .drl file, only the acumtest rule works but nothing comes out from "rule1" rule "acumtest" dialect "mvel" when accumulate( Reading( $r:reading) over windiw:time(30s) from entry-point ReadingStream, $sum : sum($r)) then System.out.print ("sum=" +$sum+"\n"); end rule "rule1" dialect "mvel" when $user: mUser(status==true) $hr1 : Reading ($user.userid==$hr1.userid, reading>90) from entry-point ReadingStream $hr2 : Reading ($user.userid==$hr2.userid, reading>90, this after [30s,30s] $hr1) from entry-point ReadingStream not Reading ($user.userid == userid, reading<=90, this after $hr1, this before $hr2) from entry-point ReadingStream then 3) The following rule does not work, but if I comment out the accumulate line in the condition, it works. Somehow, the accumulate function does not work with other rules or making event expired ?? rule "rule1" dialect "mvel" when $user: mUser(status==true) $hr1 : Reading ($user.userid==$hr1.userid, reading>90) from entry-point ReadingStream $hr2 : Reading ($user.userid==$hr2.userid, reading>90, this after [30s,30s] $hr1) from entry-point ReadingStream not Reading ($user.userid == userid, reading<=90, this after $hr1, this before $hr2) from entry-point ReadingStream $test: Number( doubleValue>0 ) from accumulate ( Reading( userid==$user.userid, $r:reading) over window:time(30s) from entry-point ReadingStream, sum($r)) then 4) This does work, but if I uncomment out the $hr4 line, then it does not work anymore rule "rule1" dialect "mvel" when $user: mUser(status==true) $hr1 : Reading ($user.userid==$hr1.userid, reading>90) from entry-point ReadingStream $hr2 : Reading ($user.userid==$hr2.userid, reading>90, this after [10s,10s] $hr1) from entry-point ReadingStream $hr3 : Reading ($user.userid==$hr3.userid, reading>90, this after [10s,10s] $hr2) from entry-point ReadingStream // $hr4 : Reading ($user.userid==$hr4.userid, reading>90, this after [10s,10s] $hr3) from entry-point ReadingStream $test: Number( doubleValue>0 ) from accumulate ( Reading( userid==$user.userid, $r:reading) over window:time(30s) from entry-point ReadingStream, sum($r)) then Thanks a lot! Lin -- View this message in context: http://drools.46999.n3.nabble.com/sliding-window-question-tp4028367p4028540.html Sent from the Drools: User forum mailing list archive at Nabble.com. _______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users