2017-10-23 6 views
0

は、の2つのentities- Entity1とエンティティ2 Entity1が3日付型変数が含まれていますがあるとしましょう、Date3 Entity2は、日付型変数が含まれている - Date4日付比較ルールは、私が</p> <p>below-記載されている5つのルールのセットを実行しようとしています

  1. ルール1 - 日付2> Date3場合は、エラーメッセージ
  2. ルールを投げる - 日付1>日付2場合は、エラーメッセージ
  3. ルール2を投げますDate3 < Date4が、その後、エラーメッセージを投げる場合
  4. ルール4 - - 日付1>今日の日は、その後、エラーメッセージを投げる場合
  5. ルール4から3 Date3 <今日の日付場合は、エラーメッセージ
を投げます

しばらくすると、ログが増加してシステムがメモリ不足になっていることに気付きました。

もう少し詳しく調べると、org.droolsパッケージのTRACEが有効になり、ルールがループして停止しないことがわかりました。

私は最終的なDroolsのワークベンチ7.2.0を使用しています

これを続行する方法を提案してください。

編集 - とすぐに1 modify($passport)が実行されるようDRLファイルDRL

+0

これらのルールには、ループ内で発生するものがあります。原因を取り除く必要があります。 – laune

+0

これらの規則の間に循環ループが形成されることはありません。私がこれらのルールのDRLファイルを共有したい場合にはお知らせください。 –

+0

DRLとあなたがセッションとやりとりする方法を共有してください。 –

答えて

0

の を追加しましたスニップは、一致するLHS持つすべてのルールを再発射されやすいです。 no-loopは、変更が行われたルールのみをブロックします。 2つ以上のルールを通過するループを禁止しません。

この種のループを抑制する最良の手法は、すべてのルールに、変更がいつ行われたかを検出する制約を追加することです。

Passport(response == null, ...) 
関連する問題