Streaming mode
by Matteo Cusmai
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]]
14 years, 4 months
5.4.0.Beta2 parse error in consequence /* in string
by Benjamin Bennett
Just passing on I am using the drools 5.4.0Beta2
The following doesn't compile using the mvel dialect .
rule "some rule"
when
fact: Fact()
then
BasicFact fault= new BasicFact( "/*");
end
but
rule "some rule"
when
fact: Fact()
then
BasicFact fault= new BasicFact( "/ *");
end
does compile some how /* is being parsed as an expression I think and not a
string literal.
Thanks,
Ben
14 years, 4 months
limits on number of rules in Guvnor in a package, loaded in knowledge base
by vadlam
are there are any benchmarks around number of rules that can be created in a
package in Guvnor?
we run Guvnor 5.3.0.final in Guvnor on a windows server that has 1.4 GB heap
and we are seeing memory issues when the package has reached around 900
rules or so.
by memory issues, I mean that after the package is built successfully,
memory is not being released back. this behaviour is more obvious at such
high number of rules in package than when we had just around 600 rules or
so.
also, when we try to load the package generated (around 6.4 MB) into the
knowledgesession, it crashes the system .
are there any recommendations on
1. whether we can split up a package into two separate packages, and load
the 2 of them separately one after the other into the session ?
2. amount of memory that guvnor needs to build such high number of rules ?
3. ways to shrink the number of rules as per some best practices while
still meeting requirements ?
--
View this message in context: http://drools.46999.n3.nabble.com/limits-on-number-of-rules-in-Guvnor-in-...
Sent from the Drools: User forum mailing list archive at Nabble.com.
14 years, 4 months
Drools Guvnor 5.0.1 - Memory Usage Tuning
by tdakanalis
Hi,
We're using Drools Guvnor 5.0.1 in a production environment, running on
Tomcat 6. We're experiencing permgen issues, particularly when doing large
imports of rules, archiving, or compilation of rules.
Following permgen exceptions, we increased the permgen to :
-XX:MaxPermSize=2048M -ms3192M -mx3192M.
This sustained us for a while, but our assets are ever growing, and again
we're exceeding the permgen space allocated. Can someone recommend
appropriate settings/configuration in order to reduce the memory/cpu usage?
Assets in Guvnor:
~ 21K rules in 11 decision tables (.xls) in 1 package
Thanks,
Themistoklis Dakanalis
--
View this message in context: http://drools.46999.n3.nabble.com/Drools-Guvnor-5-0-1-Memory-Usage-Tuning...
Sent from the Drools: User forum mailing list archive at Nabble.com.
14 years, 4 months
Variable length sliding windows?
by Lauer, Will C
I'm evaluating the use of Drools Fusion for a new project and have a question about sliding windows that wasn't clear from the documentation. Does the time specification in a sliding window need to be hardcoded in the rule, or can it be derived from something else? Basically, I'm wondering whether I can write a rule that looks something like
when
...
Window ($win : length)
Number (intValue > $someValue) from accumulate (
Sample($len: length, value > $someThreashold) over window:time ($win),
sum($len) )
then
...
end
I know window:time() supports constant values like "10m", but can the window be driven from one of the other facts in the LHS picked up by the LHS of the rule?
Will Lauer
CA Technologies
Sr Software Architect
Tel: +1-713-625-9410
Cell: +1-979-820-2210
Will.Lauer(a)ca.com
14 years, 4 months
Getting java.lang.ClassCastException: - using Drools 5.3
by kashif10
HI.
I am getting following exception.
Exception in thread "main" org.drools.RuntimeDroolsException:
d1.rule.Rule_8f09c0aa350100000080cb1e0dd40f6fEval4Invoker@f6f66af4 :*
java.lang.ClassCastException: d1.rule.facts.Medication cannot be cast to
d1.rule.facts.Procedure*
at org.drools.rule.EvalCondition.isAllowed(EvalCondition.java:119)
at
org.drools.reteoo.EvalConditionNode.assertLeftTuple(EvalConditionNode.java:178)
at
org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:197)
at
org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:72)
at org.drools.reteoo.JoinNode.assertObject(JoinNode.java:161)
at
org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:458)
at
org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:386)
at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:134)
at
org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:59)
at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:215)
at org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:244)
at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:330)
at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:291)
at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:886)
at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:845)
at
org.drools.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:255)
at d1.rule.facts.PatientFacts.loadFactsInSession(PatientFacts.java:6075)
at d1.rule.DREvaluator.startEvaluation(DREvaluator.java:278)
at d1.rule.DREvaluator.main(DREvaluator.java:72)
Caused by: java.lang.ClassCastException: d1.rule.facts.Medication cannot be
cast to d1.rule.facts.Procedure
at
d1.rule.Rule_8f09c0aa350100000080cb1e0dd40f6fEval4Invoker.evaluate(Unknown
Source)
at org.drools.rule.EvalCondition.isAllowed(EvalCondition.java:114)
Following is the rule. I found that due to "or" the Procedure block not
runs.
If I change "or" to "and" than procedure block executed & the error not
produced.
I am not sure what's the problem, I am using Drool 5.3
rule "8f09c0aa350100000080cb1e0dd40f6f"
when #conditions
(
$cepFacts: CEPFacts(id=="D1")
and
eval($cepFacts.initialize())
and
(
(
$DxDate_1 : ( Medication( name equalsIgnoreCase "Ofloxacin" ) )
and
eval($cepFacts.checkRelativeValues($DxDate_1) )
)
or
(
$DxDate_2 : ( Procedure( name equalsIgnoreCase "Pres antibiotic" )
)
and
eval($cepFacts.checkRelativeValues($DxDate_2) )
)
)
and
(
$DxDate_3 : ( Medication( name equalsIgnoreCase "Trazodone" ) )
and
eval($cepFacts.checkTimeIs($DxDate_3)
)
)
then
resultIds.add("8f09c0aa350100000080cb1e0dd40f6f");
end
--
View this message in context: http://drools.46999.n3.nabble.com/Getting-java-lang-ClassCastException-us...
Sent from the Drools: User forum mailing list archive at Nabble.com.
14 years, 4 months