[rules-users] Alpha Node Sharing Issue

Shahad Ahmed shahad.ahmed2 at gmail.com
Thu May 17 13:29:02 EDT 2007


I have a question about alpha node sharing in release 4.0MR2. In the API for
class RuleBaseConfiguration there is a method to turn alpha node sharing on
and off. However, I get some odd behaviour when I turn it off and I was
hoping someone can help me understand what's going on. I'll illustrate the
behaviour with the two rules "First" and Second" defined below. Both rules
work with  a class Customer, which  is a simple object with attribute age.

 rule "First"
salience 10
 when
  c: Customer(age <= 10)
 then
  System.out.println("First - Customer age less than 10");
end

rule "Second"
salience 5
 when
     c: Customer(age <= 10)
 then
  System.out.println("Second - Customer age less than 10");
end


In the default case where alpha node sharing is on, I assert a customer with
age 5 and fireAllRules to get the following (hopefully, correct) output:

  First - Customer age less than 10
  Second - Customer age less than 10

However, if I set the setShareAlphaNodes(false) to turn off alpha node
sharing I get the following output:

  First - Customer age less than 10

Reading the manual, I had assumed that the alpha node sharing was just an
optimization, and switching it off may be inefficient, but would give the
same output for the example rules. Is this correct, or have I missunderstood
alpha node sharing. I've tried switching off alpha node sharing both
directly via the API method, and using the system property option, but the
behaviour is the same in both cases.

Regards
Shahad
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20070517/518b4375/attachment.html 


More information about the rules-users mailing list