I think that Drools doesn&#39;t use any threads except for timers and for the Knowledge Agent. So you should check where these other threads come from. Code in ExpertVS.java appears to be running in several threads?<div><br>
</div><div>To learn more about fact retractions: attach a WM event listener and log the org.drools.runtim.rule.PropagationContext.</div><div><br></div><div>-W</div><div><br><br><div class="gmail_quote">2012/3/2 Matteo Cusmai <span dir="ltr">&lt;<a href="mailto:cusmaimatteo@gmail.com">cusmaimatteo@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Wolfgang,<br>i think that have to study more in deed some manuals, because there are some aspects not very clear, in particular the  threads behavior.<br>
For example, i have a class running in a container (thread A) that launch the session as follow:<br>
......<br>        ksession = kbase.newStatefulKnowledgeSession();<br>......<br>        Thread t = new Thread(new Runnable() { public void run() { ksession.fireUntilHalt();}});<br>        t.setName(&quot;ExpertSystem&quot;);<br>

        t.start();<br><br>the same thread A insert event into a stream:<br>.....<br>        entryPoint = ksession.getWorkingMemoryEntryPoint(entryPointName);<br>.....<br>        entryPoint.insert(obs);<br><br>i have a rule some rules such as these:<br>

<br>rule &quot;gas1-event&quot;<br>    salience 10<br>    no-loop<br>    when<br>        $obs    : GasObservation( $obsLocation : location, gasname == &quot;UN 1017&quot;, value &gt; 60 ) over window:length(1) from entry-point lowLevelSensorStream<br>

        not GasEvent( gasname == &quot;UN 1017&quot;, this meets[50s] $obs, location geoIntersects $obsLocation )<br>    then<br>        insert(new GasEvent( $obs, &quot;UN 1017 value &gt; threshold[60]&quot;, Event.THREAT_HIGH, $obsLocation, $obs.getSensor()));<br>

end<br>rule &quot;gas1-event-update&quot;<br>    salience 5<br>    no-loop<br>    when<br>        $obs    : GasObservation( $obsLocation : location, gasname == &quot;UN 1017&quot;, value &gt; 60 ) over window:length(1) from entry-point lowLevelSensorStream<br>

        $event     : GasEvent( gasname == &quot;UN 1017&quot;, this meets[50s] $obs, location geoIntersects $obsLocation )<br>    then<br>        Event e = Event.clone($event);<br>        insert( e );<br>        retract($event);<br>

        retract($obs);<br>end<br><br>i see that there are some other threads that insert new event and some others retract them.<br>How is the thread model?<br><br>Thanks a lot,<br>Matteo.<br><br><div class="gmail_quote">

2012/3/2 Wolfgang Laun <span dir="ltr">&lt;<a href="mailto:wolfgang.laun@gmail.com" target="_blank">wolfgang.laun@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">What&#39;s the declare for the Event type? What does rule gas2-event do?<br>-W<br><br><br><div class="gmail_quote">2012/3/2 Matteo Cusmai <span dir="ltr">&lt;<a href="mailto:cusmaimatteo@gmail.com" target="_blank">cusmaimatteo@gmail.com</a>&gt;</span><br>



<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>Hi all,<br>i have a big problem with drools fusion.<br><br>I insert some new event (pojo object) into Working Memory, but another thread retract it after a few ms.<br>



<br>Someone could tell me why?<br><br>Thanks a lot,<br>
<br><br><br>[java] gas2-event: 1330701201208<br>     [java] INFO  [2012-03-02 16:13:21,261] [ExpertSystem] (ExpertVS.java:141)     - **** eventRetracted: 1330701201232/30/32/0/100<br>     [java] INFO  [2012-03-02 16:13:31,224] [Thread-19] (ExpertVS.java:135)     - objectInserted org.dfms.model.observation.GasObservation@1a30ef85<br>




     [java] INFO  [2012-03-02 16:13:31,225] [Thread-19] (ExpertVS.java:135)     - objectInserted org.dfms.model.observation.GasObservation@2bd1232<br>     [java] INFO  [2012-03-02 16:13:31,226] [Thread-19] (ExpertVS.java:135)     - objectInserted org.dfms.model.observation.GasObservation@4045acb5<br>




     [java] INFO  [2012-03-02 16:13:31,227] [Thread-19] (ExpertVS.java:135)     - objectInserted org.dfms.model.observation.TemperatureObservation@1e4dc00a<br>     [java] INFO  [2012-03-02 16:13:31,227] [Thread-19] (ExpertVS.java:135)     - objectInserted org.dfms.model.observation.HumidityObservation@27ae011<br>




