[rules-users] Drools error log msg?

Markus Schneider markus.schneider73 at gmail.com
Tue Feb 25 08:31:58 EST 2014


The reason why I've activated the logging was that some rules are not fired
after inserting a special
amount of facts - in my case exactly 20.

Some more details here:
I work on an Event Correlation & Analysis OSS solution that's based on
Grails & Drools 5.5.0-Final.
I'm using a stateful knowledge session and only call dispose() when the app
is stopped - but all facts
are retracted. The functional testing works fine but as I've mentioned it
before when I run the integration
testing it fails, because rules are not fired ('ClearAlertRule' is not
fired) when I insert more than 20 facts.
I saw the errors in the drools log but I didn't know if they were relevant
for my problem here.
 I've attached two picts which document the right and the wrong behavior of
the rule processing
 - also I've listed the rules of my rulebase.

Has anybody an idea?

Cheers,

-markus


//------------------------------
rule 'UpdateAlertRule'
//------------------------------
   dialect  'mvel'
   salience 900
   no-loop
   when
     _event : Event(eventClass == "Event",
        _name:catalog['name'],
                 _category:catalog['category'],
                 _severity:catalog['severity'],
                 _state:catalog['state'],
                 _source:catalog['source'],
                 _subSource:catalog['subSource'],
                 _origin:catalog['origin'],
                 _subOrigin:catalog['subOrigin'],
                 _owner:catalog['owner'],
                 _description:catalog['description'],
                 _selector:("from Alert where " +
                    "name='" + catalog['name'] + "' " +
                    "and severity='" + catalog['severity'] + "' " +
                    "and not state='Closed'"
                 )
              )
     eval(isDuplicate(_event,"UpdateAlertRule",_selector) == true)
   then
System.out.println("UpdateAlertRule is processed.")
     EntityBuilder entityBuilder = new EntityBuilder();
     entityBuilder.addProperty("modifiedBy","UpdateAlertRule");
entityBuilder.addProperty("counter",1);
     AlertHandler alertHandler = new
AlertHandler(entityBuilder.getProperties(),_selector);
     alertHandler.update();
     RuleLogHandler ruleLogHandler = new RuleLogHandler();
ruleLogHandler.create("UpdateAlertRule",_name);
   end

//------------------------------
rule 'ClearAlertRule'
//------------------------------
   dialect  'mvel'
   salience 800
   no-loop
   when
     _event : Event(eventClass == "Event",
        _name:catalog['name'] contains 'Info',
                 _category:catalog['category'],
                 _severity:catalog['severity'] == 'Harmless',
                 _state:catalog['state'],
                 _source:catalog['source'],
                 _subSource:catalog['subSource'],
                 _origin:catalog['origin'],
                 _subOrigin:catalog['subOrigin'],
                 _owner:catalog['owner'],
                 _description:catalog['description'],
                 _selector:("from Alert where " +
                    "name like '%Error'" +
                    "and not severity='Harmless'" +
                    "and not state='Closed'"
                 )
              )
   then
System.out.println("ClearAlertRule is processed.")
     EntityBuilder entityBuilder = new EntityBuilder();
     entityBuilder.addProperty("modifiedBy","ClearAlertRule")
entityBuilder.addProperty("state","Closed");
     AlertHandler alertHandler = new
AlertHandler(entityBuilder.getProperties(),_selector);
     alertHandler.update();
     RuleLogHandler ruleLogHandler = new RuleLogHandler();
ruleLogHandler.create("ClearAlertRule",_name);
   end

//------------------------------
rule 'CreateAlertRule'
//------------------------------
   dialect  'mvel'
   salience 700
   no-loop
   when
     _event : Event(eventClass == "Event",
        _name:catalog['name'],
                 _category:catalog['category'],
                 _severity:catalog['severity'],
                 _priority:catalog['priority'],
                 _state:catalog['state'],
                 _source:catalog['source'],
                 _subSource:catalog['subSource'],
                 _origin:catalog['origin'],
                 _subOrigin:catalog['subOrigin'],
                 _owner:catalog['owner'],
                 _description:catalog['description'],
                 _selector:("from Alert where " +
                    "name='" + catalog['name'] + "' " +
                    "and severity='" + catalog['severity'] + "' " +
                    "and not state='Closed'"
                 )
              )
     eval(isDuplicate(_event,"CreateAlertRule",_selector) == false)
   then
System.out.println("CreateAlertRule is processed.");
EntityBuilder entityBuilder = new EntityBuilder();
     entityBuilder.addProperty("modifiedBy","CreateAlertRule");
     entityBuilder.addProperty("name",_name);
     entityBuilder.addProperty("category",_category);
     entityBuilder.addProperty("severity",_severity);
     entityBuilder.addProperty("priority",_priority);
     entityBuilder.addProperty("state",_state);
     entityBuilder.addProperty("source",_source);
     entityBuilder.addProperty("subSource",_subSource);
     entityBuilder.addProperty("origin",_origin);
     entityBuilder.addProperty("subOrigin",_subOrigin);
     entityBuilder.addProperty("owner",_owner);
     entityBuilder.addProperty("description",_description);
     AlertHandler alertHandler = new
