Правила Drools запускаются полностью один раз, а затем запускаются только частично
Я запускаю Drools 6.0.0.Beta2 на Tomcat 7. Я продолжаю сталкиваться с проблемой, когда все мои правила выполняются нормально один раз для начальной полезной нагрузки, и только первое правило выполняется для последующих полезных нагрузок, даже если полезные нагрузки идентичны первый. Мне было предложено, чтобы проблема находилась в состоянии одного из правил, но я не понимаю, что будет, если правила будут отлично работать на первой полезной нагрузке. Правила находятся в отдельных потоках правил, и существует множество правил второго типа, которые просто используют разные значения для параметров в Измерении.
Вот пример первых двух правил:
rule "encounter type values"
ruleflow-group "encounter-types"
when
$f: Foo()
$b: Bar() from $f.getBars()
$s: Foo.Something(type == Foo.Something.TYPE_1 || type == Foo.Something.TYPE_2 || type == Foo.Something.TYPE_3, value> 0.0) from $b.getSomethings()
then
FlyingMonkey m = new FlyingMonkey($f, $s.getDate(), $s.getType, $s.getValue());
insert(m);
end
rule "do math for type and date"
ruleflow-group "yay-math"
when
$m: FlyingMonkey(value!=null || score!=null, type=="TYPE1", age>-30, age<30)
then
Measurement fact = new Measurement($m, 1, 2, 3, 4, 5, 6);
insert(fact);
end
Кто-нибудь знает какие-либо причины, почему это происходит? Это ошибка в версиях программного обеспечения, которые я использую, или это более вероятно в моих правилах, что необъяснимым образом нарушает их во второй раз?
РЕДАКТИРОВАТЬ: Правила, которые я использую, работали в Drools версии 5.0.1 на отлично.
1 ответ
Похоже, что это на самом деле ошибка в Drools 5.5. Наконец и далее. Об этом сообщается здесь: https://issues.jboss.org/browse/DROOLS-141
У другого пользователя была такая же проблема, и он задокументировал свой прогресс здесь: http://drools.46999.n3.nabble.com/Ruleflow-not-working-with-stateless-session-in-drools-server-5-5-0-Final-td4021624.html