[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