Hi again,
I haven't got any suggestion yet ... I've just wanted to know if this
configuration is possible in drools 5.0.1
Thanks again,
Nestor
nestabur wrote:
Hi Michael,
Attached a eclipse project with 2 sample apps showing my problem.
There are 2 main classes, 1 for CEP and STREAM enviroment and other
without
them.
The extrange behavior is that the engine keeps the Working Memory
correctly
and does the changes correctly in the nonTemporal enviroment
(ksession.insert()) but at the Temporal enviroment
(ksession.getWorkingMemoryEntryPoint("MyEntryPoint").insert(fact)) keeps
the
WM and doesnt change the RuleBase.
Both main classes have 1 parameter setting the drl path:
file:src/main/resources/cepRule.drl
file:src/main/resources/nonCepRule.drl
Try execute both enviroments, do changes inside the DRLs and see if the
kagent updates the KSession correctly.
Thanks,
Nestor
PD: Actually I use both enviroments using the Guvnor PKG repository, in
the
post I wrote the error thrown if I use Guvnor instead DRL files but is the
same problem as the attached project, the ksession doesnt refresh the
KnowledgeBase in my Temporal enviroment.
2009/9/1 Michael Neale <michael.neale(a)gmail.com>
> Hi Nestor - that is a tough one.
>
> I have a suspicion this is related to another issue I have seen with
> deserliasation of rulebases when the MVEL JIT kicks in... (from that
> strack trace it isn't getting the TypeDeclaration back...) - its a
> stretch, but might be related to:
>
https://jira.jboss.org/jira/browse/JBRULES-2253
>
> As there are a few moving parts, if you could create a unit test that
> starts up a agent and shows this behaviour, that would be appreciated
> (confused about the interaction with entry points).
>
> Thanks,
>
> Michael.
>
>
>
> On Mon, Aug 31, 2009 at 8:38 PM, nestabur<nestabur(a)gmail.com> wrote:
> >
> > Any suggestions? I have my project in stand-by due to that problem ...
> >
> > Nestor
> >
> >
> > nestabur wrote:
> >>
> >> Does anyone tried to use the knowledgeAgent with statefulSessions?
> >>
> >> I've tried to configure my rule engine obtaining unexpected behaviour.
> >>
> >> I configure my statefulSession as follows:
> >>
> >> wm = (ReteooStatefulSession) ((KnowledgeBaseImpl) kagent
> >>
> >> .getKnowledgeBase()).ruleBase.newStatefulSession(
> >> (SessionConfiguration) sessionConf,
> env);
> >> ksession = new StatefulKnowledgeSessionImpl(wm,
> >> kagent.getKnowledgeBase());
> >>
> >> And after updating the KnowledgeBase in the agent I update my
> ksession:
> >>
> >> wm.setRuleBase((InternalRuleBase) ((KnowledgeBaseImpl) kagent
> >>
> >> .getKnowledgeBase()).ruleBase);
> >> ksession = new StatefulKnowledgeSessionImpl(wm,
> >> kagent.getKnowledgeBase());
> >>
> >> Without using entry-points this approach works as expected, but using
> them
> >> it fails after the first update throwing the error:
> >>
> >> Exception while processing message: java.lang.NullPointerException
> >> java.lang.NullPointerException
> >> at
> >>
>
org.drools.reteoo.ReteooFactHandleFactory.newFactHandle(ReteooFactHandleFactory.java:54)
> >> at
> >>
>
org.drools.common.AbstractFactHandleFactory.newFactHandle(AbstractFactHandleFactory.java:79)
> >> at
> >>
>
org.drools.common.AbstractFactHandleFactory.newFactHandle(AbstractFactHandleFactory.java:66)
> >> at
> >> org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:109)
> >> at
> >> org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:80)
> >> at
> >> org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:28)
> >>
> >> Browsing the drools core code I found the line that was throwing the
> >> exception and tried to get the same result by implementing:
> >>
> >> if (!((InternalRuleBase) ((KnowledgeBaseImpl)
> >> ksession.getKnowledgeBase()).ruleBase)
> >> .getTypeDeclaration(fact.getClass())
> ==
> >> null)
> >> log.info (((InternalRuleBase) ((KnowledgeBaseImpl)
> >> ksession.getKnowledgeBase()).ruleBase)
> >>
> >>
> .getTypeDeclaration(fact.getClass()).getTimestampExtractor().toString());
> >>
> >> after updating my ksession. The result was the same, again the same
> >> exception thrown but my logger wrote:
> >> 18:01:50,232 INFO [ClassFieldExtractor class=MyPackage.MyFact
> >> field=myTimestampField]
> >>
> >> So I dont know why the core is throwing that exception, is that
> >> implementation correct?, any ideas?
> >>
> >>
> >> Thanks,
> >>
> >> Nestor
> >>
> >
> > --
> > View this message in context:
>
http://www.nabble.com/Drools-Core-Error--tp25188219p25221364.html
> > Sent from the drools - dev mailing list archive at
Nabble.com.
> >
> > _______________________________________________
> > rules-dev mailing list
> > rules-dev(a)lists.jboss.org
> >
https://lists.jboss.org/mailman/listinfo/rules-dev
> >
>
>
>
> --
> Michael D Neale
> home:
www.michaelneale.net
> blog:
michaelneale.blogspot.com
>
> _______________________________________________
> rules-dev mailing list
> rules-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-dev
>
_______________________________________________
rules-dev mailing list
rules-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-dev