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(a)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(a)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
_____
From: rules-users-bounces(a)lists.jboss.org
[mailto:rules-users-bounces@lists.jboss.org] 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 <mrhoden(a)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(a)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(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users