<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>Hello<BR>
&nbsp;<BR>
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.<BR>
To do this i'm using the following scenario:<BR>
<OL>
<LI>
<DIV>I have a ruleBase.newStatefulSession().</DIV></LI>
<LI>
<DIV>I have a fixed set of facts.</DIV></LI>
<LI>
<DIV>I have a fixed set of rules.</DIV></LI>
<LI>
<DIV>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.</DIV></LI>
<LI>
<DIV>Rules that&nbsp;r executed change custom attributes in the message.</DIV></LI></OL>
Problem:<BR>
I noticed that sometimes a rule can b executed on the same message more then once.<BR>
&nbsp;<BR>
Assumption:<BR>
My guess is that because i'm working is a&nbsp;multi threading&nbsp;environment but using a stateful session, what happens is:<BR>
<OL>
<LI>Thread A is inserting Message A.</LI>
<LI>Thread B is inserting Message B</LI>
<LI>Thread A is calling fireAllRules</LI>
<LI>Rule X is executed on messages A + B.</LI>
<LI>Thread B is calling fireAllRules</LI>
<LI>Rule X is executed on messages A + B</LI>
<LI>Thread A is retracting Message A</LI>
<LI>Thread B is retracting message B</LI></OL>
Question:<BR>
My goal is 2 make sure a rule is executed only once on a single message.<BR>
Any ideas on how 2 avoid the situation described above?<BR>
&nbsp;<BR>
TnX<BR>
Dotan<BR>
&nbsp;<BR>
&nbsp;<BR><br /><hr />Invite your mail contacts to join your friends list with Windows Live Spaces. It's easy! <a href='http://spaces.live.com/spacesapi.aspx?wx_action=create&wx_url=/friends.aspx&mkt=en-us' target='_new'>Try it!</a></body>
</html>