<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Business Rule Engine (BRE) Blog by Sreedhar Pelluru, Senior Programmer Writer</title><link>http://blogs.msdn.com/b/biztalkbre/</link><description /><dc:language>en</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>Sample: Deploying Business Rules Programmatically </title><link>http://blogs.msdn.com/b/biztalkbre/archive/2007/02/16/sample-deploying-business-rules-programmatically.aspx</link><pubDate>Sat, 17 Feb 2007 00:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1691506</guid><dc:creator>Sreedhar Pelluru</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/biztalkbre/rsscomments.aspx?WeblogPostID=1691506</wfw:commentRss><comments>http://blogs.msdn.com/b/biztalkbre/archive/2007/02/16/sample-deploying-business-rules-programmatically.aspx#comments</comments><description>&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;The Rule Engine Deployment Wizard, which ships with BizTalk Server&amp;nbsp;2006, provides a graphical user interface to perform the following operations:&lt;/P&gt;
&lt;P class=BulletedList1 style="MARGIN: 3pt 0in 3pt 0.25in; tab-stops: .25in; mso-list: none"&gt;&lt;SPAN style="FONT-FAMILY: Symbol"&gt;·&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;Import a policy from a Business Rule Language (BRL) file into the Rule Engine database, and publish the policy&lt;/P&gt;
&lt;P class=BulletedList1 style="MARGIN: 3pt 0in 3pt 0.25in; tab-stops: .25in; mso-list: none"&gt;&lt;SPAN style="FONT-FAMILY: Symbol"&gt;·&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;Export a policy from the Rule Engine database to a BRL file &lt;/P&gt;
&lt;P class=BulletedList1 style="MARGIN: 3pt 0in 3pt 0.25in; tab-stops: .25in; mso-list: none"&gt;&lt;SPAN style="FONT-FAMILY: Symbol"&gt;·&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;Deploy a published policy&lt;/P&gt;
&lt;P class=BulletedList1 style="MARGIN: 3pt 0in 3pt 0.25in; tab-stops: .25in; mso-list: none"&gt;&lt;SPAN style="FONT-FAMILY: Symbol"&gt;·&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;Undeploy a deployed policy&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 12.0pt; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;One of the disadvantages of this wizard is that you can perform only one operation at a time. For example, if you need to export two policies, you need to launch the wizard twice. This wizard is also not scriptable and hence cannot be used to easily automate the operations that it supports. For example, you cannot automate the wizard easily from a setup program to automatically import and deploy one or more policies. The DeployRules sample fills this gap, allowing administrators to import, export, deploy, undeploy, and remove policies in a scriptable manner.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 12.0pt; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;Download the attachment, and review the ReadME.doc first. &lt;/SPAN&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1691506" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-01-69-15-06/DeployRules.zip" length="66604" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/b/biztalkbre/archive/tags/Walkthroughs_2F00_Samples/">Walkthroughs/Samples</category></item><item><title>Sample: Analyzing Objects of the Same Type in a Business Rule             </title><link>http://blogs.msdn.com/b/biztalkbre/archive/2007/02/16/sample-analyzing-objects-of-the-same-type-in-a-business-rule.aspx</link><pubDate>Fri, 16 Feb 2007 23:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1691422</guid><dc:creator>Sreedhar Pelluru</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/biztalkbre/rsscomments.aspx?WeblogPostID=1691422</wfw:commentRss><comments>http://blogs.msdn.com/b/biztalkbre/archive/2007/02/16/sample-analyzing-objects-of-the-same-type-in-a-business-rule.aspx#comments</comments><description>&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;In many scenarios, you will write a business rule against a type and expect the rule engine to separately analyze and act upon each instance of the type that is asserted into the engine. For example, if you write a rule against a .NET type and assert three .NET objects of that type into the rule engine working memory, the rule engine performs match-conflict resolution-action phases on each .NET object separately. In some scenarios, however, you will want to analyze multiple instances of a given type simultaneously in a rule. This sample demonstrates how to analyze multiple instances of a type in a business rule.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;(Download the attachment, and then go through the readme.doc first)&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1691422" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-01-69-14-22/ObjectsOfSameType.zip" length="51604" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/b/biztalkbre/archive/tags/Walkthroughs_2F00_Samples/">Walkthroughs/Samples</category></item><item><title>BRE Walkthroughs</title><link>http://blogs.msdn.com/b/biztalkbre/archive/2006/11/09/bre-walkthroughs.aspx</link><pubDate>Thu, 09 Nov 2006 04:19:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1041940</guid><dc:creator>Sreedhar Pelluru</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/biztalkbre/rsscomments.aspx?WeblogPostID=1041940</wfw:commentRss><comments>http://blogs.msdn.com/b/biztalkbre/archive/2006/11/09/bre-walkthroughs.aspx#comments</comments><description>&lt;P&gt;Hi all,&lt;/P&gt;
&lt;P&gt;I added the following walkthroughs to BizTalk Server documentation recently. Please download the latest documentation from: &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=3294DDAF-9F67-409F-A92D-2F6070DC0D1A&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyId=3294DDAF-9F67-409F-A92D-2F6070DC0D1A&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=3294DDAF-9F67-409F-A92D-2F6070DC0D1A&amp;amp;displaylang=en&lt;/A&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Walkthrough: Creating a Simple Policy&lt;/LI&gt;
&lt;LI&gt;Walkthrough: Testing the Policy&lt;/LI&gt;
&lt;LI&gt;Walkthrough: Invoking the Policy from an Orchestration&lt;/LI&gt;
&lt;LI&gt;Walkthrough: Creating and Using a Vocabulary in the Policy&lt;/LI&gt;
&lt;LI&gt;Walkthrough: Adding a Rule to the Policy&lt;/LI&gt;
&lt;LI&gt;Walkthrough: Modifying the Policy&lt;/LI&gt;
&lt;LI&gt;Walkthrough: Tracking Policy Execution&lt;/LI&gt;
&lt;LI&gt;Walkthrough: Deploying the Policy&lt;/LI&gt;
&lt;LI&gt;Walkthrough: Executing the Policy Programmatically&lt;/LI&gt;
&lt;LI&gt;Walkthrough: Creating a Fact Creator&lt;/LI&gt;
&lt;LI&gt;Walkthrough: Using Database and .NET facts (You will see this one in the next update, not in this one). &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;As always, any feedback is welcome and appreciated. After you open the BizTalk Server documentation CHM file, navigate to Microsoft BizTalk Server 2006 Help\Development\Developing BizTalk Server Applications\Creating and Using Business Rules\Business Rules Framework Walkthroughs. &lt;/P&gt;
&lt;P&gt;Regards,&lt;BR&gt;Sreedhar&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1041940" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/biztalkbre/archive/tags/Walkthroughs_2F00_Samples/">Walkthroughs/Samples</category></item><item><title>BizTalk 2004 SP2 - BRE (Business Rule Engine) Fixes</title><link>http://blogs.msdn.com/b/biztalkbre/archive/2006/10/27/biztalk-2004-sp2-bre-business-rule-engine-fixes.aspx</link><pubDate>Fri, 27 Oct 2006 20:48:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:882119</guid><dc:creator>Sreedhar Pelluru</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/biztalkbre/rsscomments.aspx?WeblogPostID=882119</wfw:commentRss><comments>http://blogs.msdn.com/b/biztalkbre/archive/2006/10/27/biztalk-2004-sp2-bre-business-rule-engine-fixes.aspx#comments</comments><description>&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;A title=http://support.microsoft.com/kb/905290/ href="http://support.microsoft.com/kb/905290/"&gt;&lt;FONT title=http://support.microsoft.com/kb/905290/ color=black&gt;&lt;SPAN title=http://support.microsoft.com/kb/905290/ style="COLOR: windowtext"&gt;http://support.microsoft.com/kb/905290/&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Fix 245451: BRE caches XML fields incorrectly &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;A title=http://support.microsoft.com/kb/905571/ href="http://support.microsoft.com/kb/905571/"&gt;&lt;FONT title=http://support.microsoft.com/kb/905571/ color=black&gt;&lt;SPAN title=http://support.microsoft.com/kb/905571/ style="COLOR: windowtext"&gt;http://support.microsoft.com/kb/905571/&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Fix: 245450: The Rule Engine is not honoring rule priorities correctly in high load&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;A href="http://support.microsoft.com/kb/920136/"&gt;http://support.microsoft.com/kb/920136/&lt;/A&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;FIX: Some Business Rule Engine values in the Windows registry are reset to the default values in BizTalk Server 2004&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;For all the bugs fixed in BTS 2004 SP2, see&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;A href="http://support.microsoft.com/kb/924330/"&gt;http://support.microsoft.com/kb/924330/&lt;/A&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=882119" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/biztalkbre/archive/tags/General/">General</category></item><item><title>What is the difference between Microsoft.RuleEngine.RuleSetDeploymentDriver and Microsoft.BizTalk.RuleEngineExtensions.RuleSetDeploymentDriver?</title><link>http://blogs.msdn.com/b/biztalkbre/archive/2006/10/11/what-is-the-difference-between-microsoft.ruleengine.rulesetdeploymentdriver-and-microsoft.biztalk.ruleengineextensions.rulesetdeploymentdriver_3F00_.aspx</link><pubDate>Wed, 11 Oct 2006 03:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:815511</guid><dc:creator>Sreedhar Pelluru</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/biztalkbre/rsscomments.aspx?WeblogPostID=815511</wfw:commentRss><comments>http://blogs.msdn.com/b/biztalkbre/archive/2006/10/11/what-is-the-difference-between-microsoft.ruleengine.rulesetdeploymentdriver-and-microsoft.biztalk.ruleengineextensions.rulesetdeploymentdriver_3F00_.aspx#comments</comments><description>&lt;P class=MsoNormal&gt;&lt;FONT face=Arial color=navy size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"&gt;The Microsoft.RuleEngine assembly can be used by any .NET application. The BizTalk Server can be considered as one of the consumers of BRE. The Microsoft.BizTalk.RuleEngineExtensions is the extension for BizTalk to provide some additional functionality. The main difference is that the Microsoft.BizTalk.RuleEngineExtensions.RuleSetDeploymentDriver writes out information to the BizTalk tracking database so that rules can be tracked using HAT. If you use the Microsoft.RuleEngine.RuleSetDeploymentDriver class, deployment go a little bit faster (no need to save the rules to the tracking database, but it is not recommended. &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial color=navy size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=Arial color=navy size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"&gt;In general, you should use the one configured. In BizTalk 2006, the static method Configuration.GetDeploymentDriver() determines what has been configured and returns an instance of that class. This method looks at the registry entries DeploymentDriverAssembly and DeploymentDriverClass under HKLM\Software\Microsoft\BusinessRules\3.0. The default values for these keys are Microsoft.BizTalk.RuleEngineExtensions and RuleSetDeploymentDriver. In other words, the recommended way is to use the one in Microsoft.BizTalk.RuleEngineExtensions namespace. &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=815511" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/biztalkbre/archive/tags/General/">General</category></item><item><title>EQUAL predicate beween Object types and Strings - Breaks in 2006</title><link>http://blogs.msdn.com/b/biztalkbre/archive/2006/09/20/763926.aspx</link><pubDate>Wed, 20 Sep 2006 22:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:763926</guid><dc:creator>Sreedhar Pelluru</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/biztalkbre/rsscomments.aspx?WeblogPostID=763926</wfw:commentRss><comments>http://blogs.msdn.com/b/biztalkbre/archive/2006/09/20/763926.aspx#comments</comments><description>&lt;P&gt;Here is a&lt;STRONG&gt; question&lt;/STRONG&gt; I received on my blog:&lt;/P&gt;
&lt;P&gt;We have hundreds of BTS2004 rules where we use the EQUAL predicate beween Object types and Strings. &lt;BR&gt;Now I discovered that BTS2006 does not permit this anymore. Why is it undocumented? How do I migrate those Rules in BTS2006 ? &lt;/P&gt;
&lt;P&gt;SINCE I don't have an email address to respond to, I am posting the answer here.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;ANSWER:&lt;/STRONG&gt; This is a known bug that was not caught in the regression test. The SDE (Software Design Engineer) for BRE is aware of the bug and have the fix for it. However, you need to open an issue with our BizTalk support team and have it escalated to (QFE) Quick Fix Engineering team to get the fix. &lt;/P&gt;
&lt;P&gt;Regards,&lt;BR&gt;Sreedhar&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=763926" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/biztalkbre/archive/tags/General/">General</category></item><item><title>Ideas for BRE samples</title><link>http://blogs.msdn.com/b/biztalkbre/archive/2006/09/20/763892.aspx</link><pubDate>Wed, 20 Sep 2006 20:04:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:763892</guid><dc:creator>Sreedhar Pelluru</dc:creator><slash:comments>12</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/biztalkbre/rsscomments.aspx?WeblogPostID=763892</wfw:commentRss><comments>http://blogs.msdn.com/b/biztalkbre/archive/2006/09/20/763892.aspx#comments</comments><description>&lt;P&gt;Hi all,&lt;/P&gt;
&lt;P&gt;I am planning to create more BRE samples. I would really appreciate if you could let me know what kind of BRE samples you are looking for. If you have any feedback on BRE documentation, send it my way. &lt;/P&gt;
&lt;P&gt;Thanks &amp;amp; Regards,&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;A name=_MailAutoSig&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial; mso-no-proof: yes"&gt;------------------------------------------------------&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue; mso-no-proof: yes"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="mso-bookmark: _MailAutoSig"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial; mso-no-proof: yes"&gt;Sreedhar Pelluru,&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-bookmark: _MailAutoSig"&gt;&lt;SPAN style="FONT-SIZE: 7.5pt; COLOR: maroon; FONT-FAMILY: Arial; mso-no-proof: yes"&gt;MCSD .NET, MCTS (BizTalk)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-bookmark: _MailAutoSig"&gt;&lt;SPAN style="FONT-SIZE: 7.5pt; COLOR: blue; FONT-FAMILY: Arial; mso-no-proof: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="mso-bookmark: _MailAutoSig"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial; mso-no-proof: yes"&gt;BizTalk Server User Education Team&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="mso-bookmark: _MailAutoSig"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial; mso-no-proof: yes"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-bookmark: _MailAutoSig"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial; mso-no-proof: yes"&gt;Microsoft Corporation&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;A href="http://blogs.msdn.com/biztalkbre/"&gt;&lt;SPAN style="mso-bookmark: _MailAutoSig"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-no-proof: yes"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-bookmark: _MailAutoSig"&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN style="mso-bookmark: _MailAutoSig"&gt;&lt;SPAN style="COLOR: blue; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="mso-bookmark: _MailAutoSig"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial; mso-no-proof: yes"&gt;------------------------------------------------------&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=763892" width="1" height="1"&gt;</description></item><item><title>Walkthrough: Testing a Simple Policy</title><link>http://blogs.msdn.com/b/biztalkbre/archive/2006/09/15/756657.aspx</link><pubDate>Sat, 16 Sep 2006 01:12:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:756657</guid><dc:creator>Sreedhar Pelluru</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/biztalkbre/rsscomments.aspx?WeblogPostID=756657</wfw:commentRss><comments>http://blogs.msdn.com/b/biztalkbre/archive/2006/09/15/756657.aspx#comments</comments><description>&lt;P&gt;&lt;STRONG&gt;Attached: &lt;/STRONG&gt;Testing a Simple Policy.zip file contains&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Word document for "Testing a Simple Policy" walkthrough&lt;/LI&gt;
&lt;LI&gt;SamplePO.xml&lt;/LI&gt;
&lt;LI&gt;SamplePO2.xml&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=756657" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-00-75-66-57/Testing-a-Simple-Policy.zip" length="269115" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/b/biztalkbre/archive/tags/Walkthroughs_2F00_Samples/">Walkthroughs/Samples</category></item><item><title>Walkthrough: Creating a Simple Policy (level 200) </title><link>http://blogs.msdn.com/b/biztalkbre/archive/2006/09/15/756654.aspx</link><pubDate>Sat, 16 Sep 2006 01:10:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:756654</guid><dc:creator>Sreedhar Pelluru</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/biztalkbre/rsscomments.aspx?WeblogPostID=756654</wfw:commentRss><comments>http://blogs.msdn.com/b/biztalkbre/archive/2006/09/15/756654.aspx#comments</comments><description>&lt;P&gt;&lt;STRONG&gt;Attached: &lt;/STRONG&gt;Creating a Simple Policy.zip file contains&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Word document for "Creating a Simple Policy" walkthrough&lt;/LI&gt;
&lt;LI&gt;PurchaseOrder.xsd schema&lt;/LI&gt;&lt;/UL&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=756654" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-00-75-66-54/Creating-a-Simple-Policy.zip" length="283606" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/b/biztalkbre/archive/tags/Walkthroughs_2F00_Samples/">Walkthroughs/Samples</category></item><item><title>BRE: Performance Consideration - Documentation in Development</title><link>http://blogs.msdn.com/b/biztalkbre/archive/2006/09/15/756626.aspx</link><pubDate>Sat, 16 Sep 2006 01:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:756626</guid><dc:creator>Sreedhar Pelluru</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/biztalkbre/rsscomments.aspx?WeblogPostID=756626</wfw:commentRss><comments>http://blogs.msdn.com/b/biztalkbre/archive/2006/09/15/756626.aspx#comments</comments><description>&lt;H1 style="MARGIN: 9pt 0in 3pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT size=5&gt;&lt;FONT face=Verdana&gt;Performance Considerations&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/H1&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;Introduction&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;This topic discusses how the rule engine performs in various scenarios and with different values for the configuration/tuning parameters. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Fact Types&lt;/B&gt;&lt;SPAN class=Bold&gt;&lt;SPAN style="FONT-WEIGHT: normal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;The rule engine takes less time to access .NET facts compared the time it takes to access the XML and database facts. If you have a choice of using either .NET or XML or database fact in a policy, you should consider using .NET facts for higher performance. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Data Table vs. Data Connection&lt;/B&gt;&lt;SPAN class=Bold&gt;&lt;SPAN style="FONT-WEIGHT: normal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;When the size of the data set is small (&amp;lt; 10 or so), the &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;TypedDataTable&lt;/STRONG&gt;&lt;/SPAN&gt; binding performs better than the &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;DataConnection&lt;/STRONG&gt;&lt;/SPAN&gt; binding. Where as, the &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;DataConnection&lt;/STRONG&gt;&lt;/SPAN&gt; binding performs better than the &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;TypedDataTable&lt;/STRONG&gt;&lt;/SPAN&gt; binding when the data set is large (greater than or equal to 10 rows approximately). Therefore, you should decide whether to use the &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;DataConnection&lt;/STRONG&gt;&lt;/SPAN&gt; binding or &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;TypedDataTable&lt;/STRONG&gt;&lt;/SPAN&gt; binding based on the estimated size of the data set. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Fact Retrievers&lt;/B&gt;&lt;SPAN class=Bold&gt;&lt;SPAN style="FONT-WEIGHT: normal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;You can write a fact retriever—an object that implements standard methods and typically uses them to supply long-term and slowly changing facts to the rule engine before the policy is executed. The engine caches these facts and uses them over multiple execution cycles. Instead of submitting a static or fairly static fact each time the you invoke the rule engine, you should create a fact retriever that submits the fact for the first time, and then updates the fact in memory only when it is needed. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Rule Priority&lt;/B&gt;&lt;SPAN class=Bold&gt;&lt;SPAN style="FONT-WEIGHT: normal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;The priority setting for a rule can range on either side of &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;0&lt;/STRONG&gt;&lt;/SPAN&gt;, with larger numbers having higher priority. Actions are executed in order from the highest priority to lowest priority. When the policy implements forward-chaining behavior by using &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Assert/Update&lt;/STRONG&gt;&lt;/SPAN&gt; calls, the chaining can be optimized by using the priority setting. &amp;nbsp;For example, assume that &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Rule2&lt;/STRONG&gt;&lt;/SPAN&gt; has a dependency on a value set by &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Rule1&lt;/STRONG&gt;&lt;/SPAN&gt;.&amp;nbsp; Giving &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Rule1&lt;/STRONG&gt;&lt;/SPAN&gt; a higher priority means that &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Rule2&lt;/STRONG&gt;&lt;/SPAN&gt; will only execute after &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Rule1&lt;/STRONG&gt;&lt;/SPAN&gt; fires and updates the value.&amp;nbsp; Conversely, if &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Rule2&lt;/STRONG&gt;&lt;/SPAN&gt; were given a higher priority, it could fire once, and then fire again after &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Rule1&lt;/STRONG&gt;&lt;/SPAN&gt; fires and updates the fact that &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Rule2&lt;/STRONG&gt;&lt;/SPAN&gt; is using in a condition. &amp;nbsp;This may or may not result in the correct results, but clearly would have a performance impact versus only firing once.&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Update Calls&lt;/B&gt;&lt;SPAN class=Bold&gt;&lt;SPAN style="FONT-WEIGHT: normal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;The &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Update&lt;/STRONG&gt;&lt;/SPAN&gt; function updates the fact that exists in the working memory of the rule engine and causes all the rules using the updated facts in conditions to be reevaluated. The &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Update&lt;/STRONG&gt;&lt;/SPAN&gt; function calls can be expensive especially if large set of rules need to be reevaluated because of updating the facts. There are situations where they can be avoided.&amp;nbsp; For example, consider the following rules: &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Rule1:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT size=2&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;IF PurchaseOrder.Amount &amp;gt; 5 &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT size=2&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;THEN StatusObj.Flag = true; Update(StatusObj)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Rule2:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT size=2&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;IF PurchaseOrder.Amount &amp;lt;= 5 &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT size=2&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;THEN StatusObj.Flag = false; Update(StatusObj)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;o:p&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;All remaining rules of the policy use &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;StatusObj.Flag&lt;/STRONG&gt;&lt;/SPAN&gt; in their conditions. Therefore, when &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Update&lt;/STRONG&gt;&lt;/SPAN&gt; is called on the &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;StatusObj&lt;/STRONG&gt;&lt;/SPAN&gt; object, all the rules will be reevaluated. Whatever the value of the &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Amount&lt;/STRONG&gt;&lt;/SPAN&gt; field is, all the rules except &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Rule1&lt;/STRONG&gt;&lt;/SPAN&gt; or &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Rule2&lt;/STRONG&gt;&lt;/SPAN&gt; are evaluated twice, once before the &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Update&lt;/STRONG&gt;&lt;/SPAN&gt; call and once after the &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Update&lt;/STRONG&gt;&lt;/SPAN&gt; call. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;o:p&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Instead, you could set the value of the &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;flag&lt;/STRONG&gt;&lt;/SPAN&gt; field to &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;false&lt;/STRONG&gt;&lt;/SPAN&gt; prior to invoking the policy and then use only &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Rule1&lt;/STRONG&gt;&lt;/SPAN&gt; in the policy to set the flag. In this case, &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Update&lt;/STRONG&gt;&lt;/SPAN&gt; would be called only if the value of the &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Amount&lt;/STRONG&gt;&lt;/SPAN&gt; field is greater than 5, and &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Update&lt;/STRONG&gt;&lt;/SPAN&gt; function is not called if amount is less than or equal to 5. Therefore, all the rules except &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Rule1&lt;/STRONG&gt;&lt;/SPAN&gt; or &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Rule2&lt;/STRONG&gt;&lt;/SPAN&gt; are evaluated twice only if the value of the &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Amount&lt;/STRONG&gt;&lt;/SPAN&gt; field is greater than 5. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Usage of Logical OR Operators &lt;/B&gt;&lt;SPAN class=Bold&gt;&lt;SPAN style="FONT-WEIGHT: normal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Using an increasing number of &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;logical OR&lt;/STRONG&gt;&lt;/SPAN&gt; operators in conditions creates additional permutations that expand the analysis network of the rule engine. &amp;nbsp;From a performance standpoint, you are better off splitting the conditions into atomic rules that do not contain logical OR operators.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Caching Settings&lt;/B&gt;&lt;SPAN class=Bold&gt;&lt;SPAN style="FONT-WEIGHT: normal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;The rule engine uses two caches. The first one is in the update service and the second one is in each BizTalk process. The first time a policy is used, the BizTalk process requests for the policy information from the update service.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The update service retrieves the policy information from the rule engine database, caches it and returns the information to the BizTalk process. The BizTalk process creates a policy object based on that information and stores the policy object in a cache when the associated rule engine instance completes executing the policy. When the same policy is invoked again, the BizTalk process reuses the policy object from the cache if one is available in the cache. Similarly, if BizTalk process requests for the information about a policy from update service, the update service looks for the policy information in its cache if it is available. The update service also checks if there have been any updates to the policy in the database every 60 seconds (1 minute). If there are any updates, the update service retrieves the information and caches the updated information. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;o:p&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;There are three tuning parameters for the rule engine related to these caches and they are &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;CacheEntries&lt;/STRONG&gt;&lt;/SPAN&gt;, &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;CacheTimeout&lt;/STRONG&gt;&lt;/SPAN&gt;, and &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;PollingInterval&lt;/STRONG&gt;&lt;/SPAN&gt;. You can specify the values for these parameters either in the registry or in a configuration file. The value of the &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;CacheEntries&lt;/STRONG&gt;&lt;/SPAN&gt; is the maximum number of entries in the cache. The default value of &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;CacheEntries&lt;/STRONG&gt;&lt;/SPAN&gt; parameter is 32. You may want to increase the value of the &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;CacheEntries&lt;/STRONG&gt;&lt;/SPAN&gt; parameter to improve performance in some cases. For example, say, you are using 40 policies repeatedly; you may want to increase the value of &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;CacheEntries&lt;/STRONG&gt;&lt;/SPAN&gt; parameter to 40 to improve the performance. This would allow the update service to cache details of up to 40 policies in memory. While it would cause the BizTalk service to cache up to 40 policy instances in memory. There may be more than one instance of a policy in the cache of BizTalk service. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;o:p&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;The value of &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;CacheTimeout&lt;/STRONG&gt;&lt;/SPAN&gt; is the time (in seconds) for entries to age out of the update service cache. In other words, the &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;CacheTimeout&lt;/STRONG&gt;&lt;/SPAN&gt; value refers to how long a cache entry for a policy is kept in the cache without it being referred. The default value of &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;CacheTimeout&lt;/STRONG&gt;&lt;/SPAN&gt; parameter is &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;3600&lt;/STRONG&gt;&lt;/SPAN&gt; seconds (&lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;1 Hr&lt;/STRONG&gt;&lt;/SPAN&gt;). It means that, if the cache entry is not referenced with in an hour, it is deleted. In some cases, you may want to increase the value to a higher value to improve the performance. For example, say, the policy is invoked every 2 hrs. You could improve the performance of the policy execution by increasing the value of the &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;CacheTimeout&lt;/STRONG&gt;&lt;/SPAN&gt; parameter to a value higher than 2 hrs. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;o:p&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;The &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;PollingInterval&lt;/STRONG&gt;&lt;/SPAN&gt; parameter to the rule engine defines the time in seconds for the update service to check the rule engine database for updates. The default value for the &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;PollingInterval&lt;/STRONG&gt;&lt;/SPAN&gt; parameter is &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;60 seconds&lt;/STRONG&gt;&lt;/SPAN&gt; (&lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;1 minute&lt;/STRONG&gt;&lt;/SPAN&gt;). If you know that the policies do not get updated at all or they are updated rarely, you could change this value to a higher value to improve the performance. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Side Effects&lt;/B&gt;&lt;SPAN class=Bold&gt;&lt;SPAN style="FONT-WEIGHT: normal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;The &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;ClassMemberBinding&lt;/STRONG&gt;&lt;/SPAN&gt;, &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;DatabaseColumnBinding&lt;/STRONG&gt;&lt;/SPAN&gt;, and &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;XmlDocumentFieldBinding&lt;/STRONG&gt;&lt;/SPAN&gt; classes have a property named &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;SideEffects&lt;/STRONG&gt;&lt;/SPAN&gt;. This property determines if the value of the bound field/member/column value is cached or not. The default value of the &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;SideEffects&lt;/STRONG&gt;&lt;/SPAN&gt; property in the &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;DatabaseColumnBinding&lt;/STRONG&gt;&lt;/SPAN&gt; and &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;XmlDocumentFieldBinding&lt;/STRONG&gt;&lt;/SPAN&gt; classes is &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;false&lt;/STRONG&gt;&lt;/SPAN&gt;. Whereas, the default value of the &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;SideEffects&lt;/STRONG&gt;&lt;/SPAN&gt; property in the &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;ClassMemberBinding&lt;/STRONG&gt;&lt;/SPAN&gt; class is &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;true&lt;/STRONG&gt;&lt;/SPAN&gt;. Therefore, when a field of an XML document or a column of a database table is accessed for the second time or later with in the policy, the value is retrieved from the cache. Where as, when a member of a .NET object is accessed for the second time onwards, the value is retrieved from the .NET object, not from the cache. Setting the &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;siddeffects&lt;/STRONG&gt;&lt;/SPAN&gt; flag of a .NET &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;ClassMemberBinding&lt;/STRONG&gt;&lt;/SPAN&gt; to &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;false&lt;/STRONG&gt;&lt;/SPAN&gt; will improve the performance as the value of the field is retrieved from the cache from second time onwards. You can only do this programmatically. The &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Business Rule Composer&lt;/STRONG&gt;&lt;/SPAN&gt; tool does not expose the &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;sideeffects&lt;/STRONG&gt;&lt;/SPAN&gt; flag. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Instances and Selectivity&lt;/B&gt;&lt;SPAN class=Bold&gt;&lt;SPAN style="FONT-WEIGHT: normal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;The &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;XmlDocumentBinding&lt;/STRONG&gt;&lt;/SPAN&gt;, &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;ClassBinding&lt;/STRONG&gt;&lt;/SPAN&gt; and &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;DatabaseBinding&lt;/STRONG&gt;&lt;/SPAN&gt; classes have two properties, &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Instances&lt;/STRONG&gt;&lt;/SPAN&gt; and &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Selectivity&lt;/STRONG&gt;&lt;/SPAN&gt;. The value of &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Instances&lt;/STRONG&gt;&lt;/SPAN&gt; property is the expected number of instances of the class in working memory. The value of &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Selectivity&lt;/STRONG&gt;&lt;/SPAN&gt; property is the percentage of the class instances that will successfully pass the rule conditions. The rule engine uses these values to optimize the condition evaluation so that the lowest possible number of instances are used in condition evaluations first and then the remaining instances. If you have prior knowledge of the number of instances of the object, setting the &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Instances&lt;/STRONG&gt;&lt;/SPAN&gt; property to that value would improve the performance. Similarly, if you have prior knowledge of the the percentage of these objects passing the conditions, setting the &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Selectivity&lt;/STRONG&gt;&lt;/SPAN&gt; to that value would improve the performance. You can only set value for these parameters programmatically. The &lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Business Rule Composer&lt;/STRONG&gt;&lt;/SPAN&gt; tool does not expose them. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;o:p&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=756626" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/biztalkbre/archive/tags/General/">General</category></item></channel></rss>