My project involves rule creation by customers, business analysts, and 
developers.  We have a base set of rules that fire for every transaction and 
then we fire custom rules within a stateful session.  An issue I've started to 
run into is rules being created that fire endlessly.  I initialize the session 
with an event listener that we use to extract all rules fired for each line 
item of a transaction.  Once the session is initialized and all rules from 
various agenda groups loaded we do a fireall rules.

My questions are:
1) how can I detect I have a runaway rule/rules.
        Is there a method or listener that could detect this for me?  Does 
anyone have a formula they use to do so?  I had thought that I could use my 
event listener that I track the rules with to grab the last X number of rules 
fires and see if rule y gets fired more that z times.  But is there a simpler 
method?

2) once I've detected a runaway rule, how can I gracefully stop drools rule 
execution? I read of the command drools.halt in different posts, but not sure 
if this would be what I'm looking at doing.


Any thoughts are appreciated.

Thank you!

Dean
                StatefulKnowledgeSession ksession = 
buildOutgoingStatefulKnowledgeSession(supportingUDTList);
                // AgendaEventListener agendaListener = new 
HipaaAgendaListener();
                ksession.addEventListener(_ruleLog);

                for (int i = 0; i < _agendaGroups.size(); i++)
                {
                        if (_log.isDebugEnabled()) _log.debug("Focus on Agenda 
Group " + _agendaGroups.get(i));
                        
ksession.getAgenda().getAgendaGroup(_agendaGroups.get(i)).setFocus();
                        // Fire them all
                        try
                        {
                                ksession.fireAllRules();
                        }
                        catch (Exception e)
                        {
                                _log.error("FireAllRules exception. Error=" + 
e.getMessage()); // error
                        }
                }



_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to