I've taken the rule on nabble (for strange reasons, it does not display correctly on mails ...).
Wolfgang was right :

rule "C020 - Gate charge (Out M)-B"
    salience 45
    no-loop true
when
    ChargeDetailEntity( opsDate_currentLeg >= "20110101 000000" )  and
    $charge : ChargeDetailEntity( $tariffType : tariffType, $tariffCode : tariffCode, $chargeEtd : etd, billToCompany == "C020", chargeType == "YH", cntrStatus1 == "XM" )   and
    not(
    exists(
    $seq : ChargeDetailRefSeqEntity( $seqEtd : etd, (invSepCriteriaName == "C020 - Gate charge (Out M)") && ((adjType == $charge.adjType) && ((bargeJobId == $charge.bargeJobId) && ((billToCompany == $charge.billToCompany) && ((chargeType == $charge.chargeType) && ((consortiumCode == $charge.consortiumCode) && ((serviceCode == $charge.serviceCode) && ((vesselCode == $charge.vesselCode) && ((voyageCode == $charge.voyageCode) && (etd == $chargeEtd))))))))) )   )  )  
then
    insert(createChargeDetailRefSeqEntity("C020 - Gate charge (Out M)", $charge, newSeqList));
    retract($charge);
end


the first     ChargeDetailEntity( opsDate_currentLeg >= "20110101 000000" )  is the problem.
Don't know why there is 2 ChargeDetailEntity patterns, but I would put the contraint in the other ChargeDetailEntity pattern.
This way, adding one ChargeDetailEntity object will only lead one rule activation. With the rule as this, the number of activiation you show in your log is normal ...

PS : using a exists inside a not is redundant. not means "not exists" by itself. not( exists (X) ) is the same as not( X ).



De: "Wolfgang Laun" <wolfgang.laun@gmail.com>
À: "Rules Users List" <rules-users@lists.jboss.org>
Envoyé: Vendredi 18 Mai 2012 13:02:09
Objet: Re: [rules-users] Object activiates same rule many times

Please show the rule.

Exponentially growing activations can be caused by rules where the
same fact type is used more than once. You'll have to use constraints
inhibiting useless duplications, e.g.,

when
   $a1: A()
   $a2: A(this != $a1 )
then

-W



On 18/05/2012, Christina Lau <lau.christina@hit.com.hk> wrote:
Hi all,

 I find an odd pattern in the audit log. When an Object is inserted to the
 working memory, activation is created many times on same rule. The more
 objects are inserted, the duplicated activations are growing exponentially
 which degrade the performance a lot.

 Here attached part of the audit log:

 http://drools.46999.n3.nabble.com/file/n4000630/rule-DOCSEP-1337325521971.log
 rule-DOCSEP-1337325521971.log

 In the log,
 - when object (130) is inserted, rule "C020 - Gate charge (Out M)-B" is
 activiated 129 times.
 - when object (131) is inserted, rule "C020 - Gate charge (Out M)-B" is
 activiated 130 times.

 Here is the rule of "C020 - Gate charge (Out M)-B",



 The "insert" in RHS only add ChargeDetailRefSeqEntity to working memory
 that
 I don't think it causes the recursive activation.

 And I'd already set no-loop to true. Does anyone offer some help here?


 Thank you very much,
 Christina


 --
 View this message in context:
 http://drools.46999.n3.nabble.com/Object-activiates-same-rule-many-times-tp4000630.html
 Sent from the Drools: User forum mailing list archive at Nabble.com.
 _______________________________________________
 rules-users mailing list
 rules-users@lists.jboss.org
 https://lists.jboss.org/mailman/listinfo/rules-users

_______________________________________________

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