<HTML xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<HEAD><!-- Template generated by Exclaimer Template Editor on 02:38:28 Thursday, 7 February 2013 -->
<STYLE type=text/css>P.976528b6-ef26-420c-8b7c-44698624a63f {
        MARGIN: 0cm 0cm 0pt
}
LI.976528b6-ef26-420c-8b7c-44698624a63f {
        MARGIN: 0cm 0cm 0pt
}
DIV.976528b6-ef26-420c-8b7c-44698624a63f {
        MARGIN: 0cm 0cm 0pt
}
TABLE.976528b6-ef26-420c-8b7c-44698624a63fTable {
        MARGIN: 0cm 0cm 0pt
}
DIV.Section1 {
        page: Section1
}
</STYLE>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="Generator" content="Microsoft Word 12 (filtered medium)" />
<base href="x-msg://3635/" /><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Helvetica;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:"Lucida Console";
        panose-1:2 11 6 9 4 5 4 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</HEAD>

<BODY lang="EN-US" link="blue" vlink="purple">
<P>
<div class="WordSection1">
<p class="MsoNormal"><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>Thanks for this response Steve.<o:p></o:p></span></p>
<p class="MsoNormal"><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>Truthfully, we don&#8217;t (yet!) have &nbsp;enough DROOLs experience to competently express our performance goals.&nbsp; But we are willing to do the &#8220;homework&#8221; to close this
 gap.&nbsp; At this time, we have no performance expectations (and, consequently, DROOLs has no performance obligations).<o:p></o:p></span></p>
<p class="MsoNormal"><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>But we do have the ambition to &#8220;surf&#8221; the full permutation space of possible high-frequency fact &#8220;arrival&#8221; throughput optimization strategies.&nbsp; We then will
 survey the relative merit of all participating on same.<o:p></o:p></span></p>