AlertHandler(entityBuilder.getProperties(),_selector);
    alertHandler.create();
    RuleLogHandler ruleLogHandler = new RuleLogHandler();
ruleLogHandler.create("CreateAlertRule",_name);
   end

//------------------------------
rule 'EventRetractionRule'
//------------------------------
   dialect  'mvel'
   salience 1
   no-loop
   when
     _event : Event(eventClass == "Event",

        _name:catalog['name'] not contains 'Timer'


              )
   then
System.out.println("EventRetractionRule is processed.");
retract(_event);
     RuleLogHandler ruleLogHandler = new RuleLogHandler();
ruleLogHandler.create("EventRetractionRule",_name);
   end



2014-02-25 14:00 GMT+01:00 Markus Schneider <markus.schneider73 at gmail.com>:

> Hi Davide,
>
> thank you for the fast response. I've defined an DebugAgendaEventListener
> as it's described here:
> Drools Docu 5.5.0-Final/Section 7.2/HelloWorld example.
>
> http://docs.jboss.org/drools/release/5.5.0.Final/drools-expert-docs/html/index.html
>
> Where can I find any docu about the config of the DebugAgendaEventListener?
>
> Cheers,
>
> -markus
>
>
>
>
> 2014-02-25 12:59 GMT+01:00 Davide Sottara <dsotty at gmail.com>:
>
>  You likely have configured a DebugAgendaEventListener, which logs agenda
>> events (rules activated, fired, etc..)
>> on the standard error rather than the standard output. If you want a
>> different behavior, remove the listener
>> and implement one of your own.
>> These are not errors anyway.
>> Davide
>>
>>
>> On 02/25/2014 09:40 AM, Markus Schneider wrote:
>>
>>  Hi list,
>>
>>  I see the following error msg in my drools log but I don't know how to
>> interpret this.
>>  Do I have a serious problem here?
>>
>>  Has anybody a clue?
>>
>>  Thanks in advance.
>>
>>  Cheers,
>>
>>  -markus
>>
>> | Error ==>[AfterActivationFiredEvent: getActivation()=[Activation
>> rule=UpdateAlertRule, act#=37, salience=900, tuple=[fact
>> 0:19:184363445:184363445:19:DEFAULT:rapideca.plugins.rbm.entity.Event : 19]
>> ],
>> getKnowledgeRuntime()=org.drools.impl.StatefulKnowledgeSessionImpl at 6dd4ab87
>> ]
>> | Error ==>[BeforeActivationFiredEvent:  getActivation()=[Activation
>> rule=EventRetractionRule, act#=36, salience=1, tuple=[fact
>> 0:19:184363445:184363445:19:DEFAULT:rapideca.plugins.rbm.entity.Event : 19]
>> ],
>> getKnowledgeRuntime()=org.drools.impl.StatefulKnowledgeSessionImpl at 6dd4ab87
>> ]
>> EventRetractionRule is processed.
>> | Error ==>[ObjectRetractedEventImpl: getFactHandle()=[fact
>> 0:19:184363445:184363445:19:DEFAULT:rapideca.plugins.rbm.entity.Event :
>> 19], getOldObject()=rapideca.plugins.rbm.entity.Event : 19,
>> getKnowledgeRuntime()=org.drools.impl.StatefulKnowledgeSessionImpl at 6dd4ab87,
>> getPropagationContext()=PropagationContextImpl [activeActivations=0,
>> dormantActivations=2, entryPoint=EntryPoint::DEFAULT, factHandle=[fact
>> 0:19:184363445:184363445:19:DEFAULT:rapideca.plugins.rbm.entity.Event :
>> 19], leftTuple=[fact
>> 0:19:184363445:184363445:19:DEFAULT:rapideca.plugins.rbm.entity.Event : 19]
>> , originOffset=-1, propagationNumber=40, rule=[Rule
>> name=EventRetractionRule, agendaGroup=MAIN, salience=1, no-loop=true],
>> type=1]]
>> 2014-02-25 08:59:03,524 [eventQueueReceiverJmsListenerContainer-1] INFO
>> log.RuleLogHandler  - RuleLog with id: 38 was successfully saved.
>> | Error ==>[AfterActivationFiredEvent: getActivation()=[Activation
>> rule=EventRetractionRule, act#=36, salience=1, tuple=[fact
>> 0:-1:184363445:184363445:19:null:null]
>> ],
>> getKnowledgeRuntime()=org.drools.impl.StatefulKnowledgeSessionImpl at 6dd4ab87
>> ]
>>
>>
>> _______________________________________________
>> rules-users mailing listrules-users at lists.jboss.orghttps://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
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140225/6295c4a2/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Error01.png
Type: image/png
Size: 19881 bytes
Desc: not available
Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140225/6295c4a2/attachment-0002.png 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Success01.png
Type: image/png
Size: 19647 bytes
Desc: not available
Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140225/6295c4a2/attachment-0003.png 


More information about the rules-users mailing list