TnX Mike 4 the quick response.
I'm afraid that u r right regarding the through-put ;-(
Using the "synchronized" method will probably solve my problem but will damage
the solution.
If u have any other thoughts on the matter i would love 2 hear them.
Regards
Dotan
Subject: RE: [rules-dev] Multi threading usage best practiceDate: Mon, 14 Jul 2008
14:24:02 +0100From: manstis1(a)ford.comTo: rules-dev(a)lists.jboss.org
Hi,
Would synchronising on working memory effectively serialise the effects of
fireAllRules()?
...
synchronised(wm) {
wm.fireAllRules();
}
...
I don't know whether this would kill your through-put either.
Cheers,
Mike
From: rules-dev-bounces(a)lists.jboss.org [mailto:rules-dev-bounces@lists.jboss.org] On
Behalf Of 9Lives 9LivesSent: 14 July 2008 13:41To: rules-dev(a)lists.jboss.orgSubject:
[rules-dev] Multi threading usage best practice
Hello I'm using Drools 4.0.7 inside a mail relay application 2 determine the
operations that need 2 b executed on each passing message.To do this i'm using the
following scenario:
I have a ruleBase.newStatefulSession().
I have a fixed set of facts.
I have a fixed set of rules.
Each mailer (a thread that is handling a single message) is inserting the message to the
working memory, calls the "fireAllRules" method and retracts the message.
Rules that r executed change custom attributes in the message.Problem:I noticed that
sometimes a rule can b executed on the same message more then once. Assumption:My guess is
that because i'm working is a multi threading environment but using a stateful
session, what happens is:
Thread A is inserting Message A.
Thread B is inserting Message B
Thread A is calling fireAllRules
Rule X is executed on messages A + B.
Thread B is calling fireAllRules
Rule X is executed on messages A + B
Thread A is retracting Message A
Thread B is retracting message BQuestion:My goal is 2 make sure a rule is executed only
once on a single message.Any ideas on how 2 avoid the situation described above? TnXDotan
Invite your mail contacts to join your friends list with Windows Live Spaces. It's
easy! Try it!
_________________________________________________________________
Discover the new Windows Vista
http://search.msn.com/results.aspx?q=windows+vista&mkt=en-US&form...