[rules-users] Using KnowledgeAgent with Stateful session
nestabur
nestabur at gmail.com
Thu Aug 27 04:59:56 EDT 2009
Hi James,
The kind of agents that I'm using are not the same as you pointed me ;)
I'm just using the agents provided by drools-core for updating the RuleBase.
Anyway, thanks for your suggestion. the FIPA technology seems to be great
for future projects ;)
Thanks for replying,
Nestor
James Owen-3 wrote:
>
> Greetings:
>
> Nobody seems to be replying and I'm not really "qualified" to reply
> but I might be able to point you in the right direction. Long, long
> ago in a land far, far away we did a really cool project using
> Intelligent Agents and employed most of the technology from FIPA, The
> Foundation for Intelligent Physical Agents; see http://www.fipa.org/
> for more information.
>
> SDG
> James Owen
> Founder October Rules Fest
> Senior Consultant / Architect KBSC
> http://www.kbsc.com
> http://www.OctoberRulesFest.org
> Twitter: OctRulesFest
> Blogs:
> http://JavaRules.blogspot.com [Rulebased Systems Blog]
> http://ORF2009.blogspot.com [October Rules Fest Blog]
> http://exscg.blogspot.com/ [Expert Systems Consulting Group Blog]
>
> "If I have seen a little further it is by standing on the shoulders of
> giants."
> Sir Isaac Newton in a letter to Robert Hooke, 5 Feb 1676
>
> Come to October Rules Fest and stand on the shoulders of the Giants of
> the industry; if only for a week.
>
>
>
> On Aug 26, 2009, at 11:34 AM, 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/Using-KnowledgeAgent-with-Stateful-session-tp25151447p25151447.html
>> Sent from the drools - user mailing list archive at Nabble.com.
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
--
View this message in context: http://www.nabble.com/Using-KnowledgeAgent-with-Stateful-session-tp25151447p25167273.html
Sent from the drools - user mailing list archive at Nabble.com.
More information about the rules-users
mailing list