Hi !

I am currently leading a study that compares BRMS. The aim of this study is to determine if a rules engine can be used for our application and what rules engine to use.

I made a prototype and I encountered a big problem of memory : no more than 53 objects could be passed as facts. After this threshold, I encountered a java.lang.OutOfMemoryException :
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

I increased the memory allocated to the JVM, but the more I insert objects as Facts and the more Drools becomes slower !

I think that the problem is exactly the same as the following one :
http://lists.jboss.org/pipermail/rules-users/2007-August/002592.html

Can you confirm to me that is the same problem ? And in a positive affirmation, how to solve this problem ? And how much time would it take ?

I am using drools 4.0 (developing whith associated eclipse IDE).

I realized a dslr that looks like this :
package com.sample

import XXX.Message;
import XXX.MyObject;

expander leg_recognizer.dsl

rule "rule 1"
   no-loop true
   when
       $m1 is an "OUT" marker
       $m2 is an "OFF" marker
       $m3 is an "ON" marker
       $m4 is an "IN" marker
       $m4 event date is more than $m1 event date
   then
       print "Rule 1"
       display message $m1
       display message $m2
       display message $m3
       display message $m4
       make $m1 treated
       make $m2 treated
       make $m3 treated
       make $m4 treated
       create a object "1" with state "active";
end

rule "rule 2".............(same principle) --> 6 rules in the real file.

And it uses the following dsl file :
[condition][]{message} is an "{state}" marker={message} : Message(type == "{state}")
[consequence][]print "{string}"=System.out.println("{string}");
[consequence][]display message {object}=System.out.println("Message : " + {object}); [consequence][]create a object "{id}" with state "{state}"=insert(new MyObject("{id}", "{state}"));
[consequence][]make {message} treated=retract({message});
[condition][]{message1} event date is more than {message2} event date=eval({message1}.isALaterEventThanMessage({message2}))

Did I made a mistake in the use of Drools or is this a bug ?

Thanks for answers...That's quite urgent !


_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to