[rules-users] Re: Load working memory with "old/existsing" facts

Mark Proctor mproctor at codehaus.org
Thu Jul 26 16:14:50 EDT 2007


hmm that looks like a bug, I'll look into it. We do have 
unit/integration tests for this, so I'd be interested to know what you 
are doing to kick this off. Are you just adding a clear agenda after the 
fireAllRules() in that example?

Mark
tom at bergstein-soraic.de wrote:
>
> Thank you for the hint. I've tried to use clearAgenda() but I've 
> following error:
>
>  
>
> Exception in thread "main" _java.lang.NullPointerException_
>
> at org.drools.util.LinkedList.remove(_LinkedList.java:97_)
>
> at 
> org.drools.common.DefaultAgenda.removeScheduleItem(_DefaultAgenda.java:150_) 
>
>
> at 
> org.drools.common.ScheduledAgendaItem.remove(_ScheduledAgendaItem.java:159_) 
>
>
> at org.drools.common.DefaultAgenda.clearAgenda(_DefaultAgenda.java:362_)
>
> at 
> org.drools.common.AbstractWorkingMemory.clearAgenda(_AbstractWorkingMemory.java:363_) 
>
>
> at 
> org.drools.examples.TroubleTicketExample.main(_TroubleTicketExample.java:58_)
>
>
>   
>
> Is there anything special to consider when using clearAgenda()?
>
>  
>
>  
>
>  
>
> ----- Edison wrote:  
>
>  Technically it is possible and supported to serialize working 
> memories. Although, we did faced problems with large serializations 
> due to a known recursion issue in JDK. There is a JIRA for that, but I 
> don't have the link right now.
>
>     Now, if you want to reassert objects without firing rules, maybe 
> what you can do is call WorkingMemory.clearAgenda() after reasserting 
> the ob! jects. Not sure if that will give you the results you expect.
>
>     []s
>     Edson
>
> 2007/7/25, Arjun Dhar <dhar_ar at yahoo.com <mailto:dhar_ar at yahoo.com>>:
>
>     bergstein-soraic.de
>     </xml/deref?link=http%3A%2F%2Fbergstein-soraic.de>> writes:
>
>     >
>     >
>     > I've a use case that is similar to the TroubleTicketExample that
>     is part of
>     the drools examples.
>     > In this examples new tickets are inserted via
>     workingMemory.assertObject
>     (ticket). However, tickets are usually managed and stored in a
>     ticketing system
>     (Remedy, Peregrine, etc). When I stop the drools engine, I assume
>     that the
>     state of the working memory is lost. When I start the engine
>     again, I'd like to
>     load the working memory with the tickets that are stored in the
>     tic! keting
>     system, but I don't want to fire all rules, since I'd to avoid
>     that rules are
>     executed again (e.g., rule "Escalate" -> send a e-mail), which
>     have been
>     already executed before the drools engine has
>     >   been stopped. Existing tickets in the ticketing system are
>     important facts
>     for the rules!
>     >   and therefore the need to be loaded into the morking memory.
>     >
>     >
>     > Is there a way to build up the working memory with initial facts?
>     > Can I persist the state of the working memory and load it later
>     again?
>     >
>     >
>     > Many thanks in advance,
>     > Tom
>     >
>
>     Hey my two bits,
>
>     Assuming I dont know much about StatefulSessions holding objects I
>     wanted to
>     check with you, is this safe? I'm not sure over a period of time
>     if your
>     objects would be released with a StatefulSession/WorkingMemory,
>     would recommend
>     you 'soak test' (test over a period of time with consistent l oad)
>
>     But here is the possibility:
>     Well the interface WorkinfgMemory -- extends --> Eventmanager
>     which extends
>     Serializable.
>
>     You could try serializing the object, or query your WorkingMemory
>     for its state
>     and save it to a database. Am assuming you are using
>     StatefulSession so you
>     will have access to WorkingMemory.
>
>     Conceptually I just think its worng to use a Rule Engine to
>     persist state over
>     a such a long period of time. Any expert opinion?
>
>     regards,
>     Arjun
>
>     _______________________________________________
>     rules-users mailing list
>     rules-users at lists.jboss.org <mailto:rules-users at lists.jboss.org>
>     https://lists.jboss.org/mailman/listinfo/rules-users
>     </xml/deref?link=https%3A%2F%2Flists.jboss.org%2Fmailman%2Flistinfo%2Frules-users>
>
>
>
>
> -- 
>   Edson Tirelli
>   Soft! ware Engineer - JBoss Rules Core Developer
>   Office: +55 11 3529-6000
>   Mobile: +55 11 9287-5646
>   JBoss, a division of Red Hat @ www.jboss.com 
> </xml/deref?link=http%3A%2F%2Fwww.jboss.com>
> ------------------------------------------------------------------------
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>   

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20070726/f088eb18/attachment.html 


More information about the rules-users mailing list