<p class="MsoNormal"><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>This we do know= We are very excited about DROOLs&#8217; potential to unburden the complexity of our &#8220;what do we do next?&#8221; decision making &nbsp;&#8230; compelling empowering
 us to partition logic away from the traditional custodians (.sql SPROCs, .java/.cpp libraries, .q KDB&#43; proprietary analyses, etc.) onto something that is, well, just better.<o:p></o:p></span></p>
<p class="MsoNormal"><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>So we want to &#8220;bake off&#8221; every strategy, literally every conceivable permutation, and award the blue-ribbon (possibly multiple ribbons!) based on our *<b>relative</b>*
 view of merit.<o:p></o:p></span></p>
<p class="MsoNormal"><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>P.S.&nbsp; Will exercise &#8220;insert, fire, retract, fire&#8221; in the very near term.&nbsp; Thanks again!<o:p></o:p></span></p>
<p class="MsoNormal"><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style=font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;>From:</span></b><span style=font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;> rules-users-bounces@lists.jboss.org [mailto:rules-users-bounces@lists.jboss.org]
<b>On Behalf Of </b>Stephen Masters<br />
<b>Sent:</b> Thursday, February 07, 2013 2:18 PM<br />
<b>To:</b> Rules Users List<br />
<b>Subject:</b> Re: [rules-users] ambition = ThreadPoolExecutor delegating to KBPool(s) &amp; KSPools(s)<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<p class="MsoNormal">We all know what they say about premature optimisation, so maybe it would be worth stating your performance goals? It might help with establishing which direction the optimisations should go. And also whether such optimisations are even
 worth trying to achieve.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">In a knowledge base with a reasonable number of rules, and especially if a number of facts need to be derived on start-up, the technique Wolfgang mentions with a long-running session is what I have found tends to give me the best performance.
 i.e. For each incoming request: insert, fire, retract, fire. Obviously it depends on your rules, but sub-millisecond evaluations are quite achieveable (~20 microseconds is the fastest I have achieved so far). Which takes me back to the question of what throughput
 do you need to achieve? And how bursty are you expecting it to be?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">Of course, if there is no dependence between evaluations (i.e. you're not accumulating transaction values or anything like that) it's pretty simple to set up a queue of requests and a pool of stateful sessions, so it's not that much wasted
 effort if you don't need it.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">Steve<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<div>
<p class="MsoNormal">On 7 Feb 2013, at 18:05, &quot;Cotton, Ben&quot; &lt;<a href="mailto:Ben.Cotton@morganstanley.com">Ben.Cotton@morganstanley.com</a>&gt; wrote:<o:p></o:p></p>
</div>
<p class="MsoNormal"><br />
<br />
<o:p></o:p></p>
<div>
<div>
<p class="MsoNormal"><span style=font-size:13.5pt;font-family:&quot;Helvetica&quot;,&quot;sans-serif&quot;><o:p>&nbsp;</o:p></span></p>
</div>
<div style=margin-left:.5in>
<p class="MsoNormal" style=text-indent:-.25in><span style=font-size:14.0pt;font-family:Wingdings>Ø</span><span class="apple-converted-space"><span style=font-size:7.0pt>&nbsp;</span></span><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">Maybe you
 just need a StatelessKnowledgeSession (you're using this term in a later mail), that, when used in *sequential mode* is faster.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>But the fear we have here is that the backing queue of simultaneously arriving facts could back up if we process in synchronous sequence.&nbsp; We are willing to
 trade off an individual fact being processed more slowly, if we can simultaneously process many facts.</span><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D><br />
As you point off, the pattern that wins the &#8220;sequential v. parallel&#8221; bake-off is TBD.</span><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>&nbsp;</span><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">-----Original Message-----<br />
From: <a href="mailto:rules-users-bounces@lists.jboss.org">rules-users-bounces@lists.jboss.org</a> [mailto:rules-<a href="mailto:users-bounces@lists.jboss.org">users-bounces@lists.jboss.org</a>] On Behalf Of Wolfgang Laun<br />
Sent: Thursday, February 07, 2013 12:50 PM<br />
To: Rules Users List<br />
Subject: Re: [rules-users] ambition = ThreadPoolExecutor delegating to KBPool(s) &amp; KSPools(s)<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">KnowledgeSessions are created from a KnowledgeBase, and they are independent from each other, even when they come from a single KnowledgeBase. So I don't see the need for 24 KBases.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">You've referred to &quot;fireAllRules()&quot;, which isn't available with a StatelessKnowledgeSession. Maybe you just need a StatelessKnowledgeSession (you're using this term in a later
 mail), that, when used in *sequential mode* is faster. Otherwise, disposing a StatelessKnowledgeSession after processing each fact may not be faster than simply retracting the fact from a StatefulKnowledgeSession, which would prepare it for the next task,
 and not cause everything to go through GC.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">Just benchmarking will tell you what is best for your scenario.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">-W<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">On 07/02/2013, Cotton, Ben &lt;<a href="mailto:Ben.Cotton@morganstanley.com"><span style=color:windowtext;text-decoration:none>Ben.Cotton@morganstanley.com</span></a>&gt; wrote:<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; Thanks Jeremy.&nbsp; Just finished watching your referenced video&nbsp; &quot;Drools<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; &amp; Large Data Sets Workshop&quot; - no doubt about it, people are explicitly<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; using this pattern (Pool,Queue,Delegate,Callback) w/in Drools to<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; achieve higher concurrent &quot;simultaneous fact arrival&quot; transaction throughput, and scale.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; Especially appreciate your comment re: managing Runnables' callbacks<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; w/in the proposed framework... we indeed have to be careful here, and<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; will re-factor or design accordingly.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; From:<span class="apple-converted-space">&nbsp;</span><a href="mailto:rules-users-bounces@lists.jboss.org"><span style=color:windowtext;text-decoration:none>rules-users-bounces@lists.jboss.org</span></a><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; [<a href="mailto:rules-users-bounces@lists.jboss.org"><span style=color:windowtext;text-decoration:none>mailto:rules-users-bounces@lists.jboss.org</span></a>] On Behalf Of
 Jeremy Ary<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; Sent: Thursday, February 07, 2013 12:08 PM<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; To: Rules Users List<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; Subject: Re: [rules-users] ambition = ThreadPoolExecutor delegating to<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; KBPool(s) &amp; KSPools(s)<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; Yep, that all makes sense for the more elaborated context. Sounds like<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; you're working with a model wherein you needn't concern yourself with<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; relational logic between instances, so I think the value of splitting<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; sessions over threads with a multi-consumer queueing setup could allow<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; you the opportunity to async your process with better throughput. What<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; you and I propose differs only in high-availability and scalability of<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; the input stream (potentially arising from throttling to a single<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; instance responsible for maintaining task scheduling and executor<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; lifecycle), offering an ability to recover should you lose your<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; application containing pooled tasks and allow for smaller pool sizes<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; to maintain (pull only as needed/desired from queueing and adjust that<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; capacity on the fly for high-usage times such as first thing in the morning).<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; Semi-related I just found a video about a large-scale operation that<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; Alexandre Porcelli created that might be of some interest to you.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;<span class="apple-converted-space">&nbsp;</span><a href="http://vimeo.com/27209589"><span style=color:windowtext;text-decoration:none>http://vimeo.com/27209589</span></a><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; My only other thoughts going into it is consider some different<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; approaches for the scheduling mechanism given that, as I've had the<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; unpleasure of discovering before, callbacks from runnables can be fun<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; to keep up with of you're dependent on them, so fire-and-forget vs.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; results synchronicity can make a difference in the mechanism you<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; choose to maintain your tasks and pools.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; Regards,<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; Jeremy<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; On Thu, Feb 7, 2013 at 10:47 AM, Cotton, Ben<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; &lt;<a href="mailto:Ben.Cotton@morganstanley.com%3cmailto:Ben.Cotton@morganstanley.com"><span style=color:windowtext;text-decoration:none>Ben.Cotton@morganstanley.com&lt;mailto:Ben.Cotton@morganstanley.com</span></a>&gt;&gt;
 wrote:<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; Thanks for your response, Ary.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; It is much more about accommodating high-frequency and throughput.&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; The rules&nbsp; are ZERO sensitive to time and order - they are rendered 1x<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; at start of day.&nbsp; They are exceedingly complicated, and there are lots of them ...<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; but once they are bound to a KB nothing changes about them for the whole<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; day.&nbsp;&nbsp; When we put a fact on a KS.fireAllRules() task the rendered decision<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; is idempotent wrt to rules' firing(s) order.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; Also, all arriving facts are immutable and all sessions are stateless,<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; so we kind of have ignored CEP (seeing it as more appropriate for a<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; long-living ecosystem of continuously mutating facts).<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; Effectively, we want a &quot;small, simple, safe, speedy&quot; body of<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; operations on &quot;complex, cumbersome, concurrently-arriving, constant&quot; facts.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; From:<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;<span class="apple-converted-space">&nbsp;</span><a href="mailto:rules-users-bounces@lists.jboss.org%3cmailto:rules-users-bounces@lists.j"><span style=color:windowtext;text-decoration:none>rules-users-bounces@lists.jboss.org&lt;mailto:rules-users-bounces@lists.j</span></a><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;
<a href="http://boss.org">boss.org</a>&gt;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; [mailto:rules-<a href="mailto:users-bounces@lists.jboss.org">users-bounces@lists.jboss.org</a>&lt;mailto:rules-users-bounces<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; @<a href="http://lists.jboss.org">lists.jboss.org</a>&gt;]<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; On Behalf Of Jeremy Ary<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; Sent: Thursday, February 07, 2013 11:32 AM<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; To: Rules Users List<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; Subject: Re: [rules-users] ambition = ThreadPoolExecutor delegating to<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; KBPool(s) &amp; KSPools(s)<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; Are you in a place where your rules have become sensitive to time and order?<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; If so, have you considered CEP? If it's less about that and more about<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; getting the work done ASAP, you could also investigate a messaging<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; integration pattern to assist with all the pooling/throttling/queueing<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; needs you've mentioned.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; On Thu, Feb 7, 2013 at 10:04 AM, Cotton, Ben<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; &lt;<a href="mailto:Ben.Cotton@morganstanley.com%3cmailto:Ben.Cotton@morganstanley.com"><span style=color:windowtext;text-decoration:none>Ben.Cotton@morganstanley.com&lt;mailto:Ben.Cotton@morganstanley.com</span></a>&gt;&gt;
 wrote:<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; Let's say that a start-of-day, every day, we generate a giant 2,000&#43;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; rule .DRL, that we then use to construct into a single run-time<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; KnowledgeBase reference.&nbsp; We then construct a single run-time<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; KnowledgeSession reference (also at start of day).&nbsp; Throughout the day, all day, facts &quot;arrive&quot;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; asynchronously into our expert system.&nbsp; When a fact &quot;arrives&quot;, we<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; synchronously place the fact onto our single KS and call<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; .fireAllRules(), which in turn synchronously outputs answers that<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; satisfy our &quot;what's the next step?&quot; decision requirements.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; We have this working very well, but we have the ambition to achieve more.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; We want&nbsp; to attempt to scale this solution to accommodate the<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; high-frequency simultaneous &quot;arrival&quot; of many facts.&nbsp; We have at our<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; disposal a 24xCPU 128 gb Linux-based compute resource (nice, right?)<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; ... so, ideally, we have the ambition to potentially accommodate the<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; simultaneous arrival of 24 facts into our expert system.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; Assuming that all of our 2,000&#43; rules are completely isolated (i.e. no<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; rule i ever depends on any rule j, for all i,j) we want to consider<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; building (at start of day) a KSPool (size 24) , KBPool (size 24), and a<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; ThreadPoolExecutor (size 24, backed by BlockingQueue).&nbsp;&nbsp; As facts arrive<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; throughout the day, those that arrive simultaneously are Queue'd to<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; the TPE, that then delegates the fact's need for service to a task<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; Runnable,&nbsp; which in turn calls a KSPool[i].fireAllRules() (with<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; isolation to KBPool[i]).&nbsp; In such a scheme, we would potentially be<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; able to render decisions concurrently when facts arrive simultaneously ( capacity 24).<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; Is this design ambition common w/in current DROOLs use cases?&nbsp; Does<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; the current (or future) DROOLS offering include any in-place<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; capability to Pool KS or Pool KB?&nbsp; If not, are there any potential DROOLs concerns or &quot;gotchas&quot;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; wrt to our pursuing this ambition (in a &quot;let's build this now!&quot; prototype)?<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; As always, tremendous thanks to all in this community forum.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; Ben D Cotton III<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; Morgan Stanley &amp; Co.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; OTC Derivatives Clearing Technology<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; 1221 AOTA Rockefeller Ctr - Flr 27<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; New York, NY 10020<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; (212)762.9094&lt;<a href="tel:%28212%29762.9094"><span style=color:windowtext;text-decoration:none>tel:%28212%29762.9094</span></a>&gt;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;<span class="apple-converted-space">&nbsp;</span><a href="mailto:ben.cotton@ms.com%3cmailto:ben.cotton@ms.com"><span style=color:windowtext;text-decoration:none>ben.cotton@ms.com&lt;mailto:ben.cotton@ms.com</span></a>&gt;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; ________________________________<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; NOTICE: Morgan Stanley is not acting as a municipal advisor and the<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; opinions or views contained herein are not intended to be, and do not<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; constitute, advice within the meaning of Section 975 of the Dodd-Frank<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; Wall Street Reform and Consumer Protection Act. If you have received<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; this communication in error, please destroy all electronic and paper<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; copies and notify the sender immediately. Mistransmission is not<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; intended to waive confidentiality or privilege. Morgan Stanley<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; reserves the right, to the extent permitted under applicable law, to<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; monitor electronic communications. This message is subject to terms available at the following link:<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;<span class="apple-converted-space">&nbsp;</span><a href="http://www.morganstanley.com/disclaimers"><span style=color:windowtext;text-decoration:none>http://www.morganstanley.com/disclaimers</span></a><span class="apple-converted-space">&nbsp;</span>If
 you cannot access these<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; links, please notify us by reply message and we will send the contents<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; to you. By messaging with Morgan Stanley you consent to the foregoing.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; _______________________________________________<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; rules-users mailing list<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;<span class="apple-converted-space">&nbsp;</span><a href="mailto:rules-users@lists.jboss.org%3cmailto:rules-users@lists.jboss.org"><span style=color:windowtext;text-decoration:none>rules-users@lists.jboss.org&lt;mailto:rules-users@lists.jboss.org</span></a>&gt;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;<span class="apple-converted-space">&nbsp;</span><a href="https://lists.jboss.org/mailman/listinfo/rules-users"><span style=color:windowtext;text-decoration:none>https://lists.jboss.org/mailman/listinfo/rules-users</span></a><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; ________________________________<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; NOTICE: Morgan Stanley is not acting as a municipal advisor and the<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; opinions or views contained herein are not intended to be, and do not<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; constitute, advice within the meaning of Section 975 of the Dodd-Frank<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; Wall Street Reform and Consumer Protection Act. If you have received<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; this communication in error, please destroy all electronic and paper<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; copies and notify the sender immediately. Mistransmission is not<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; intended to waive confidentiality or privilege. Morgan Stanley<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; reserves the right, to the extent permitted under applicable law, to<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; monitor electronic communications. This message is subject to terms available at the following link:<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;<span class="apple-converted-space">&nbsp;</span><a href="http://www.morganstanley.com/disclaimers"><span style=color:windowtext;text-decoration:none>http://www.morganstanley.com/disclaimers</span></a><span class="apple-converted-space">&nbsp;</span>If
 you cannot access these<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; links, please notify us by reply message and we will send the contents<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; to you. By messaging with Morgan Stanley you consent to the foregoing.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; _______________________________________________<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; rules-users mailing list<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;<span class="apple-converted-space">&nbsp;</span><a href="mailto:rules-users@lists.jboss.org%3cmailto:rules-users@lists.jboss.org"><span style=color:windowtext;text-decoration:none>rules-users@lists.jboss.org&lt;mailto:rules-users@lists.jboss.org</span></a>&gt;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;<span class="apple-converted-space">&nbsp;</span><a href="https://lists.jboss.org/mailman/listinfo/rules-users"><span style=color:windowtext;text-decoration:none>https://lists.jboss.org/mailman/listinfo/rules-users</span></a><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; ________________________________<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; NOTICE: Morgan Stanley is not acting as a municipal advisor and the<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; opinions or views contained herein are not intended to be, and do not<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; constitute, advice within the meaning of Section 975 of the Dodd-Frank<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; Wall Street Reform and Consumer Protection Act. If you have received<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; this communication in error, please destroy all electronic and paper<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; copies and notify the sender immediately. Mistransmission is not<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; intended to waive confidentiality or privilege. Morgan Stanley<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; reserves the right, to the extent permitted under applicable law, to<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; monitor electronic communications. This message is subject to terms available at the following link:<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;<span class="apple-converted-space">&nbsp;</span><a href="http://www.morganstanley.com/disclaimers"><span style=color:windowtext;text-decoration:none>http://www.morganstanley.com/disclaimers</span></a><span class="apple-converted-space">&nbsp;</span>If
 you cannot access these<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; links, please notify us by reply message and we will send the contents<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt; to you. By messaging with Morgan Stanley you consent to the foregoing.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">&gt;&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">_______________________________________________<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;">rules-users mailing list<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;"><a href="mailto:rules-users@lists.jboss.org"><span style=color:windowtext;text-decoration:none>rules-users@lists.jboss.org</span></a><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;"><a href="https://lists.jboss.org/mailman/listinfo/rules-users"><span style=color:windowtext;text-decoration:none>https://lists.jboss.org/mailman/listinfo/rules-users</span></a><o:p></o:p></span></p>
</div>
<p class="MsoNormal" style=margin-bottom:13.5pt><span style=font-size:13.5pt;font-family:&quot;Helvetica&quot;,&quot;sans-serif&quot;><o:p>&nbsp;</o:p></span></p>
<div class="MsoNormal" align="center" style=text-align:center><span style=font-size:13.5pt;font-family:&quot;Helvetica&quot;,&quot;sans-serif&quot;>
<hr size="2" width="100%" align="center" id="HR1" />
</span></div>
<p class="MsoNormal"><span style=font-size:13.5pt;font-family:&quot;Helvetica&quot;,&quot;sans-serif&quot;><br />
</span><span style=font-size:7.5pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:gray>NOTICE: Morgan Stanley is not acting as a municipal advisor and the opinions or views contained herein are not intended to be, and do not constitute, advice within the meaning
 of Section 975 of the Dodd-Frank Wall Street Reform and Consumer Protection Act. If you have received this communication in error, please destroy all electronic and paper copies and notify the sender immediately. Mistransmission is not intended to waive confidentiality
 or privilege. Morgan Stanley reserves the right, to the extent permitted under applicable law, to monitor electronic communications. This message is subject to terms available at the following link:<span class="apple-converted-space">&nbsp;</span><a href="http://www.morganstanley.com/disclaimers"><span style=color:gray>http://www.morganstanley.com/disclaimers</span></a><span class="apple-converted-space">&nbsp;</span>If
 you cannot access these links, please notify us by reply message and we will send the contents to you. By messaging with Morgan Stanley you consent to the foregoing.</span><span style=font-size:13.5pt;font-family:&quot;Helvetica&quot;,&quot;sans-serif&quot;><o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style=font-size:13.5pt;font-family:&quot;Helvetica&quot;,&quot;sans-serif&quot;><o:p>&nbsp;</o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style=font-size:13.5pt;font-family:&quot;Helvetica&quot;,&quot;sans-serif&quot;><o:p>&nbsp;</o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style=font-size:13.5pt;font-family:&quot;Helvetica&quot;,&quot;sans-serif&quot;><o:p>&nbsp;</o:p></span></p>
</div>
<p class="MsoNormal"><span style=font-size:13.5pt;font-family:&quot;Helvetica&quot;,&quot;sans-serif&quot;>_______________________________________________<br />
rules-users mailing list<br />
<a href="mailto:rules-users@lists.jboss.org"><span style=color:purple>rules-users@lists.jboss.org</span></a><br />
<a href="https://lists.jboss.org/mailman/listinfo/rules-users"><span style=color:purple>https://lists.jboss.org/mailman/listinfo/rules-users</span></a><o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<BR /><BR />
<HR id=HR1 />
<BR /><SPAN style="FONT-FAMILY: Arial; COLOR: #808080; FONT-SIZE: 7.5pt">NOTICE: 
Morgan Stanley is not acting as a municipal advisor and the opinions or views 
contained herein are not intended to be, and do not constitute, advice within 
the meaning of Section 975 of the Dodd-Frank Wall Street Reform and Consumer 
Protection Act. If you have received this communication in error, please destroy 
all electronic and paper copies and notify the sender immediately. 
Mistransmission is not intended to waive confidentiality or privilege. Morgan 
Stanley reserves the right, to the extent permitted under applicable law, to 
monitor electronic communications. This message is subject to terms available at 
the following link: <A style="FONT-FAMILY: Arial; COLOR: #808080; FONT-SIZE: 7.5pt" href="http://www.morganstanley.com/disclaimers">http://www.morganstanley.com/disclaimers</A> 
If you cannot access these links, please notify us by reply message and we will 
send the contents to you. By messaging with Morgan Stanley you consent to the 
foregoing.</SPAN><BR />
<P></P>
<P></P></P></BODY>
</HTML>