Obviously you know your requirments better than I, but the following
stateless example accommodates dynamic insertion of facts:-
DRL
package com.test
import com.test.Fact1;
import com.test.Fact2;
rule "Fact1"
when
Fact1()
then
System.out.println("Fact1");
insert(new Fact2());
end
rule "Fact2"
when
Fact2( )
then
System.out.println("Fact2");
end
Java
StatelessSession session = ruleBase.newStatelessSession();
session.execute(new Fact1());
ConsoleFact1 Fact2 Are you getting (general) stateless sessions confused with sequential stateless sessions? With kind regards, Mike _____ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jai Vasanth Sent: 04 February 2008 21:02 To: Rules Users List Subject: Re: [rules-users] Using the drools as the backend engine for a service As part of the rules evaluation, more objects are inserted into the working memory. Even though I just insert 1 object after creating a session, rule outcomes inside lead to more objects to be inserted. Correct me if I am wrong, but I was under the impression that a stateless wouldnt be able to automatically fire rules when we objects are inserted dynamically Thanks Jai On Feb 4, 2008 1:05 AM, Anstis, Michael (M.) <[EMAIL PROTECTED]> wrote: IMHO, you might achieve better scalability and resilience if you can make the working memory stateless. I assume your "service" to be a web-service over stateless-HTTP and not a service exposed over a stateful protocol. Cheers, Mike _____ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jai Vasanth Sent: 01 February 2008 22:05 To: Rules Users List Subject: Re: [rules-users] Using the drools as the backend engine for a service I must have not been clear, yes I was planning on instantiating the rulebase when the service starts and instantiating a new session for every request. ONCE: RuleBase ruleBase = RuleBaseFactory.newRuleBase(); ruleBase.addPackage( pkg ); PER REQUEST: Stateful session = ruleBase.newStatefulSession(); (Is this what you were referring to as working memory ? ) I hope that looks ok. Thanks Jai On Feb 1, 2008 1:37 PM, Michael Rhoden <[EMAIL PROTECTED]> wrote: You would likely NOT want to create a rulebase per session. Most people create working memory per session. Rulebases should only be loaded once per server (context) in my opinion, and you reload it as rules changes. Loading a rulebase loads rules from a file, and orders your rete tree. For our installation that takes several minutes. Rulebase = once Working memory = per user/transaction -Michael _____ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jai Vasanth Sent: Friday, February 01, 2008 3:23 PM To: Rules Users List Subject: [rules-users] Using the drools as the backend engine for a service Hi, I am planning on using Drools as the rules engine for a service that I am building. I am considering instantiating a stateful session for every request to the service. The RuleBase would be created when the service starts. Is this the correct way to go about incorporating Drools in a service ? Is session creation an expensive process and if so are there other efficient ways of doing so ? Thanks Jai _______________________________________________ rules-users mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-users _______________________________________________ rules-users mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-users
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ rules-users mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-users
