I think that Drools doesn'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?
To learn more about fact retractions: attach a WM event listener and log
the org.drools.runtim.rule.PropagationContext.
-W
2012/3/2 Matteo Cusmai <cusmaimatteo(a)gmail.com>
Hi Wolfgang,
i think that have to study more in deed some manuals, because there are
some aspects not very clear, in particular the threads behavior.
For example, i have a class running in a container (thread A) that launch
the session as follow:
......
ksession = kbase.newStatefulKnowledgeSession();
......
Thread t = new Thread(new Runnable() { public void run() {
ksession.fireUntilHalt();}});
t.setName("ExpertSystem");
t.start();
the same thread A insert event into a stream:
.....
entryPoint = ksession.getWorkingMemoryEntryPoint(entryPointName);
.....
entryPoint.insert(obs);
i have a rule some rules such as these:
rule "gas1-event"
salience 10
no-loop
when
$obs : GasObservation( $obsLocation : location, gasname == "UN
1017", value > 60 ) over window:length(1) from entry-point
lowLevelSensorStream
not GasEvent( gasname == "UN 1017", this meets[50s] $obs, location
geoIntersects $obsLocation )
then
insert(new GasEvent( $obs, "UN 1017 value > threshold[60]",
Event.THREAT_HIGH, $obsLocation, $obs.getSensor()));
end
rule "gas1-event-update"
salience 5
no-loop
when
$obs : GasObservation( $obsLocation : location, gasname == "UN
1017", value > 60 ) over window:length(1) from entry-point
lowLevelSensorStream
$event : GasEvent( gasname == "UN 1017", this meets[50s] $obs,
location geoIntersects $obsLocation )
then
Event e = Event.clone($event);
insert( e );
retract($event);
retract($obs);
end
i see that there are some other threads that insert new event and some
others retract them.
How is the thread model?
Thanks a lot,
Matteo.
2012/3/2 Wolfgang Laun <wolfgang.laun(a)gmail.com>
> What's the declare for the Event type? What does rule gas2-event do?
> -W
>
>
> 2012/3/2 Matteo Cusmai <cusmaimatteo(a)gmail.com>
>
>> Hi all,
>> i have a big problem with drools fusion.
>>
>> I insert some new event (pojo object) into Working Memory, but another
>> thread retract it after a few ms.
>>
>> Someone could tell me why?
>>
>> Thanks a lot,
>>
>>
>>
>> [java] gas2-event: 1330701201208
>> [java] INFO [2012-03-02 16:13:21,261] [ExpertSystem]
>> (ExpertVS.java:141) - **** eventRetracted: 1330701201232/30/32/0/100
>> [java] INFO [2012-03-02 16:13:31,224] [Thread-19]
>> (ExpertVS.java:135) - objectInserted
>> org.dfms.model.observation.GasObservation@1a30ef85
>> [java] INFO [2012-03-02 16:13:31,225] [Thread-19]
>> (ExpertVS.java:135) - objectInserted
>> org.dfms.model.observation.GasObservation@2bd1232
>> [java] INFO [2012-03-02 16:13:31,226] [Thread-19]
>> (ExpertVS.java:135) - objectInserted
>> org.dfms.model.observation.GasObservation@4045acb5
>> [java] INFO [2012-03-02 16:13:31,227] [Thread-19]
>> (ExpertVS.java:135) - objectInserted
>> org.dfms.model.observation.TemperatureObservation@1e4dc00a
>> [java] INFO [2012-03-02 16:13:31,227] [Thread-19]
>> (ExpertVS.java:135) - objectInserted
>> org.dfms.model.observation.HumidityObservation@27ae011
>> * [java] INFO [2012-03-02 16:13:31,227] [pool-1-thread-1]
>> (ExpertVS.java:124) - **** eventInserted: 1330701211226/30/32/0/100*
>> [java] INFO [2012-03-02 16:13:31,240] [Thread-19]
>> (ExpertVS.java:135) - objectInserted
>> org.dfms.model.observation.RadiationObservation@510c7d5c
>> [java] INFO [2012-03-02 16:13:31,251] [pool-1-thread-1]
>> (ExpertVS.java:143) - objectRetracted ==>[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
>> [java] [fact
>> 0:0:124232201:1306428912:0:DEFAULT:org.drools.reteoo.InitialFactImpl@4dde85f0
>> ]
>> [java] , originOffset=-1, propagationNumber=220, rule=[Rule
>> name=gas2-event, agendaGroup=MAIN, salience=10, no-loop=true], type=1]]
>> [java] gas2-event: 1330701211203
>> * [java] INFO [2012-03-02 16:13:31,261] [ExpertSystem]
>> (ExpertVS.java:141) - **** eventRetracted: 1330701211226/30/32/0/100
>> *
>> [java] INFO [2012-03-02 16:13:31,262] [ExpertSystem]
>> (ExpertVS.java:143) - objectRetracted ==>[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]]
>> [java] INFO [2012-03-02 16:13:31,262] [ExpertSystem]
>> (ExpertVS.java:143) - objectRetracted ==>[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]]
>> [java] INFO [2012-03-02 16:13:31,263] [ExpertSystem]
>> (ExpertVS.java:143) - objectRetracted ==>[ObjectRetractedEventImpl:
>> getFactHandle()=1:103:2014876984:2014876984: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:2014876984:2014876984:103:lowLevelSensorStream,
>> leftTuple=null, originOffset=-1, propagationNumber=228, rule=null, type=1]]
>> [java] INFO [2012-03-02 16:13:41,228] [ExpertSystem]
>> (ExpertVS.java:143) - objectRetracted ==>[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]]
>> [java] INFO [2012-03-02 16:13:41,230] [ExpertSystem]
>> (ExpertVS.java:143) - objectRetracted ==>[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]]
>>
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
>
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users