In STREAM mode, the clock may have to have advanced beyond the latest fact so<br>that certain conditions can be evaluated safely.<br><br>For instance, another event could still be inserted at the same millisecond. If<br>a condition such as <br>
not Event( this coincides $event )<br>were evaluated prematurely, it would produce an incorrect result.<br><br>Is this the explanation?<br>-W<br><br><div class="gmail_quote">On 4 November 2010 10:09, Wolfgang Laun <span dir="ltr"><<a href="mailto:wolfgang.laun@gmail.com">wolfgang.laun@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">The .drl:<br><br>declare Leave<br> @role( event )<br> @timestamp( timestamp )<br>end<br><br>
rule "XXX Leave not !="<br>when<br> $leave: Leave()<br> not Leave( this != $leave )<br>then<br> System.out.println( "XXX only one Leave - not !=" );<br>
end<br><br>rule "YYY Leave not after"<br>when<br> $leave: Leave()<br> not Leave( this before $leave )<br>then<br> System.out.println( "YYY only one Leave - not before" );<br>end<br><br><br>A) The pseudo-clock is advanced according to the timestamp; then<br>
exactly one event Leave is inserted; then fireAllRules() is called.<br><br>1) Running in CLOUD mode, both rules fire.<br>2) But running in STREAM mode, ONLY rule XXX fires.<br><br>B) Like A, but the session clock is advanced by (at least) 1ms<br>
prior to calling fireAllRules().<br><br>3) Either mode, both rules fire.<br><br>I think that A2) is incorrect; why should passing another msec change the logic?<br><br>JIRA?<br><font color="#888888"><br>Wolfgang<br><br><br>
<br>
</font></blockquote></div><br>