I am finding that the "salience" feature is acting very erratically.
Some of my rules modify the working memory. So I would like them to
execute before the others that simply read the memory after
modification and report on certain data conditions that are left
after all modifications have happened.
The "modifying" rules have a salience of 5. The "reading" rules have
a salience of 0.
Using the rules logging I can see activations of my modifying rules
being created and activations of the reading rules being created.
And I can see "reading" rules (with salience 0) being executed before
"modifying" rules (with salience 5) even though no other activations
are being created in between them.
I am not using agenda groups or anything "fancy" like that.
Debugging through the code I can see the "MAIN" agenda group is a
queue organised as heap.
However, the order in which things happen is very non-deterministic
(presumably due to hashing or something like that) and I am finding
it very difficult to actually pin down an actual 100% reproducible
case.
Is there any known problem with the salience mechanism?
I am using JBoss Rules 5.1.0 (with a support licence).
Chris Selwyn