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());
 
Console

Fact1
Fact2
 
Are you getting (general) stateless sessions confused with sequential stateless sessions?
 
With kind regards,
 
Mike 
 

From: rules-users-bounces@lists.jboss.org [mailto:rules-users-bounces@lists.jboss.org] 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.) <manstis1@ford.com> 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


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 <mrhoden@franklinamerican.com> 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: rules-users-bounces@lists.jboss.org [mailto:rules-users-bounces@lists.jboss.org] 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
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users



_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users