Ausdrücke in
Rational Focal Point
werden asynchron unter Verwendung einer Ausdruckswarteschlange ausgewertet.
Jeder Knoten kann Ausdrücke aus der Warteschlange entnehmen und auswerten.
Anmerkung: Um die Ausdruckswarteschlange anzuzeigen, müssen Sie entweder ein
globaler Administrator sein oder die globale Berechtigung für
Geschäftsregeln haben.
Ausdrücke können Änderungen an bestimmten Attributen überwachen, sodass sie
ausgewertet werden, sobald sich das betreffende Attribut ändert. Wenn ein
Ausdruck ausgewertet wird, wird der Wert normalerweise in dem Attribut gesetzt,
in das der Ausdruck eingegeben wird. Einige Geschäftsregeln können auch die Werte
anderer Attribute ändern. Es könnte eine Abhängigkeitskette zwischen Ausdrücken
bestehen.
Beispiel 1: In diesem Beispiel ist Attribut C von Attribut B
und Attribut B von Attribut A abhängig. Eine Änderung an Attribut A in den Wert
2 würde eine Auswertung des Ausdrucks in Attribut B auslösen. Der Ausdruck von
Attribut B wird in die Ausdruckswarteschlange gestellt. Wenn schließlich der
Ausdruck
A+1 ausgewertet wird und der Wert 3 in den Wert von
Attribut B gestellt wird, wird die Auswertung des Ausdrucks in Attribut C
ausgelöst und der Ausdruck in die Warteschlange gestellt. Die Kette ist
abgeschlossen, wenn der Ausdruck von Attribut C ausgewertet und eingegeben
wurde.
| Attribut |
Ausdruck |
Wert |
| A |
(keiner) |
1 |
| B |
A+1 |
2 |
| C |
B+1 |
3 |
Beispiel 2:
Durch eine Änderung des Werts in Attribut A werden in einer einzigen Operation
10000 Ausdrücke in die Ausdruckswarteschlange gestellt. Dies kann abhängig von
der Komplexität der Ausdrücke erhebliche Auswirkungen auf die Leistung von
Rational Focal Point
haben.
Anmerkung: Wenn Ausdrücke mit einer höheren Rate in die Warteschlange
gestellt werden, als sie ausgewertet werden, wächst die Warteschlange
unbegrenzt. Dies kann zu langen Wartezeiten beim Weitergeben der Änderungen
führen.
| Attribut |
Ausdruck |
Wert |
| A |
(keiner) |
1 |
| B1 |
A+1 |
2 |
| B2 |
A+1 |
2 |
| B3 |
A+1 |
2 |
| - |
A+1 |
2 |
| - |
A+1 |
2 |
| B10000 |
A+1 |
2 |