<b><span style="color:rgb(255,0,0)">     [java] INFO  [2012-03-02 16:13:31,227] [pool-1-thread-1] (ExpertVS.java:124)     - **** eventInserted: 1330701211226/30/32/0/100</span></b><br>     [java] INFO  [2012-03-02 16:13:31,240] [Thread-19] (ExpertVS.java:135)     - objectInserted org.dfms.model.observation.RadiationObservation@510c7d5c<br>




     [java] INFO  [2012-03-02 16:13:31,251] [pool-1-thread-1] (ExpertVS.java:143)     - objectRetracted ==&gt;[ObjectRetractedEventImpl: getFactHandle()=1:105:45945394:45945394:105:lowLevelSensorStream, getOldObject()=org.dfms.model.observation.GasObservation@2bd1232, getKnowledgeRuntime()=org.drools.impl.StatefulKnowledgeSessionImpl@7224e11c, getPropagationContext()=PropagationContextImpl [activeActivations=0, dormantActivations=0, entryPoint=EntryPoint::lowLevelSensorStream, factHandle=1:105:45945394:45945394:105:lowLevelSensorStream, leftTuple=1:105:45945394:45945394:105:lowLevelSensorStream<br>




     [java] [fact 0:0:124232201:1306428912:0:DEFAULT:org.drools.reteoo.InitialFactImpl@4dde85f0]<br>     [java] , originOffset=-1, propagationNumber=220, rule=[Rule name=gas2-event, agendaGroup=MAIN, salience=10, no-loop=true], type=1]]<br>




     [java] gas2-event: 1330701211203<br><b style="color:rgb(255,0,0)">     [java] INFO  [2012-03-02 16:13:31,261] [ExpertSystem] (ExpertVS.java:141)     - **** eventRetracted: 1330701211226/30/32/0/100</b><br>     [java] INFO  [2012-03-02 16:13:31,262] [ExpertSystem] (ExpertVS.java:143)     - objectRetracted ==&gt;[ObjectRetractedEventImpl: getFactHandle()=1:101:1512664237:1512664237:101:lowLevelSensorStream, getOldObject()=org.dfms.model.observation.TemperatureObservation@5a296cad, getKnowledgeRuntime()=org.drools.impl.StatefulKnowledgeSessionImpl@7224e11c, getPropagationContext()=PropagationContextImpl [activeActivations=0, dormantActivations=0, entryPoint=EntryPoint::lowLevelSensorStream, factHandle=1:101:1512664237:1512664237:101:lowLevelSensorStream, leftTuple=null, originOffset=-1, propagationNumber=224, rule=null, type=1]]<br>




     [java] INFO  [2012-03-02 16:13:31,262] [ExpertSystem] (ExpertVS.java:143)     - objectRetracted ==&gt;[ObjectRetractedEventImpl: getFactHandle()=1:102:1436418073:1436418073:102:lowLevelSensorStream, getOldObject()=org.dfms.model.observation.HumidityObservation@559e0019, getKnowledgeRuntime()=org.drools.impl.StatefulKnowledgeSessionImpl@7224e11c, getPropagationContext()=PropagationContextImpl [activeActivations=0, dormantActivations=0, entryPoint=EntryPoint::lowLevelSensorStream, factHandle=1:102:1436418073:1436418073:102:lowLevelSensorStream, leftTuple=null, originOffset=-1, propagationNumber=226, rule=null, type=1]]<br>




     [java] INFO  [2012-03-02 16:13:31,263] [ExpertSystem] (ExpertVS.java:143)     - objectRetracted ==&gt;[ObjectRetractedEventImpl: getFactHandle()=1:103:<a href="tel:2014876984" value="+12014876984" target="_blank">2014876984</a>:<a href="tel:2014876984" value="+12014876984" target="_blank">2014876984</a>:103:lowLevelSensorStream, getOldObject()=org.dfms.model.observation.RadiationObservation@78189538, getKnowledgeRuntime()=org.drools.impl.StatefulKnowledgeSessionImpl@7224e11c, getPropagationContext()=PropagationContextImpl [activeActivations=0, dormantActivations=0, entryPoint=EntryPoint::lowLevelSensorStream, factHandle=1:103:<a href="tel:2014876984" value="+12014876984" target="_blank">2014876984</a>:<a href="tel:2014876984" value="+12014876984" target="_blank">2014876984</a>:103:lowLevelSensorStream, leftTuple=null, originOffset=-1, propagationNumber=228, rule=null, type=1]]<br>




     [java] INFO  [2012-03-02 16:13:41,228] [ExpertSystem] (ExpertVS.java:143)     - objectRetracted ==&gt;[ObjectRetractedEventImpl: getFactHandle()=1:108:508411914:508411914:108:lowLevelSensorStream, getOldObject()=org.dfms.model.observation.TemperatureObservation@1e4dc00a, getKnowledgeRuntime()=org.drools.impl.StatefulKnowledgeSessionImpl@7224e11c, getPropagationContext()=PropagationContextImpl [activeActivations=0, dormantActivations=0, entryPoint=EntryPoint::lowLevelSensorStream, factHandle=1:108:508411914:508411914:108:lowLevelSensorStream, leftTuple=null, originOffset=-1, propagationNumber=230, rule=null, type=1]]<br>




     [java] INFO  [2012-03-02 16:13:41,230] [ExpertSystem] (ExpertVS.java:143)     - objectRetracted ==&gt;[ObjectRetractedEventImpl: getFactHandle()=1:109:41607185:41607185:109:lowLevelSensorStream, getOldObject()=org.dfms.model.observation.HumidityObservation@27ae011, getKnowledgeRuntime()=org.drools.impl.StatefulKnowledgeSessionImpl@7224e11c, getPropagationContext()=PropagationContextImpl [activeActivations=0, dormantActivations=0, entryPoint=EntryPoint::lowLevelSensorStream, factHandle=1:109:41607185:41607185:109:lowLevelSensorStream, leftTuple=null, originOffset=-1, propagationNumber=232, rule=null, type=1]]<br>




<br>
<br></div></div>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br></blockquote></div><br>
<br>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br></blockquote></div><br>
<br>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br></blockquote></div><br></div>