[rules-users] Using the drools as the backend engine for a service
Jai Vasanth
jaivasanth at gmail.com
Tue Feb 5 14:26:30 EST 2008
I see. Yes , I must have confused myself with sequential stateless and
stateless. So from what I can infer, the main advantage of statefull session
over a stateless is that we can insert multiple objects into the working
memory before calling fireAllRules() as opposed to the stateless where we
need to fire rules based on just 1 fact object? What are the other
differences that I need to know if I have to evaluate using stateless
sessions.
Thanks
Jai
On Feb 5, 2008 1:57 AM, Anstis, Michael (M.) <manstis1 at ford.com> wrote:
> 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 at lists.jboss.org [mailto:
> rules-users-bounces at 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 at 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 at lists.jboss.org [mailto:
> > rules-users-bounces at 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 at 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 at lists.jboss.org [mailto:
> > > rules-users-bounces at 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 at lists.jboss.org
> > > https://lists.jboss.org/mailman/listinfo/rules-users
> > >
> > >
> >
> > _______________________________________________
> > rules-users mailing list
> > rules-users at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/rules-users
> >
> >
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20080205/4c82b896/attachment.html
More information about the rules-users
mailing list