[rules-dev] Multi threading usage best practice

9Lives 9Lives ninelives35 at hotmail.com
Mon Jul 14 09:32:38 EDT 2008


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 at ford.comTo: rules-dev at 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 at lists.jboss.org [mailto:rules-dev-bounces at lists.jboss.org] On Behalf Of 9Lives 9LivesSent: 14 July 2008 13:41To: rules-dev at 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=QBRE
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-dev/attachments/20080714/1b077954/attachment.html 


More information about the rules-dev mailing list