<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>El Grego</title>
        <link>http://geekswithblogs.net/gwiele/Default.aspx</link>
        <description>BizTalk blog</description>
        <language>nl-BE</language>
        <copyright>Gregory Van de Wiele</copyright>
        <managingEditor>Gregory@eai.be</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>El Grego</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/gwiele/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>About compatibility…</title>
            <category>BizTalk - EAI - B2B</category>
            <link>http://geekswithblogs.net/gwiele/archive/2005/09/26/55007.aspx</link>
            <description>&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;The BizTalk 2006 version and API is 100% backwards compatible with the 2004 version and API. BizTalk 2006 is built against .NET2.0 while the BizTalk 2004 assemblies were built against .NET1.1. Although I&amp;#8217;m not working for Microsoft this surely means that for the BizTalk 2006 version the Microsoft BizTalk product team has:&lt;BR&gt;&amp;nbsp;&lt;BR&gt;1. &lt;A href="http://msdn.microsoft.com/library/en-us/dnnetdep/html/netfxcompat.asp?frame=true"&gt;Checked&lt;/A&gt; the re-used BizTalk 2004 code parts against the new .NET version for incompatibilities and resolved all of them for the BizTalk 2006 release&lt;/FONT&gt;&lt;FONT face=Tahoma size=2&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;2. Rewritten parts of the original BizTalk 2004 implementation in order to benefit from the new framework version (such as a performance gain) without breaking compatibility with the previous BizTalk version. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;3. Added a lot of new BizTalk functionality written from scratch in .NET2.0 code. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;In general .NET framework supports installing and running different framework versions side-by-side on a single machine. By default your custom old .NET1.1 applications will run with .NET2.0 when you run them on a machine with 2.0 installed. If you detect incompatibilities you can instruct .NET to load the old runtime version you originally built your application against (by means of configuration). Or you can choose to fix the incompatibility in your code and recompile for .NET2.0. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Whole different story for your newly written .NET2.0 applications: they only run with 2.0 or higher compatible version (for example 2.1).&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Microsoft BizTalk 2006 is a &amp;#8216;new application&amp;#8217; and is &amp;#8216;built against&amp;#8217; .NET 2.0 (beta) and as a consequence will only run with .NET framework 2.0 or higher compatible version. The BizTalk 2006 host instances will load and execute code using CLR .NET2.0 and as a consequence the assemblies it loads will&amp;nbsp;execute within .NET 2.0. Your assemblies used inside orchestrations, your custom adapters and your pipeline components and their dependencies will all have to be compatible with .NET2.0. You don&amp;#8217;t have the option to instruct to load the .NET framework version you built your assembly against because loading 2 different CLR versions in the same process is not supported. Here is a good post from Junfeng Zhang about the subject: &lt;A href="http://blogs.msdn.com/junfeng/archive/2005/05/26/422014.aspx"&gt;The CLR Side by Side and Compatibility&lt;/A&gt;&lt;/FONT&gt;&lt;FONT face=Tahoma size=2&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;This means that as a BizTalk developer you should at least perform step 1 from the above steps for all your BizTalk 2004 custom code. If you&amp;#8217;re lucky you detect no incompatibilities and it will work by default. But if you do detect incompatibilities&lt;/FONT&gt;&lt;FONT face=Tahoma size=2&gt; then you&amp;#8217;ll have to re-code and re-compile. For more information on the .NET CLR see &lt;A href="http://blogs.msdn.com/suzcook/default.aspx"&gt;Suzanne Cook&amp;#8217;s weblog&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=55007"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=55007" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/gwiele/aggbug/55007.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gregory Van de Wiele</dc:creator>
            <guid>http://geekswithblogs.net/gwiele/archive/2005/09/26/55007.aspx</guid>
            <pubDate>Mon, 26 Sep 2005 07:53:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gwiele/comments/55007.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gwiele/archive/2005/09/26/55007.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/gwiele/comments/commentRss/55007.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gwiele/services/trackbacks/55007.aspx</trackback:ping>
        </item>
        <item>
            <title>BizTalk 2006 SDK: new BaseAdapter </title>
            <category>BizTalk - EAI - B2B</category>
            <link>http://geekswithblogs.net/gwiele/archive/2005/09/23/54729.aspx</link>
            <description>&lt;P&gt;The SDK of BizTalk 2006 Beta2 will include a new version of the adapter base classes. These will not be backwards compatible with the original BizTalk 2004 SDK classes.&lt;/P&gt;
&lt;P&gt;The API has changed and the internals have changed (uses System.Transactions for example). Adapters that have been originally built with the 2004 adapter base classes should continue to use and be deployed with this version.The .NET1.1 compiled assembly of the old base classes should by default work with.NET2.0 CLR. &lt;/P&gt;
&lt;P&gt;You could of course&amp;nbsp;prefer to re-compile for .NET2.0 but you will get some warnings during compilation time.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=54729"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=54729" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/gwiele/aggbug/54729.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gregory Van de Wiele</dc:creator>
            <guid>http://geekswithblogs.net/gwiele/archive/2005/09/23/54729.aspx</guid>
            <pubDate>Fri, 23 Sep 2005 04:40:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gwiele/comments/54729.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gwiele/archive/2005/09/23/54729.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/gwiele/comments/commentRss/54729.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gwiele/services/trackbacks/54729.aspx</trackback:ping>
        </item>
        <item>
            <title>Some great news...</title>
            <category>BizTalk - EAI - B2B</category>
            <link>http://geekswithblogs.net/gwiele/archive/2005/04/06/28439.aspx</link>
            <description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Although I'm still recovering from an earlier *shock* (from when I received the totally awesome MVD award), I'm proud to announce &lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt;that as of this month I'm a genuine, fully-fledged Microsoft MVP for BizTalk Server. This is really fantastic!&lt;/FONT&gt; &lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=28439"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=28439" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/gwiele/aggbug/28439.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gregory Van de Wiele</dc:creator>
            <guid>http://geekswithblogs.net/gwiele/archive/2005/04/06/28439.aspx</guid>
            <pubDate>Wed, 06 Apr 2005 15:08:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gwiele/comments/28439.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gwiele/archive/2005/04/06/28439.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/gwiele/comments/commentRss/28439.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gwiele/services/trackbacks/28439.aspx</trackback:ping>
        </item>
        <item>
            <title>‘Processing convoy workflow scenarios’ patent</title>
            <category>BizTalk - EAI - B2B</category>
            <link>http://geekswithblogs.net/gwiele/archive/2005/03/21/26864.aspx</link>
            <description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;For those who are wondering why I&amp;#8217;m not blogging very regularly: It&amp;#8217;s not that I&amp;#8217;m lying on my back and sun-bathing on the beach or anything (which was never been an option since it has been snowing a lot),&amp;nbsp;I'm just rather busy lately. I was doing a SP1 evaluation earlier, for which MS has granted me a prestigious award for &amp;#8216;Most Valuable Debugger&amp;#8217;. It&amp;#8217;s a kind of a joke, but nevertheless I&amp;#8217;m very proud and amused at the same time :-). I guess I will have to change my blogging style in order to make it up in the future. So expect some more &amp;#8216;publish some ideas quickly&amp;#8217; posts soon&amp;#8230; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;A href="http://www.freshpatents.com/Processing-convoy-workflow-scenarios-dt20050120ptan20050015776.php"&gt;Here&lt;/A&gt;&lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt; is something very interesting - I&amp;#8217;ve discovered it some time ago when I was searching for general background information about convoys. This explains why it&amp;#8217;s so hard to find anything theoretical and not directly from MS. More precisely, the &amp;#8216;Processing convoy workflow scenarios&amp;#8217; patent has been linked to 8 different people, amongst them 1 very famous blogger named Lee. &lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=26864"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=26864" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/gwiele/aggbug/26864.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gregory Van de Wiele</dc:creator>
            <guid>http://geekswithblogs.net/gwiele/archive/2005/03/21/26864.aspx</guid>
            <pubDate>Mon, 21 Mar 2005 08:06:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gwiele/comments/26864.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gwiele/archive/2005/03/21/26864.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/gwiele/comments/commentRss/26864.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gwiele/services/trackbacks/26864.aspx</trackback:ping>
        </item>
        <item>
            <title>BizTalk WMI programming: How to write cleaner WMI code a lot faster</title>
            <category>BizTalk - EAI - B2B</category>
            <link>http://geekswithblogs.net/gwiele/archive/2005/03/16/26469.aspx</link>
            <description>&lt;DIV style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;FONT face=Verdana size=2&gt;I&amp;#8217;ve seen numerous handy WMI scripts and code samples from fellow BizTalk bloggers and from the BizTalk help. Amazingly every one of these samples use late-bound objects calls to invoke methods and access properties from the BizTalk management objects. This makes the code rather verbose, it&amp;#8217;s very inconvenient and also very error prone. There's a better way to write your WMI code. Therefore you have to download first and then install the &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=62d91a63-1253-4ea6-8599-68fb3ef77de1&amp;amp;DisplayLang=en"&gt;&lt;FONT face=Verdana size=2&gt;'Management (WMI) Extensions for Visual Studio .NET 2003 Server Explorer'&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;. This tool makes WMI programming much easier and enjoyable (at least for me). It's no rocket science or anything but it comes in very handy for making your first steps on the WMI moon. You don&amp;#8217;t have to take my word on it, look for yourself:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt" align=center xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;A href="http://users.telenet.be/elgrego/WMI/wmi7.jpg"&gt;&lt;FONT face=Verdana size=2&gt;&lt;IMG style="BORDER-RIGHT: #000000 1pt solid; BORDER-TOP: #000000 1pt solid; BORDER-LEFT: #000000 1pt solid; WIDTH: 372px; BORDER-BOTTOM: #000000 1pt solid; HEIGHT: 202px" tabIndex=-1 height=202 src="http://users.pandora.be/elgrego/WMI/wmi7.jpg" width=372 border=0 v:shapes="_x0000_i1026" xmlns:v="urn:v" ?&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;A href="http://users.telenet.be/elgrego/WMI/wmi6.jpg"&gt;&lt;IMG style="BORDER-RIGHT: #000000 1pt solid; BORDER-TOP: #000000 1pt solid; BORDER-LEFT: #000000 1pt solid; WIDTH: 300px; BORDER-BOTTOM: #000000 1pt solid; HEIGHT: 286px" tabIndex=-1 height=286 src="http://users.pandora.be/elgrego/WMI/wmi6.jpg" width=300 border=0 xmlns:xd="http://schemas.microsoft.com/office/infopath/2003" v:shapes="_x0000_i1026" xmlns:v="urn:v"&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;COMMENT&gt;&lt;/COMMENT&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;FONT style="FONT-SIZE: 12pt"&gt;&lt;/FONT&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;FONT face=Verdana size=2&gt;After having installed the extension you can go into your Visual Studio&amp;#8217;s Server Explorer and select the namespace you want to add management classes from (select &amp;#8216;add classes&amp;#8217; from the context menu). &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; MARGIN-TOP: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt; MARGIN-BOTTOM: 0pt" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt" align=center xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;A href="http://users.telenet.be/elgrego/WMI/wmi1.jpg"&gt;&lt;FONT face=Verdana size=2&gt;&lt;IMG style="BORDER-RIGHT: #000000 1pt solid; BORDER-TOP: #000000 1pt solid; BORDER-LEFT: #000000 1pt solid; WIDTH: 384px; BORDER-BOTTOM: #000000 1pt solid; HEIGHT: 280px" tabIndex=-1 height=280 src="http://users.pandora.be/elgrego/WMI/wmi1.jpg" width=384 border=0 v:shapes="_x0000_i1028" xmlns:v="urn:v"&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;A href="http://users.telenet.be/elgrego/WMI/wmi2.jpg"&gt;&lt;IMG style="BORDER-RIGHT: #000000 1pt solid; BORDER-TOP: #000000 1pt solid; BORDER-LEFT: #000000 1pt solid; WIDTH: 320px; BORDER-BOTTOM: #000000 1pt solid; HEIGHT: 392px" tabIndex=-1 height=392 src="http://users.telenet.be/elgrego/WMI/wmi2.jpg" width=320 border=0 xmlns:xd="http://schemas.microsoft.com/office/infopath/2003" v:shapes="_x0000_i1028" xmlns:v="urn:v"&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;FONT style="FONT-SIZE: 12pt"&gt;&lt;/FONT&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;After selecting the desired classes from your namespace (&amp;#8216;root&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt; \&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;MicrosoftBizTalkServer&amp;#8217; I assume) the Server Explorer window will contain a list of the selected management object-types. &lt;FONT style="FONT-SIZE: 12pt"&gt;&lt;/FONT&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;It also shows a list of all instances for a given class when you click it. When having selected an instance, all of its properties will be shown inside the property-window (you could modify them from there too, but I wouldn&amp;#8217;t recommend doing it this way). &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt" align=center xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;A href="http://users.telenet.be/elgrego/WMI/wmi9.jpg"&gt;&lt;FONT face=Verdana size=2&gt;&lt;IMG style="BORDER-RIGHT: #000000 1pt solid; BORDER-TOP: #000000 1pt solid; BORDER-LEFT: #000000 1pt solid; WIDTH: 354px; BORDER-BOTTOM: #000000 1pt solid; HEIGHT: 241px" tabIndex=-1 height=241 src="http://users.pandora.be/elgrego/WMI/wmi9.jpg" width="354%" xmlns:v="urn:v" _x0000_i1029?&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;FONT style="FONT-SIZE: 12pt"&gt;&lt;/FONT&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;Also methods can be invoked on classes and instances; this is nice for testing purposes. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;STRONG&gt;*No big deal*&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt; you are thinking of course; now pay attention:&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;FONT face=Verdana size=2&gt;When selecting 'Generate Managed Class' from the menu, the extension will automatically generate a wrapper class and add it to your solution&amp;#8217;s startup project (it targets your .net project language). &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt" align=center xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;A href="http://users.telenet.be/elgrego/WMI/wmi3.jpg"&gt;&lt;FONT face=Verdana size=2&gt;&lt;IMG style="BORDER-RIGHT: #000000 1pt solid; BORDER-TOP: #000000 1pt solid; BORDER-LEFT: #000000 1pt solid; WIDTH: 353px; BORDER-BOTTOM: #000000 1pt solid; HEIGHT: 165px" tabIndex=-1 height=161 src="http://users.pandora.be/elgrego/WMI/wmi3.jpg" width="351%" xmlns:v="urn:v" _x0000_i1030?&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;A href="http://users.telenet.be/elgrego/WMI/wmi8.jpg"&gt;&lt;IMG style="BORDER-RIGHT: #000000 1pt solid; BORDER-TOP: #000000 1pt solid; BORDER-LEFT: #000000 1pt solid; WIDTH: 192px; BORDER-BOTTOM: #000000 1pt solid; HEIGHT: 165px" tabIndex=-1 height=165 src="http://users.telenet.be/elgrego/WMI/wmi8.jpg" width=192 border=0 xmlns:xd="http://schemas.microsoft.com/office/infopath/2003" v:shapes="_x0000_i1030" xmlns:v="urn:v"&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;FONT face=Verdana size=2&gt;The generated classes have strongly typed properties and methods, so you have access to and can invoke by simply using their name (even enum-types are created). You benefit from good old Intellisense again. Behind the covers the generated wrapper classes still use late-bound objects and calls of course, but you don&amp;#8217;t have to care at least about this, nor write ugly late binding code. Now you can write clean high-level WMI code a lot faster. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;FONT face=Verdana size=2&gt;Take a look at this little WMI sample (where I make a call to &amp;#8216;GetInstances&amp;#8217;: this overloaded method is created automatically and it requires only the where-part of the WQL query to return a typed collection of your WMI object-type).&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt" align=center xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;A href="http://users.telenet.be/elgrego/WMI/wmi4.jpg"&gt;&lt;FONT face=Verdana size=2&gt;&lt;IMG style="BORDER-RIGHT: #000000 1pt solid; BORDER-TOP: #000000 1pt solid; BORDER-LEFT: #000000 1pt solid; WIDTH: 626px; BORDER-BOTTOM: #000000 1pt solid; HEIGHT: 257px" tabIndex=-1 height=233 src="http://users.pandora.be/elgrego/WMI/wmi4.jpg" width="540%" xmlns:v="urn:v" _x0000_i1032?&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; MARGIN-TOP: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt; MARGIN-BOTTOM: 0pt" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; MARGIN-TOP: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt; MARGIN-BOTTOM: 0pt" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;FONT face=Verdana size=2&gt;Try to rewrite the following method (please don&amp;#8217;t focus on the language change; it&amp;#8217;s purely for educational purposes. I&amp;#8217;ve never executed a single line of this code :-)&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; MARGIN-TOP: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt; MARGIN-BOTTOM: 0pt" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; MARGIN-TOP: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt; MARGIN-BOTTOM: 0pt" align=center xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;A href="http://users.telenet.be/elgrego/WMI/wmi11.jpg"&gt;&lt;FONT face=Verdana size=2&gt;&lt;IMG style="BORDER-RIGHT: #000000 1pt solid; BORDER-TOP: #000000 1pt solid; BORDER-LEFT: #000000 1pt solid; WIDTH: 732px; BORDER-BOTTOM: #000000 1pt solid; HEIGHT: 272px" tabIndex=-1 height=242 src="http://users.pandora.be/elgrego/WMI/wmi11.jpg" width=719 border=0 v:shapes="_x0000_i1033" xmlns:v="urn:v"&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; MARGIN-TOP: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt; MARGIN-BOTTOM: 0pt" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; MARGIN-TOP: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt; MARGIN-BOTTOM: 0pt" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;FONT face=Verdana size=2&gt;Into this:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; MARGIN-TOP: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt; MARGIN-BOTTOM: 0pt" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; MARGIN-TOP: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt; MARGIN-BOTTOM: 0pt" align=center xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;A href="http://users.telenet.be/elgrego/WMI/wmi10.jpg"&gt;&lt;FONT face=Verdana size=2&gt;&lt;IMG style="BORDER-RIGHT: #000000 1pt solid; BORDER-TOP: #000000 1pt solid; BORDER-LEFT: #000000 1pt solid; WIDTH: 730px; BORDER-BOTTOM: #000000 1pt solid; HEIGHT: 167px" tabIndex=-1 height=159 src="http://users.pandora.be/elgrego/WMI/wmi10.jpg" width=719 border=0 v:shapes="_x0000_i1034" xmlns:v="urn:v"&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; MARGIN-TOP: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt; MARGIN-BOTTOM: 0pt" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="PADDING-RIGHT: 0cm; MARGIN-TOP: 0cm; PADDING-LEFT: 0cm; FONT-SIZE: 12pt; MARGIN-BOTTOM: 0pt" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt;&lt;FONT face=Verdana size=2&gt;Which one do you prefer? &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=26469"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=26469" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/gwiele/aggbug/26469.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gregory Van de Wiele</dc:creator>
            <guid>http://geekswithblogs.net/gwiele/archive/2005/03/16/26469.aspx</guid>
            <pubDate>Wed, 16 Mar 2005 05:00:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gwiele/comments/26469.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gwiele/archive/2005/03/16/26469.aspx#feedback</comments>
            <slash:comments>24</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/gwiele/comments/commentRss/26469.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gwiele/services/trackbacks/26469.aspx</trackback:ping>
        </item>
        <item>
            <title>Enterprise Library is -also- there...</title>
            <category>BizTalk - EAI - B2B</category>
            <link>http://geekswithblogs.net/gwiele/archive/2005/02/01/21645.aspx</link>
            <description>&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;A Biztalker's focus is primarily on the BizTalk SP1 release nowadays so I thought it might be useful to post about the arrival of the &lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:City w:st="on"&gt;&lt;st1:place w:st="on"&gt;Enterprise&lt;/st1:place&gt;&lt;/st1:City&gt; library. Yep, it's finally out! For more information check &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/entlib.asp"&gt;MSDN&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;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&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: 0cm 0cm 0pt"&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;Here are 2 fine bloggers that blog about the EL like we do on BTS:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;A href="http://weblogs.asp.net/scottdensmore/"&gt;Being Scott Densmore&lt;/A&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;A href="http://weblogs.asp.net/tomholl/"&gt;Tom Hollander's blog&lt;/A&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=21645"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=21645" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/gwiele/aggbug/21645.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gregory Van de Wiele</dc:creator>
            <guid>http://geekswithblogs.net/gwiele/archive/2005/02/01/21645.aspx</guid>
            <pubDate>Tue, 01 Feb 2005 08:00:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gwiele/comments/21645.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gwiele/archive/2005/02/01/21645.aspx#feedback</comments>
            <slash:comments>8</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/gwiele/comments/commentRss/21645.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gwiele/services/trackbacks/21645.aspx</trackback:ping>
        </item>
        <item>
            <title>The BizTalk SQL Server Adapter isolation level</title>
            <category>BizTalk - EAI - B2B</category>
            <link>http://geekswithblogs.net/gwiele/archive/2004/11/25/15974.aspx</link>
            <description>&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;The isolation setting is fixed and is SERIALIZABLE. So beware that even your most basic receive locations that only execute those very simple SQL statements such as 'select * from tablename' can generate locks. BTW, this is a general misconception: usually people think that select-statements never lock resources. Nothing is less true of course. &lt;/DIV&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;While having a shared lock on a range of keys, in addition to the keys themselves having locked, no records can be inserted.&amp;nbsp; &lt;BR&gt;Here's a sample to demonstrate the effects of the SERIALIZABLE isolation setting: &lt;/DIV&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;Open your SQL Query analyzer&lt;BR&gt;Open 2 seperate query windows to the local Pubs database &lt;BR&gt;Copy &amp;amp; paste these samples statements:&lt;/DIV&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;Window A:&lt;/DIV&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;SET TRANSACTION ISOLATION LEVEL SERIALIZABLE&lt;BR&gt;BEGIN TRAN&lt;BR&gt;Select * from authors where contract = 1&lt;BR&gt;GO&lt;/DIV&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;Window B:&lt;/DIV&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;BEGIN TRAN&lt;BR&gt;INSERT INTO [pubs].[dbo].[authors]([au_id],[au_lname], [au_fname],&amp;nbsp; [contract])&lt;BR&gt;VALUES('666-66-6666','Grego', 'El', 1)&lt;BR&gt;GO&lt;/DIV&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;Now, if you try to execute both queries you will see that the second query will always be blocked by the first, irrespective of the order. You can immediately unblock the process by typing, selecting and executing 'ROLLBACK TRAN' in the blocking transaction's window. Now repeat this test and replace 'SERIALIZABLE' with 'READ COMMITTED' and you will see that when you first start batch A, you can still execute Batch B simultaneously (which wasn't so with the SERIALIZABLE level).&lt;/DIV&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;Here are the isolationlevel-enumerator values from system.data:&lt;/DIV&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;[Flags]&lt;BR&gt;public enum IsolationLevel&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Fields&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chaos = 0x10,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ReadCommitted = 0x1000,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ReadUncommitted = 0x100,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RepeatableRead = 0x10000,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Serializable = 0x100000,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Unspecified = -1&lt;BR&gt;}&lt;/DIV&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;The BizTalk SQL adapter always uses 0x100000. You can check this by viewing the requested locks in Enterprise Manager:&lt;/DIV&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV align=center xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;A href="http://users.pandora.be/elgrego/SQLTransportRequiredLocksForSelect.JPG"&gt;&lt;IMG style="WIDTH: 795px; HEIGHT: 457px" tabIndex=-1 src="http://users.pandora.be/elgrego/SQLTransportRequiredLocksForSelect.JPG"&gt;&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;Now, I believe the above will rarely be a problem in real-life. You should only expect performance problems when you have a lot of transactions and a lot of simultaneous lock requests for the same heavy resource while having a bad database-design (having no or having the wrong indexes). You should also know that lock waits are perfectly normal: a simple wait for a lock is different from a deadlock. The waiting process will get the lock anyway when the process that's holding the lock completes. 
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;If you use SERIALIZABLE my best advice is to tune you sql statements&amp;nbsp;for performance (also having correct db-design, normalization, the right indexes,...) in order to&amp;nbsp;make&amp;nbsp;your select statement execute as fast as possible .&lt;/DIV&gt;&lt;/DIV&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;FONT color=#ff0000&gt;**UPDATED**&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;Is there a solution? &lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;If you try to add the 'SET TRANSACTION ISOLATION LEVEL READ COMMITTED' to a select-statement based receive location then you may have no issues at design time. But when you try to add a RL based on this SQL statement in the&amp;nbsp; BizTalk Explorer you will get a 'The SQL statement must be either a select or an exec' error. &lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;You can add &amp;#8216;With (Readcommitted)&amp;#8217; to the tables in the select, or data modification statement. 'Select * from authors with (Readcommitted) where contract = 1'. This will override the default Serializeable isolation level, and keep the number of locked records to a minimum. Credits go to Dirk Gubbels from Microsoft...&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;DIV align=left xmlns="http://www.w3.org/1999/xhtml"&gt;SQL Server locking experts' comments are very welcome...&lt;/DIV&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=15974"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=15974" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/gwiele/aggbug/15974.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gregory Van de Wiele</dc:creator>
            <guid>http://geekswithblogs.net/gwiele/archive/2004/11/25/15974.aspx</guid>
            <pubDate>Thu, 25 Nov 2004 15:35:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gwiele/comments/15974.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gwiele/archive/2004/11/25/15974.aspx#feedback</comments>
            <slash:comments>9</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/gwiele/comments/commentRss/15974.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gwiele/services/trackbacks/15974.aspx</trackback:ping>
        </item>
        <item>
            <title>About publisher policy assembly chaining</title>
            <category>BizTalk - EAI - B2B</category>
            <link>http://geekswithblogs.net/gwiele/archive/2004/11/23/15741.aspx</link>
            <description>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;I've just found out the hard way that GAC'ed publisher policy assemblies do not chain. When you have a policy.1.0, redirecting the binding of assembly v1.0.0.0 to assembly v1.1.0.0 and also having a policy.1.1, for redirecting the binding of assembly 1.1 to assembly 1.2, this doesn't result in a binding to the assembly 1.2 when your app requests 1.0 (but rather to 1.1). If you want this kind of binding-behavior I guess you will have to use publisher policy versioning.&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Why do I tell all this? Well, I've never read anything about this before so I thought it would be nice to mention here. &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;I also want to thank Alan Shi, who confirmed and explained this binding behavior to me. For more excellent information regarding the GAC and Fusion you should definitely visit his blog &lt;a href="http://blogs.msdn.com/alanshi"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=15741"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=15741" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/gwiele/aggbug/15741.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gregory Van de Wiele</dc:creator>
            <guid>http://geekswithblogs.net/gwiele/archive/2004/11/23/15741.aspx</guid>
            <pubDate>Tue, 23 Nov 2004 10:14:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gwiele/comments/15741.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gwiele/archive/2004/11/23/15741.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/gwiele/comments/commentRss/15741.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gwiele/services/trackbacks/15741.aspx</trackback:ping>
        </item>
        <item>
            <title>The BizTalk Configuration Dilemma</title>
            <link>http://geekswithblogs.net/gwiele/archive/2004/11/17/15168.aspx</link>
            <description>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;I’ve watched several times Jurgen Willis’ excellent online presentation about the Business Rule Engine (BRE). One of the BRE usage scenarios demoed by him contains a sample orchestration that uses the BRE to dynamically configure a delay time. &lt;br/&gt;This confused me since it added another option to accomplish dynamic configuration of business processes. We are definitely facing a configuration dilemma now; here are some of the alternatives:&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;ul xmlns="http://www.w3.org/1999/xhtml" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type="disc"&gt;
&lt;li&gt;&lt;strong&gt;Config Files&lt;/strong&gt;&lt;br/&gt;Use the default .NET config files as the store (BTSNTSvc.exe.config) for your key-value pairs or custom types. You can easily read the settings using the default .net classes from inside your orchestrations.&lt;br/&gt;This is definitely the easiest option. But it makes your business processes host-instance depended (every host instance can be differently configured). It’s also not easily deployable, when having different environments you will have to manually copy paste your configuration sections, you could easily make mistakes. I guess there are no tools available for the business users to manage the values.&lt;/li&gt;&lt;/ul&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;ul xmlns="http://www.w3.org/1999/xhtml" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type="disc"&gt;
&lt;li&gt;&lt;strong&gt;Business Rule Engine&lt;br/&gt;&lt;/strong&gt;Although I have the feeling the BRE and its terminology is not really geared towards this simple functionality (storing key-value pairs). Most of the BizTalk included samples use schema-facts, some of them use class-facts but none addresses the config management purpose which was demoed in the presentation. &lt;br/&gt;I’ve tested a couple of things myself, including calling the BRE from code inside an orchestration by using several Stringbuilder instances or a Hashtable as the argument(s). This seemed a very strange solution to me (it’s not easy to define the rules/vocabularies when having several instances of the same class).  Another option is to create a custom configuration class which gets and sets the values, this will simplify the vocabulary. Or you could always use the classic approach and create a custom schema to hold your configuration values.&lt;/li&gt;&lt;/ul&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;ul xmlns="http://www.w3.org/1999/xhtml" style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type="disc"&gt;
&lt;li&gt;&lt;strong&gt;The Configuration Management Application Block for .NET&lt;br/&gt;&lt;/strong&gt;I have no prior experience with this block. Is this the perfect partner for BizTalk to do business process configuration management? Until now I’ve not heard of any samples/guidelines proving this to be a winner-combo. For more info check &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/cmab.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/cmab.asp&lt;/a&gt;. Anyone?&lt;/li&gt;&lt;/ul&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Finally I emailed Jurgen, who appeared to be a very friendly and helpful man. He pointed me out that the BRE is in fact not specifically targeted at this scenario and that, in general, it focuses more on complex types than on using value types (especially when multiple instances are evaluated in the same policy).  &lt;br/&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=15168"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=15168" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/gwiele/aggbug/15168.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gregory Van de Wiele</dc:creator>
            <guid>http://geekswithblogs.net/gwiele/archive/2004/11/17/15168.aspx</guid>
            <pubDate>Wed, 17 Nov 2004 04:25:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gwiele/comments/15168.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gwiele/archive/2004/11/17/15168.aspx#feedback</comments>
            <slash:comments>12</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/gwiele/comments/commentRss/15168.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gwiele/services/trackbacks/15168.aspx</trackback:ping>
        </item>
        <item>
            <title>Executing pipelines from inside an orchestration: Introducing the LOOPBACK adapter</title>
            <link>http://geekswithblogs.net/gwiele/archive/2004/11/10/14737.aspx</link>
            <description>&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;Let's go over some of the out-of-the-box options for executing a pipeline from inside your orchestration.&lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;It struck my mind first that the MSMQT adapter IS in fact the messagebox.&lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;OL style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type=1 xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;LI&gt;&lt;STRONG&gt;MSMQT&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;UL style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type=disc xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;LI&gt;Set up a schedule with 1 MSMQT send port and 1 MSMQT receive port&amp;nbsp;sharing&amp;nbsp;the same&amp;nbsp;MSMQT queue name (for example ' loopback' would make a lot of sense) 
&lt;LI&gt;Create a correlation type and set based on the my MSMQT label property. 
&lt;LI&gt;Assign the MSMQT message-label to a newly created GUID inside your orchestration.&lt;/LI&gt;&lt;/UL&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;Try to&amp;nbsp;do a send and a receive&amp;nbsp;and you will see&amp;nbsp;that&amp;nbsp;your pipelines will be executed. As a test I could successfully parse a message from inside a schedule.&lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;Another very simple option is&amp;nbsp;using&amp;nbsp;the HTTP adapter, credits go 100% to &lt;A href="http://www.traceofthought.net/default.aspx"&gt;Scott Colestock&lt;/A&gt;. Scott used this as just a temporary approach to get past this problem, and then switched to the loopback adapter below...&lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;OL style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type=1 xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;LI&gt;&lt;STRONG&gt;HTTP&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;UL style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type=disc xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;LI&gt;Use a solicit-response send port&amp;nbsp; 
&lt;LI&gt;Use bogus HTTP page that simply echoes the content back.&lt;/LI&gt;&lt;/UL&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;% @ webhandler language="C#" class="LoopbackHandler" %&gt;&lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;using System; &lt;BR&gt;using System.Web; &lt;BR&gt;using System.IO; &lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;public class LoopbackHandler : IHttpHandler &lt;BR&gt;{ &lt;BR&gt;&amp;nbsp;&amp;nbsp; public bool IsReusable &lt;BR&gt;&amp;nbsp;&amp;nbsp; { get { return true; } } &lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp; public void ProcessRequest(HttpContext context) &lt;BR&gt;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using(StreamReader sr = new StreamReader(context.Request.InputStream, true))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StreamWriter sw = new StreamWriter(context.Response.OutputStream, sr.CurrentEncoding );&lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sw.Write(sr.ReadToEnd());&lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sw.Flush();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sw.Close();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;} &lt;BR&gt;&lt;/DIV&gt;
&lt;UL style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type=disc xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;LI&gt;Call it loopback.ashx for example, use IIS to host the page&amp;nbsp;(for example &lt;A href="http://localhost/loopback/loopback.ashx"&gt;http://localhost/loopback/loopback.ashx&lt;/A&gt;).&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;This can be easily explained because it requires no knowledge of correlation types and correlation sets, since you are using request/response ports the whole way. If simplicity is the main goal then this solution is probably superior to the MSMQT one. &lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;OL style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type=1 xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;LI&gt;&lt;STRONG&gt;Custom&amp;nbsp;LOOPBACK Adapter.&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;I also had another idea.&amp;nbsp;Why not&amp;nbsp;make your own loopback adapter by&amp;nbsp;writing a bogus solicit-response adapter&amp;nbsp;that&amp;nbsp;returns a response BizTalk IBaseMessage that is&amp;nbsp;a copy of the original request message.&amp;nbsp;Recreate&amp;nbsp;the original individual message-parts&amp;nbsp;and&amp;nbsp;copy of the&amp;nbsp;request stream to the response stream.&amp;nbsp;It's very simple -&amp;nbsp;download&amp;nbsp;my &lt;A href="http://users.pandora.be/elgrego/Loopback%20Adapter%20MSI.zip"&gt;sample loopback adapter &lt;/A&gt;here.&lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;UL style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type=disc xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;LI&gt;It's a custom coded VB.NET non-batched but non-blocking (async) adapter that really doesn't do anything. 
&lt;LI&gt;Uses limited memory-footprint, streams to disk.&amp;nbsp; 
&lt;LI&gt;To install use the MSI package. Don't forget to add the adapter by using BizTalk administration... 
&lt;LI&gt;It auto generates the transmit location&amp;nbsp;URI (in fact it's a GUID). I also added a Boolean property to specify&amp;nbsp;whether you want the original message and part properties to be copied on to the response-message and parts. &lt;/LI&gt;&lt;/UL&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;Here are some of the benefits:&lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;UL style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type=disc xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;LI&gt;Trigger pipeline execution from inside your orchestration. Just define your outbound and inbound pipelines and they will be executed. 
&lt;LI&gt;Send pipeline errors can be catched by adding a deliveryfailure-exception handler. Also&amp;nbsp;adapter exceptions can be catched there, but since&amp;nbsp;this adapter really&amp;nbsp;doesn't do anything this will be very rare (at least I hope so). 
&lt;LI&gt;Receive pipeline errors can be catched by adding a general SOAP-exception handler. 
&lt;LI&gt;Execute mappings from inside your orchestration by defining a map on the inbound and outbound port. When you use the later, mapping failures&amp;nbsp;will be catched by the SOAP-exception handler. 
&lt;LI&gt;It's a black-hole adapter if you want.&amp;nbsp;It can be used to ignore&amp;nbsp;the processing of certain incoming&amp;nbsp;messages. Make a send-port, name it 'VANISH'&amp;nbsp;and subscribe to a given message-type or receive-port name for example. 
&lt;LI&gt;It's very useful for doing in-order processing. You can for example receive messages from MSMQT through a pass-through pipeline (which is recommended BTW) and &lt;U&gt;process messages in-order from start-to-end while doing exception-handled parsing/validation/mapping by implementing a serial convoy&lt;/U&gt;.&lt;/LI&gt;&lt;/UL&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;Here's a &lt;A href="http://users.pandora.be/elgrego/Loopback%20Sample1.zip"&gt;sample&amp;nbsp;project &lt;/A&gt;that demonstrates some of the benefits.&lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV align=center xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;A href="http://users.pandora.be/elgrego/sample-loopback1.JPG"&gt;&lt;IMG style="BORDER-RIGHT: #000000 1pt solid; BORDER-TOP: #000000 1pt solid; BORDER-LEFT: #000000 1pt solid; WIDTH: 540px; BORDER-BOTTOM: #000000 1pt solid; HEIGHT: 571px" tabIndex=-1 src="http://users.pandora.be/elgrego/sample-loopback1.JPG" xmlns:xd="http://schemas.microsoft.com/office/infopath/2003" xd:inline="R0lGODlhHAI7AncAMSH+GlNvZnR3YXJlOiBNaWNyb3NvZnQgT2ZmaWNlACH5BAEAAAAALAAAAAAbAjoChwAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBmAABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNmZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZmzGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb//5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZAJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwAM8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8Amf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+ZzP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP///wECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwj/AFtdw0YwGkFsBgseTIhwoUOFEBtGZEjx4MCIFyViy8iQo8WPBDOKBLnxoMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3MkzpTSfQFH+JDgUW9GjB5ESTcp0aaueNJUabTpV4cCKEx9qZPiUYFdsX5/+fOoKbEmoaNOqXcu2rdu3LrFu1Sq3qEm7VO9SxQsX5te+gHGOHDj4bODDiBMrXsy4seObfwFL5VvVsEHCDQ1qdrhZocGwDSOHxFb2qenHqFOrXq2YIWWTcjuzfitwtuKRYK/wwdLqK0PbwIMLH05TkCA+xokrFi15r3OTV0vGpqsVNMHjgqI9NS6ItNnfysOL/x+f+HerK4lMn+86XWjQk5SlrmYOfMAAAW4HJkd56gpJ8gAGKCBb+50kSCDE3TdAX/StNAABAtgHk4R6DdBChPi59OBomG3m4VyyPfXZQYJ0dZqJ3Z024IostuiSXa10p1KJnmkUEgH2CeDChDui5AKGC2oYJIPgtUQAAQTh+NKRKG0ok5JtXSRIRkMGSaOLWGappUn+YVMllw0exCQ2UBqJ5ElOxpQmXGGm5OSb9525IZI43mdSmT89mCcB0ii54IP4XaPgggblGGSOZ2bl1UG9peglAU89qN5TGW1p6aXEGWRKK4XKmWiM1BGlZJ9BQkihn49GWNSaZJb6J52tBv+JYaKmZmjqkDO1idKYfp6p5JESjmnSg/aV6iuddZKZqJivDusrri5d+eaZ18QoTaWYZqsta1d6eWiQMbbJa7OtKhvssgQRe+qx5i4oLLOPOpsktH7NBOiprsY7L3yPEqvvnFXSKkALD0ajpGY4XihhRSMuGg2ND5blpIg06rrtxRivxVCXDRHgwk8eG+RfUbLFKoCn6dK5oMTozmvfjlD2Cm+6F8p80L2s+oWtmSeNOWeiOd+pcpLIiimnscoKTZN+1zIZzYYZXdFbxsOxIsYEWIuBCNXKdVtuueHyrHTSwr67K5JOMlmmz+yWmTROFst7Z75pur0ruXqO+minKRv/jKvdiprlVSumgKVkK4eDNXWRXKPWgA9bP4WIGA00DpxBJSbkQpCbkziLiFqVuyrKZQZ989Dl1p1v6suaHlPcN9Nb7LfDUpju7LEX623suVOIu7e6vy7j11AaJw3slvd1yASzqDTBGMnPBuru1GNTYiu0sGR777fXjuvsVeJu+/i/l/97rj19VRZKXxXF3PreEQR/RmUZBD9D92fGaGgkRjOQK5AiDQEG4h8VRa8xiMABQWQRhkWcgRFhiAVBuHCIAzrGLhC7GaNo9JOSlQR+JmkTc0Z4EBCmhISLggzjkhe1EV7heMizIFtusBEHLiIMZzjDDc8wkBs0T4aokZpP/6Q2NSAKLjGTeU5DolOj9swlhUe8Qrd6U0Cz7MyIcJkAQRjRgzM0sAc3XEQXCaJFLJZng1eolHEMWBclJnEpcKzMfMw4Gq944Qp4TE5vKEXHwCACeofoQRh6QMhBGrIHhsDGISrYx8W0gg94zOMerxi9GPLkjfyq4xKloz+GgeiIoAPNicxiwEa2ZQxbm0APbhCGG6yyla/UIiIYacq2uOYko/QNZ5JXGyPipiRsrGVffDiLGxjzmMg8JiJmoUBhLuYa0VihDC0JICdaB5T7K42NnIkWH7TCEaoMZw8mcANxTgARraAhN9nixHbykgVXgKc8I0nPetoTkpAUhG6kyP9P7CCHOwANKHdOMVBBIKJEJTpFuNCJzj069KGtcMUeadGK45lFm9lb52JucA1WJPOjxtyaOjXaGLIoThoShahKV9qbQbTCpQY9BUEFStOaGgc5yNmnPu3J057iMQpXAKpYsAnFaxp1f1B8TX5IctSB5JKURyQpT1CJDVWy0pVXfSUNZylVqBikg/oLnFwUI5WjFhWpRMXm8ShpOY9osiNdTcsisSEGQgrSroMsJDb+GNe+poWal3QjVS7zSXdGxKxmGYt3+OhXnWjxGmfo4he9KMYzNK+MjdUJV6rD2YjAj2SDDW0cpVnSPv7ytJnViSwUKAsvUraBOZQFNqia2tr/2gSwOcGkXt5akuh8qIm7BE3DoGrSUdrWJlrbCATD2MDmpfO4NrllREDLxLA2rpdA/CVcIwJdm9ygmdiQRSxkS5AxcLS76HUJbnWCSalUpLqG1QhiizsV0KVXJrOQRQPQiQ3nImK/P7yvTHQJxc0eNiWMSzCC86Ka9V4KtZpkq4BZYt4GTKABNxDDhDfMPiQymCWF8W0nC7u/4YZyscSNKofVC9UVwyS+ngSPhLfEKSy61TL/cXFMhqdjDjsYJ+0NLXynAmO0HlWx2pxxj0m05JgYWL6dhfJoRVsZ6W4zNT/eEoQNo+QmY+MUXt5wlqOixN3iuEMjBm6NhIvN02iz/5RhRgmP43wSK9uZkzWyHHZlqF2SkJbO1gN0esdckyBP2SpPTLRc5otixf7Zy3MWNFqfTGm0gvbQVaayUktLxy3/UtIHATOoj0tomcinJSEe8W/T/B1sjujNKR71dWQt1lCxWpMX27MzP03rSNM6rm1yRSKwMAgsfOEKxT52spFtbGYru9nLjja0p/3sajvb2cQ2draLnextZ/sL3u42t4nthakh2Yq/9rWkn0yQQRTbC1iAt7zjTe9527ve+L63vvPN7337u98Ah/cg1A3FE7rUgq1IRCJI0uUmi/rXKolRRqPnioOfcCV7BCItJIpiOEua4HH+aqZBzrVBRJySRf/UOHYfHebpBRjiBEmPGRfe4RnR0QuJbbWkGxUuQShU1gSWORZpjsuVmNyMR+c1oGPk8zXC3CRHx2LUQ7iS7gSABVd3SQBYgnUWDAjnTx01QqcH6tgQfTxXz3pLts4Stsf8hJQ0eQC64vW2r4TtrXA7eRKhdFBz5+knmbp48K73lBT+JAHQu+ALfhKcu53tXSfI1ieP9YtLXkCOSjKtw/ZrA5998AeBvNonj420390kn2c81EsfemywwDReT7zk23R48SQ9x6AuHOBXD6DHu940k2f73O1+kMWr2CRW7/pTfO974gsI57AudYsE8e5sC5ze1c8+9rcPb0HQ2/vd/37/vL1QffBjwfzoF3/4139+9bd//eWW/oBETrLUKyftr2f95Zt/+oPYX9fFV3p/wXyt138DwnehY0QVJxoTZxINeBAPSBARiA0TWIEpYYEogYEnkT3CJn9aQnLAgXeXt38FaIDYYHwN4niI13r8hxK1Rx6O4mhSl3OMVms2aBiGJkd/5YEBEnQBUngEOIIm+H9Gp38mYXpGWHp1h3j4JyC3h2sWJHRDJ0zGRxyHh4R6p3YuKHvtZnkp4Sg1p2Ik5HHhAXaxJkMyd25DZVzopkuysWrblRo4J0Nm14NeGBkN8hf/F3c3gXWJV3ktgoBQKENVeECCMIFGVIiW0nWJV3so/7gSc1gTbMgimYduQJQIJlZf+6NYZ1VgtqZgLJGDZuYSOLdpGeN5VDOJqOeFKKGIlvOEdOSKbLFH7kZ97nYK7paL1KdQPNiKJoR0sciKBnJzHXd8ySNzp6GGmpiMrcZmnnQFgRAIrBAIgyCN0SgIqxAIB9IK0WgF6hYfNwGG0SNyFGF/B7SHKiGLXCOIV2ZB6qgWgpAHrGAN1IAN1GAN9GiP+FiP1PAHMbCEbvGOyQOCJSeMJhGJRhSDOoeGTsU/I6JYEEmDmtiJZuEfgLAK10AN11AN1YAN04ANHJmRVZAKf1B3VpaDpliKQOSDM2eQAQiMXDaDiSEI98gKgJCR+/+oj/T4B9NgDYIAkG0xCL8ok0RJdTZnRmaoitEjcyNyGk0pkdqkWAbER19xBdZQDdYQCKuAj1iJlaxgk4EACNUACCzQdzwhjslThy3JPnw4c2YZPSbXcFAhCKzAkdYACPPIlZ+zi4JAClUAlGwxCIgIRAKJMY+oEggJRJXIWGh4YCPSkJnIiRJ5Vldwj/m4BfOokXqkOCxgklqBkh+GDSpJh0hljkvpkl0Ik3K5LYLgBa75mq7pbn0xJRzpkX9QBbgJCDIyC5WzV+AVkEOZiMEYhnJGjNF3jk+FbE95Yk55UVApkSJzj9dAkqlgDavQDHlwEbNwYZ+DCHCIe5kUnrP/1ovKQY4LYZrHCHfpSEfsyHLbYnI5EJ/ymQPUB549IQjQQI+pUJ34KAs+hAhdgAMWhgNdQJA7UZiNY6AZc5gpkZgypJD2lZ5jkAM/kAMTmgPocWKP2Yz8E5FrqIlppAokiZVXqV/XAKBY0wA4IAMyUmRxhEmjiXAPgZ6WQ4TrqRKdCZg1sYQ6ChM9ihawuJqWAp/zGZ/1CReC0AypMAr8iI/T8AcGMQu8eU5kB5y1hKA0gYQ5sYQv+BJdmppFd5QokX+t8KMx4XaABYhukZQtxjUxwgIL1wUWOqdjoJwc2pyjtJyaGJXYcAWAUJ0ZeQ1XaT0VMwGS4wMxtktxCBNo/2k5arkWW7d8OvGlMMGFK4GOKWF8+ecVXpejj9eZBNGpoQqIf+h6oyp6oBpxlMoT7CikLXIeOcoC9SmfFWqkw3NpMRmOAbACK9B1vdqI8NRffXoAB9AXgnmlbAGUW9eZWpijoap/kaeEsReqo+esqtoSDIoSDpqErBep3WoWlAcapCep3jqu3HqESOqcjGkp0hBPabeZCTdbdGqhGeqQHDoiG3piDSmV+tSv/cRP8YRHXSBFnniDTlQUMXpA1kGjOAGEAggWnQp7pYemEPuwrEemsSexKkGpNpqphreCzMesk/cVV1d5QfitQuiCcAGLl6JPzCpFKbd6FDqzFXqkj/9hCjmqe8YanITJFg4bsqY3fKNqsixYtCm7giyRrcOosuhKgKfhe+RqtCh7riXYFtB3hgMSI2mHR1MTJonwr/6KifeaYnpatuq6p94hla52RN/5hpsEhY3aOOZZEAx7Ez/LgiridmRKeiTYt1R7tCiBqa14QjwqhHxrqvx3uIprhF26qjvRnivypl0HszHbEsbhBbaIue4WiaBYGW8ZHlhKNQpKE2V6EPl3sovrt4vbgkhbhMTZeHenpvgHe1cnqZxqemU6rsrHuDiqhQQCneIBqyVbMZABFomgTdqEr2OrocsLTB0qkR5qZJP2ibaWsJU0o22Ru5v6h58qfEfoh5L/N61K6L2AK3mWmhIdO7gRl3Jzl3IZF1UONTiC877XhEuVqxZBOhyz8JMvez1A2kdCiazZy77vqzgmEkL0qyL0i1b2GyZKi3xnChj457tvwaZk6Bj6tLVVxIPI2LzKy7x5SrYppoxq+6ENuShD5rayoR/GSDWP2heOyxOMqKYtIbiB9zqAAVGB0arzwb+dSbnkGYC4OsSfmYCDGBzHakqhCzc5bMBx88AHsa2GeLaumj6tIANdxwI/d8Fr0cF4aq8gDMZiDJltOJGTecaI5UTWy0ulyZ6oeYLDWcXpE085SkRB7BJxWRmmqC0BrMTDGaZfaJxYSyBXsLWOcscw4cUp/xbGykt1HwxVT6kQo0TCaXViajZiccs1c4sQdUs1Nsx7U5jDdHx1XVDAq2FyhEXE3PUQsaoRRaF0ZtoSsSwTS4wxo3sxUEwQUowxw+Z9xdaawzYI5Eds7vkSkluyXTscivxUjAyuzhwZmbgoQ0XGAxG90lB50UuRcrHGlkN+wyzMv5xtrXmOb1zL0+cdHCia6BxoOQGrOXo9iAwVeZzKJXFqHyuE1up6qWqtovqs+vyjedcTfUyIOJfO8kOBpGHOLJLL7JyeP4ADOYADY6BAWPDQGCqFMuGuWEewXCwcy7zIIgw6vhcNGFumT+vM5prS/KNN3sqnVLk/J9wQmezCgf/WHQ5g0RIN0TgwzqfJljc6kNhQpPEpmvHJBwLpsj98PZ/TIqgM05lWzUUsra/3EyVLtAVR1ZNXLREr1Y0r0INZkDkwCLNAAUKNoQq9Igy9yzAcrWnxpQs3oRMN1wrkBT+AHmyltRtNRC18gMwM0n0dqYTnlMNnEN4qqQE9fIVdxlS9iWpVyVGsg8mDcxbaHRQQ1xa605HGiGsxy4CRvjfMGO1bum3NEt1R1kPtBdooZ7EKxHzMSdHx2lMB1UsxFHhXd3qbhLdd211x2xsr0DwL1vEp1mQ9n8jmgnvE2VmaGgx9y6NtuLIbeYU7vqFnsjS8ihMtp3B92dazcMLbmfD/yst9Hd4ptnWfwQKEXXm9gbu7S96sR7tk2oy7W8LLCLzbsdcYgzlBDdc2nd08ja743KxBW4BsHXml6hif/JKL0Xyv1xsRm968u+ClC+ECSB+lLadljQN78JMBwNqvyLbOG9N8dGkVhVQFnMAH7BVcMTVXZMo4cdYu8lJBPZ9eMAvzabMlCHnH/XsO7nsQ3uDLd7+JkdaNUdW7XbKry4IiO7FVG7jyatlxvdNe0MFRKN5U7tea+JAePLZYXZbNa81nzM2pOM6X/QM4J9GXXSDT/dzMyrtAS91LzhieDcqK0b6PF7+oO+FdW6bia3OmnQN7MHDMjSmDcC3Q5NqbRFj0/yzberyD8YsWx/ugxS2fkl2kxY14Dj57GXfnoa0eoBrDK/vGgQ4VhIfPbC61AHm46NvkdIrZdYrRBzQLJlflsh7SYvzIZhvGX+zSjWYUMB7PttEfyUGhZR6f/O2gtW24pa66jILqjXHgYDrnjOJ1eo6xaz7tkZqjT4HtENujpT2fcvrnRuriWCKFWwYdNDboX70t51Ei8Dnp8mnhRs20FTvtsFftnrrt+aftev4YQs4YI+S+YCGCosQof0EfC/fQCE+fgoDwdo1FveHN4AzxEh/xFD/xFl/xGH/xGp/xHL/xEB/rFgSz6kzZCI8DFfrQaF5wJoKHAS3NRgbwjxHnCP9uhWghCHtwBTcfCNBoHDi/843kChsHFq4A9GVRGkMf9EZP9It19EUv9Eqf9Ejv9FEfUU8v9U1P9VPP9Euv9Om+LVzbbjx/8zkPjfyk0J4+G8t9QOPmy9T3zeTn68F75fQt9x+K5Scmg3U/93hP93y/9wf0Tw0xzK05boSPBe18gOrpsdebQlII97vXSMbRBRsYP3B80IT4xmptORDajksnaDxfZ9i7loCsvkUJeA/XcvqkK+KOJWmPlJBs32EW6seV+rBBF52cMc5e+UP3uYAm+7XVr4z6x0bZoHS0mIYhdnG27igkOLfPy+Ucx7t3+j12HkIEE6vvIq2PRVerlJ7/H2YijxJw2PwXk/vXH4i8T2e+71fALxPpvyX9jkWbX8w61v5d9fksAfHERn3kxm30LyAy/+wAgU3gQIIFDR5EmFDhQoYNDQ5yGFHiRIoVLV6ceArjRo4dPUpsJegKw0GtaLXC1sqLq5QnU0L8GFNmQpgFUSL0MlPnTpwpfUbzyVPoUKIKBRVFmvRiyJEKgR7F0QVHyTE5xkTNISinUq4MEx1sdQ1hza5lGyYSKzCtWbZtIx51GzepyJsLIebAsTLHXr45rpCVyxWwwLoGE7EMLPcrSpYo1yaGXBZuZModT13R2DDn1FZXPVvFIWjyQBalWVSW+dVgYYOCWKMm6mry/2PYtYdmtp2bYasro+1i09u371+DAVodP6374uCgCRMN8gJdenTq061Xx35de3bu2713Bz89UXSIjH2ifK1cvcPjrt0fXx+/d3qDT6niuNrF6n6txQcGIK20AE8zLTlsTBOowAETFLAr1WyibTVXGqOlsQlbspDCDDFM6UKTNvywQw1F5LAVDyskMUQTR1yxxIHWijA+GXcTrUb6ZqRMED5uPGgQV37gSz/hBBkMQIGMZOG4VghUEhvjkDtQydOeXDJK+JKEUjCw2JJmoC4F+hKbMMMESqAysTkzzYHUNHOgut50U0yfukTpTBzvPOg93/DMUTSJTInuih/wA62qq//8LCgA025StDQAFf0vUiOdpPRIJw1slIVJk3qQIB75BDVUrmYR5BTXRO2zi4lMKGkQQYXji7hEj5uUSvSWnFJSXS1FbkolP9WJOWB1GjMiGLERSyyg1Fx2TTSfJexZOIEyD72fmkMVz5DgyzYw0ZqK6IresMnhMiAN5W8rgozkzdIE3Xx0V0prhbfSAx0EK8ZujX2xX7X83RdUUwKWi9QrhnUzybtycBXIvYTko8iEU1r0wNJQyhS9iumtGNckuxKWSy9HBpNkaE9mE2Vn24y25ebgpBPZjRoskObkar45ZwUtZnBnm33WGUGeLQa6Z6Ft9uILLAahQWnoLK5u6ej/pB6EaquhS6Rooo8O2majvd4abJwZ/DrnsskO2+y0yaYLYYGu4AM4cgdNRFAcgBwUUU/3Tonb9o507c2QXL71zVPxXY1gj2LU16IAjHw8csgnl/xIyiO33PLKnbz88cw539xz0DHnXHPSRX+8JFdMMrEViFJn/aQKZUdv9thNEiT0zic3HfXdP5fc9955H1344okPHvngLRdpz4WqxMbVQK7o4q8rpp9eJOYm2jS+kLsKk6DwTV4LqGSdbbbN9J+lNs72o7W2sfMuYuHgmwJvEpvDf93//l/9J4yS+icQ/HGrf+25iQH/R8AECrCBDMyJtVASwcFdJBEIDCADf8XA/wBisG8azN8Bt5VB/S2whB0c4QdLuMET9s2DCmSha+YzkSQBZWrWWVoOq8YRt1GmU25qnOIScqx/FVFmGxGdECkyGNcNZHsOcZ4SOyKaHuoPXLSghU+yOAgsalGKv0mcWYpVMjLKiWUqO2PKUgYnwskJJTGzE/e690WG5KRm11CXuiryQzpupDcGisjH0igQPvYRIYWsoiGJkkRFKmQQ0fhfEwUyGNOMRhANGkgUG/kWcc1xISIB4ybHsiXwmYwhxzrf+prFrJPV6WXSwob8rPW+ijBSlAaJ4HmioS7fLOlJBbkkIAt5S4Z8S1PcWxn70DTMWyIyiIok4hGl+cyG2P+SmE4USysgGQ1W1ISSxlkNpDJ5TZCA0poKGdcnyVmQ75VljGaEJ5mSqcZ5JpONr4xWzKiZkMOtcyBNy6HTaDAQPSYInMAMwAEIwkx/ugmUpWOPIOPUMoZuEpENxWhbTjKhjboii5M0iKb21ApxEjCj/DwYCRvCAk0S5ImibKdSxldG8QHMfNJcJfpURktXwil+80skacB1Un4WxFGvyd2mKupP3vQzItDTaZqWqkhnNjSaV+XIOYnqUqMGADc2gWpLmTpDtDHkoMXMaEy58k621nOQb0UjPl8ZMzhexKlbxeWsboTJqV6TrJ9bSDrDGJS+9vGieEUsWwCDq5FqalL/YiUnXcC6Ure9dJNqRco7T9mvVO7Us2fqqft8IstrBTVBQ03sOD2lKaQ+ri6F3WQX9DYRcR2EldGA7Rer6k+sGnGfC9EqYr850pLqD681OggmEQJVh1i2kZhNSlvLKE+40hOu98SuG6VJkeDitaAHOmsmE7rQrX4LId11Eo/YyK11spdvqdUJeolapPASpriQ3SRT6NPdh07kgu0dpmk3MlN41tSINy2fMtXn2Wm98qcSvIh8T0rc2gqEVI4l74RTel5PkuZGOW2TiagzHqyN2MQlRrEXSKziE7M4xSuGcYtj/GIZ17jE7vXUb7/Y22lmtcPCBQtrWGjSjF6mpcHt/69FWtch9KyOyU9ecpRXt9Ems87JraMyk7OMZSlbucpbnnKXY5kQAXNEuvF0a1yt28qJznVO17LIXeH7XYnkVopN5VFwf/zee645jjQ1ZaCni5oyw9fQEnGuUTAqDXF9CscDEeyhQaIeVMqsS7eNqmgbXK0xh9Yi9ZM0kS1iZyH2Br/LlShCML3gm4IYYF8Mi1UBxuMI73mrXiBSdHI9iF33Wjq5bmjzVgpI0pw61O8t5aCVreY0rzm7bdSnXQudX6BWG8LW8qd5qzlH5j6vzc+Wa1383OxknvnMMpn2sdW9bjIn+XmvSTW7vZ3sghA4TAk+H6szveBNx+nB8/s0av/lfWj9YqTCDHF1whW8cLHY+yAO102seTtriiPR1uSsn3JjQuwvSjaQxI73wMkssmW/c9zVtee340RXONfy4sRMknt0ckxDNlWOBDk4e1TeRp435+TMPiPE602UdK9bwrecI9eCtqDlvhxVeL55pESuc+VUuuGf3XdpNd1prtOSu04XpUhAHaVTzcec7hmJ2QUudTr+NSJJDLlTsp5TZS3ciLDWsRR5HM1aJ7Y9uWJ7vCzVqCv8GOygoqLLCcjxqY9cjCY7889/Dm6Y+STvwCy6FAXvrnlJ6j0JOTyekKv4KFWE8juXq+TJXXLIC9ojmW/8Vjdvr81vnvGcF+LoTY//EnfH3vFrfXjwDyyzBKty4c3qN/xGW+2AIzbj4xL7SJZ0hY8pivoauz5CNHX7p/e+lhVRuPHF3y+hG3joEb+8EPf+aseFXpECzKTfuGWcfuYvyLCvjMc/XT9jxx7/EjE3k1E9lOu5ynujlqMIOWM3W6O+BuS+bmkbjHicuKO6cEO9Pls9oDuZ8nM9dPO9D5wIsdKT/6sMI+MhlgLBhiDBnbA6OVk1ZQItWIqW9pEf+fE6Glq7FMwvt1OyHGyIFwy/k+E7IZK4dVq/u2s/HVynRusIjVPCwaK3ACRADVyjC1w5y+u7J7wlU5uio/u90ytA1BtADZTCmVhB+PJCLYTA/0jDCAxTQ1ICPoMQOnzDqeOzQ56SwWojLQFLwzcMFW3jCJHoQ4Kgu5MZhEQQBBJLRBVbRF4bD0RUxEdsxEWERF2TxEhkREysREfMREvsRE7cREqcxFZgqDOcEcY5iPQrDvfzwzvhDR/kLohCNx/hsuOgspOwxVr0MlzcRSW5RSVZnTA7jtXJxWH0RWA8RmMsxtZZRtehD1NciDKkLirMwNNjOVeKM2jcJB6ko4JrQoxhRT5TrXXaHm1sRXIKieYxx8jQv42AHgV0R8RYJ1o4LN3Aqkubu4XzNK2LGRvEFhycuvbojYH0PsWBum/siFZjn0T4KH/aLSOsuB6zuHXjn/9vEQlxEQk+oKJHy5aDDMQoCJCZ6L8vgq7Mar1lG0Nns8J8wsJsDIxWkAZrsUiNNLXmocka6Y2bnMnm2cmazEmetEmg1EiLJEj7aaqixEkdAcqf9EmlbEqdDMqnXEqnxMmYBLhwgcfv+49w3DlSk4vnY4gHbMCBqMdzbIv2qJG0VMuB5AOkhBu3bMvmYUu4pEu5zEi3pMpvARemYEq5jMui/Eu/rEvAHEzBtEu1RMyNRKoN64hIy8rlwJEAQDvgSgi1EzVkiy7hO786zDcYzEc8xENriRlsq4ixQ4q+xMvUtEvVZM3VdM3WhEtBsEpPeUXYfM3btM3cxE3XpMn7mS3/d6RA01OmbPLKuKAXbBjLe5kS6ssTqStLckJFg1DFROHKcrLI61RK7BxKoUxK0djOmvzOGglP78TJvzTPgRQXjAwchUDL2mzL87zL+ATP7sxO7tRO+hzP+pRKtYwJNnTCQIzMSLFMRcGYrLwYkILCOEQzlMzAybPCazyZryO63ZxL+YTPt7TQCsXQDb3QttyWEXwPmLS/3XChmPzQEx1BDe1QFWXRDHVR1oyJWZijQbSJiSpOtwiABjwKejkoW3ON5HjOc6TRchrKthQXU4mkJFXSJWXSJmWhc/sIc3PSKaVSJy2Vi+zOjwi5IXWkyJQ52gNTs0LQGq06isNHfUNT/62bwTfjtBuUCC5VwcM8Dqtcx4A8D2kgysfkpIPgUoVclhtti+7hUbYLKefMF1nzrYjMwp1oqvU0S6HgSSbkiLiDU4QYycTonumrvkwyzdWS1JIsCmls0FENQ2hryYrQ0424yEcluhlKx0DMwUplI0Bli5E6nNGooNXopyBlVZ7gSIO8M0n9R8fhp/9LNFRxQOZsDTiUKc00PzosPqzjt61TvgOEsObzvTplCy7cuEvVuZwiRUMawYPg1VuKzoKYznWpTqLy1vUQtpjoNqOCxThLK2ZV0DJMyTSzxlf6s7fQVljLvYI0uCNb11nNqHLtVZFr14gTCQLDiHjFvJk41v8+AlXK4DEg1Mc8DK1+VNPSnNdj+9ek8MaYqC+ZyKk/PdhDnbhEZVkJXNcJI5h29AiBFSqRrNcEbVbWK6N8va6VZNPtijr/CxiPfL3g3Ep3tNGUxdlWrFSY7Rai9Qg25DCJzSjnCdkCc717c5bODEJWSr5qG81hfbuXzairHQrq+T+ScggudSXko9VuQdhNOleCSNej9b2FRQ0d+SotRZimXVaMqtihENUpHMN9bTCXzNZs0b2YkFnQK9ikxai4TVh2w9vIMJXKTQijBSbMfYibJVN7jEiMXZ993Njl20eK6FR5mwUxaYXVdVj1YIqdoFmT9UzcUloIQVSJ1N1FHTj/Z3SNiYWNxvWI0EvdKRqK+vnYlSKNi5jXwBWKwaVGwvVZAwRaiUhVymCBa8je7dXe7uXe7/Xe8AXf8RXf8iXf8zXf9EXf9TVfKLKfmRtJWYXcnYg5iEUml6EhW5Pcya0MK7iCaxCEa/jfAB5gAQZgAybgAy7gBVbgBk7gB0ZgAWYFGZrgCGZgCL5gC3ZgDcZgB7YChkAEqS3aKvrNjgBe2poMUEpPcEnPt0HOt6mwHE07GG6KFeYnH7VXk5RDzYTWz2QwagVb5vPY+FAgDmqhWwWgI05iJDZiJrYRJW7iJZbiKKZiKBZbT+HGqOXcSQPXtz2vRHGSyRxQQZpMycQY/+Qs48n8YoXYX0OaW/YjPfVoCkS5Vbio4ya2Y9/E4z0+4lLpYz6+4z8W5EAm5HkVVnR7wMxN3hDkCUEFUxkuvDCGtE56ZHkxvFDCzJxd0E3m2bgyXNFKwvXgPTsmZQIqZf05ZTpO5VU2ZRBS5VZGZVh+5Vim5Vm2ZVLmkcWVCc2d2oed35lwZB79vEkxu9qrZNwDYzbOYaYlW6X4K59KhKUZhKqZZmqeZmm25mzG5m2uZm6+Zkf0Zm3u5nH+5nIWZ3OWZvYCIB98V52YXcelWtll4R2Vl5E4zs4bPEsGPXVaWtS4WB+OQdD8WX/kw2YWWTt+CPg4DJRYaGxo6Id2Mv+IZuiIpuiJZmiXkGiHrmiNtmiO9uiMfugsyyS4oA9ANENe7mXwq10vtlQdPZKMw75NJYyMA5DpoxRNPWNkJo3iMgyVhUgkBGqXlQ9YJktaeF1DIkbV8r6RnQm44d2ZHQrdk0y9GT1LquqjIGWEvkyC0GV2WmYd3mSTI1UNBMOfTdfrhYxRLojDaKNsihO3LtXUG2vo1Swyg0muljOmlgkZFWqLgGvLY+m1TYpkTWSy/Gr+hY3e2FuHNlvYIIuyaw3GhF+MKGGOOGEARQrEhKLDfl5nJZ+trcMz9cxpXVOf+lk3DaRFTowKGo1cattrQT7PfO32AYou+WtCtK3cHor//6JlIcvimWWB1TWL2U6JwA6VNu6jNw7qoFWOOR4NmKhbCFTqoYLaXS60nINqwOVswT1JTh5rlQzDmFlTxIVdWh4nCBVvC4yWv8auYTwFJSkJE3nv44hvJ4MrDgS0tS6MxIM0tI6zwjarx6Wo281kxK4Nxe5cyQiEQBANBhcEBofwBrdIpHhsjQAXkVhs6w7ELeYqjLJaSgtdgAbi0m3TK14p1fYWrTap0Aot2q7dF8fHZgHgKlCFVbiGVLiGVbAGVqAGVqgGG8fxQLCC0zhqj+BtOjZlDkcIEeYKoCiJRIRyR4RyRCSmh4ROOK7evpZjoo6elh3CQEyFP1CFarAG/2qwBmsgczIvc2sABFZQVqJIYQKSPh0ZiiVJN+xOQC9w0svOFuflCejt5CqMa2vN8rU1aKRQa66eHxf/Wsd4JfZ2KGioBjFP8zOvhkpv81VYBROY6+4eI942ZYEkCiaXUL8GDlq4CzLoAlVnddlSchlB7hT0W2cuYeCNbq5Gc2r4g1So9EpnhTZncwA3YWz4KD8eSGi03zi2CIjogkRABAqAFb/gc1T5cHozv2cF7QQT7SBs9Pmpq4KODyQfp2uztkU399gGVzQRBFXI9T+ghjS/BjI3BdEwhQlWqH7t1+k8crhoNGhEaUNfCuPKi0GYBQrQD3Tpj4JwwJ1A8d3ebv9oSsWIn8j1cO4OP5ME83K7incynwZKvwZquIZWeO/VuQxhx2zj0h8sePU8aXjgWteF6QJShPa+IJLiwMn4Sgw/3wlA/259fVB+tauVr3PzNilGh6X2QW/1fpl1t3Q2rwJAAIRUCAR1bheXGcMwOcQpJ5LflXNWQPZ/B3iMyAnQiI5ZcABDCY09uecWfhvkvZd3QU7TbGEZVoyHN/DE4NYO7wpBQPMzDwRWUAVSUEeByAK1EPr4jqSlsSI+MHnmbflPqtyF4YtDHA6JcRefRGPRMGbMr8kwFvoEtPvA+Oc0dTXShSUIRW2HwHPbEPcVL3dybx9ynyWtiwZBYAVrWAX/VgiEvp9g9BiEARiELOA1LBS3DDyWo1j1LkCE5NcKdfx8guD0tPaT/QCSVugChP8u69uwHK0fY+bR9HwUcDn0jbDya/ryQg/lLSd6mPi5I/ykaoAG3Y93S0+p3ycAF8D/wycXWIkYtH3nmQEIQdgGEixo8CDCgVeuJGxY8JqJQdi65MjhxRXFHBn5SDQYQJCgAAQ/ghQocqDIk9hSlhQIcuFKhzJn0jTY0WCrmjp3SiPYc+BPbEGDRiNYdOBRbEmXGm06MOdTglCxTc3ZM+e1nQZBau3qVWZOrgUF5sxZtCxVpWnRnlVb1a1UbFlbCWLFKtA1ateqWWPFdRCBAYME/w2OG/WwWqROE2Pzgi3HGMg5yORoCXLqV5mCZGDO7FFlVxaCHOf4cQVjDhyRx+AQW/CkIIYxB7KYHVNlSoKysYW07fk3wUQIOwMvbvw48uTKa15xTfBm8qwOBZViZY0v3+utcroaNCBsbeUSK5LXeGWwoJy7l7MgXtz5ztjYxl/MWD7H+YMq5cde6HLhFSL1FyBvAApkYIHrLVeTQAe5t2BBQUWIUFDSqZWVhUX1xFRRHKYVVVtRoXUVXF/BBOFyYjU4EFlruYgWjC/KyJaL0VyxwhVWWMGCjldUcQULzfFWYIsdypVWUogVlOSQklEW2WhCDrmgIOGhqFUr7Q1Z3/8POHTJWpejOTjWU65ddhJdKqbHIl0EwXdlQ8KNCSedxln4EEJ3fhUAaHX+JptzHSVF1GJMKTaQhYkaBCCAUTBq4EsrJieRfRkR1qB8C2q53IlaSTlIIiB1MeoVo3ZR6h7QedWnn8apqmSrQvk0K1C0MmborYUu9hZiVn2IZGZ8xgqcS5IO2RaywJqlLFwjpkWiiC9Kg1ZsQQqUFK+/ZosraV3+UFprmL5pnJTLCatVlQR5MQgWgrSLBbvuyuuYZ8YO+5ucON27L78Nnduvp28OwiTAW7UJ4WCmKpwfVwoal+WDxf1bE8RSbdeKK9sNkvF2HBfcr72/fiyToojqaqT/YigzC+KzLS8b8UwTj6wZpmTGePOMOdOIc1svX0hQVsn63FZWrhy5bWPywrv0aCpyGvJxMs8kGqzBzTxyvgW1oufV/XJ9ZNSsdn0QoJJ2hPShuaadVMlgu81vxxi3QssgHWPqMHBZXim1Q6fOBPXYfr4qcqxD2Wr42romvri2hjVO4tcMAh74kPC16PPONcrYM7NtkRhiWnPFJXpUpDfeq63BYVaScptCyHdCFZv81jVZUx6r7VXfvjvvyDVnb91qYetn5PxKRAuLByaXKYrjJkT1TIP33vxw90qYuq0ZHqn9hk2pbORboMf4OeE7dTo9bzW7qTP7OLufM+ecL5ss//jCyzr/0WoFhVkiUDmNnOs+xjyWgS936IOQAWF2wON8rYHAgd3tylaQs+UPdWlbkuLU5ra2FY96LGIR3jLjNzidryF6Y9AC6TQ4BaIIcbKqFQw1iKsZ7spxb4EWsEw0ucAVayuaG1rnggjEIcIFh77KFhIreLrT9W8szttTnSBYkABqzTAGTGFyEojFLXIRIb87yMCOVJSgiXExdAohnKDTsOOU60pP1E0XdiK9LhKreujj4MlypTKfseyI9yuRV9o4vf998H2GbJ9cBoRItIgEZwwhotCKGDpsGG0uTUzfB99DRZBtUohXpCO+7AhKLkoxcBJ8jumwskS03ep3b/8i2GvaRiAIrehuxoHeGdFIGxb6cJTIWSG/XCjMDNKQccOz4OMmuSex7a6HNmOf/JrFrJyoBCsAUgiAoAKgRv4xGr3p4+gal0orru6NOkmXn6RYQjzR7pO+9IoW34nFUo7tizYZ48+MhE/8RaUnXFMkNlzJEJLIx5Wskg4zXYUN5GFSlzrp5OsSekKtzFGe6BJlq64XwwmZTDEYakr3UqbHxonPReTjZULo2TVCDumQLoVfSQbqn9wUJTdZ4abPcKo5+sFFn8CKxiVZqsNYQRCiBHTLdiz6m6TOSamZceBBOlgTlV7tlAOh4DizukrH3aYl0TjJV1dylACwDWgnaVv/HTM5QK/ILp3MFKROWpEIozm1K3JlqL72NcwYEsqYxKwhMv3IsqEu0Jnre+n7okm02+gmJjWNCTVzJpKSem6StGNiOXc4k3XCiW9rNaESNUaXRNRNEKQdbWlPa9rUsha1rl3ta1Ur29bCtrazjS1tb/sglNa1t1ey5wTx6VMyEjefZTwUo/7jH9sIaJsJCZBDPaNG5WVmoq0al1EpdrHtcre73v0ueMMr3vGSN7ygvSPQ0pu479kPnOAk0UkzA1fesfRyi7xvWGIjiA2VpCgtulZM41KWksQofj/sqbKCqr6vZDdWnB1TJPHZUQ2i1bfls3DXqDozq87nLNJR5WVD/xzOqXwNV0t6lILwOOH4rK9AmflsnUqITgwXjLfK2esLc1xMGWYwiaiDnHw1u1JMPhOx0NwckgvsIoGuCXNCjEtJRVe7zGamwRE1iJVnN+ItB9aGf/Ur43Cs0YfRuMx+Aq7F7NehaxiJjG1Wcxn3KKuk0JVOUqWkcBi6Rq/AuE7Oma+ZY2XjK425Qk35qGJCCmeRhq9xzuJjIIV8NZZeDL8HzpyRDzkLGW06WZ22n5R/pkqJ+G/BWknosPocOzjjj6eD5aoZY33B3Q0aw1A1yJ1jhmpTJg8nrQBV/4D960QEm9jDLjaySWtsYCs72cJm9rOJ3exjTxvay5a2tYmdbf+MtVjVDgF0jGXT1kDDLZiHOzeYecw4H7sMysHa9dgMq7XuuGKuG7N3vemN733ru9/39ne+/y3wgMvV3wUX+MEJzu+6LZwWaHGTOYeT5SsHNLrV06qIkbnjjS9GzOhWTq3JvTd4dw3NIn8xdXeCy30Jy9snp1PI96XikXpoeJRtd3yXmUKhGsRoyKuzzylJkKADfaFCHwjRh270ov9c6U1H+tKdfnShP53qU68zkSUtFSvxS1gHqDUknwy6Sk6d44zLdblf/jENj+yUtWzxlOL+9kzKHe5z543/7K53ut+973vPusWnGHPk8Ancaoe5ufn6cbOrmzHsvqEyI73zrIv/q9eUt7yaMF/5y6cvv5r/POczH/rNq0nrFV97AAJ/kJs3+vFfbjyuPK745Qz+8La3p+hzT/rdg1736eP96HsPfN83VOW1Z+PEbU/7mRVavT/T3npH2noBtxt0XTE8Dxt0sO1rv/tl+j5VvB9+8HMf/KcQf/nHr/70sx/97qf7ZlX/W9Pry6et/qm7/fmrvurYVrAM3PEp1a3hyW+w3cdcwTUgIAsk4DUsoAIyoAM2IARO4ANWoARaYARmIAVeIAdqIAZuoAd2IAhuYOC1ggmMTEjIn/IlRwBmhuz1X7oxnuuhzv/RBPbFmzfloCDoIA/uoA/2IBD+oBAGIREOoREW/yESHqESFmFNJB+KZIkBjgnGcdkSMR7jvaALseAKbqE8tWDBzBjAiEbEcSHIHdDM1Zz3OB4g+Qx8rYzkkWFxeCHA3OAZ0V/1RJjY/QrZ1ZkVLgba7YscwuFUkZwgasYouVydnNCDFWIZ6tXHuVAfptsMttsf6gchMuKqgdIlzh9KbKJBsJ67TWIkNh4WYs9xBCIm+osnpiLccREdktBuRCEr7gQqekbzTRg+QR/NpeH0RYsfqUxXyCIr1mKrjBsgcp0w4h9PuRqw6N9U8B80yhrlEGMXDaDzvdssdoUdVtU2tg5mJGM2gkXi5RiOjeKOTWKjEVY4iiNVUCOcWBe/CP8SOFoWFYKYl8Xg6w3KI36cFq6jP97LxaQHUy2QEy7IKXCd5f0jmaHXhOmiT4mUzZEUzrnh9XVjIaYHRh7MASHiO65cHCJY2EGaPeLj2dGaQhLeKqYiRo5h1xQkp+DNIp4klozjC5pjj91jMqmSOsokTmTkzqkg7SHkSKSkYvQis4wTYthkmO3j7DUiTz7lgtDFKaRQKxBlckAUS0JlJn7MLbpNWfkVe4Hie+HfTmplO7qjplgkG6mlQ4QkSLob2U2FUr7N2KAlFlXiA1nlNF4bsh2bX0ZbXwLmXxqbaQUmXw6mYSYmYsqVjcHjvXhbTJplW9IkU8JePuKk69Wgrln/VLD9Wnd4ZnpsTN1sTGh+Jml65mi6Qmmm5mqC5q+9ZmnB5muGpmzS5mjShWzG5m2K5kDKxCtCiDF+xlPRY6jZI1L+ylzGXmVmIXLYJSvO49Vc0gr2ZkMIQhQUDPZBJ086JwM5n0O216K5IRtW34UN4jthTP1EUhv6kRFhpuN85QZd4ymykF4aBximlFW6JR5mnGWW5O1wJyZq58ckAl7S2A5FZkfSZ30+JYBSyHJeJklu1Y+Vp078Ju84hliK5x91GYci5+uVYpxETHDGikfiZ2ZkqM8cp1xCKCk+6EY1p2SuYEWpXUVZaIoEno3GKIUOS1fq4ndCJC+GopCSj2b6/yZbzox96Sd5/mJOJpXcTMt2TEvGuEjbwGdmSCdOCKWguSRbveV+wqUSzWWBFiMcjik2+lJHmCnKlcQpBIJlCIIpuClIuKmfNQSX+o7WIaiO5pX1uGh//ik6ultZdhGGHqWhGqeEaosgWAErrEI1tEI1rII1qAI2qEJfPGo1/MGOsCiIYqmbAOXyyF8yFmf+kKqKsugV+umYfeSe0ui+8EGjSqo1zCp2XEd2/EEqVIGWLof03OnD7GpD5GiMNihwnGEaoqF7Mct6AlJFvlOR5KGSsuezCMIq3AUr1Gp2XIc1jEIqqEIg1AYrzRxNeKqL9YuvdumXfmnpeGiEWmldtv/qTghowaSpH8onsfCFtWZHrbJCKgCCpX5rnR7EuQKHni4KqEomsRoEiP6pDLpnP+0oTcgrwDjGo0mSSK4hxl5FXVjDKlwDIFzDM9AqK9AFK+yBKagCIFTTe3IqrXiqsB5HldRaMqIoXJxqu36oqkYlvOqExPbLjNKSvlqrtuJmK0jDKZjCpqpQlobhNvasPyasQ/RovYKl9AnpWPLTqiwoCibZpUGrl1KrtmaqFazCH/jFtExE+DVAoq4oLqZXZ47mIAwCLcjJy9rnwSZjtGJsUcQlqk7tNJZpqzjtvghKBokrumirNaTCHwACIPxBFUBFKzTAGMxCK8SRcpjWa/b/T/+sC28AK8x5rkwIbjhCbc7erCQ6rEQOKhdR7JHl7WKBmCBY6ioobqRO6ha0wiwgAiI0wAR0gUYGKuMIBCIkghckAhkQL1cEAOkShK+OKnE+70hWYd8uZVPiWD/uLLn97ILwwV6owh9QA63KQgPkLg7gwAQ0AA50wZEixHjcB34MxsGSi1rWrVYur1cYK5Dmr4ZWFpMOHv1O2n2lq9d6kyp4L/hWA1+owu3m7u6mLyK0yMOKYnoJhJNIBkgMbL2A7pW4roaajpiaJPZuJpqaLmNUWEIIQip066yusDUEAis8heRSheVOymOQR2TkAEfM8L2UaMCEMDv2afX63/Rq/1Cg4pDqbhHrOpkSv2XOKYsgrICmCkIVLGogLIQYoq0gdMEBbOja4iRprMZkVMb6vlj8DuWJSuT02SzD4mwQN+X1+jCNhVGqAUkUsIAdQ4EdB4m1vESQ8GoN30d+7Mt9HjEcQ2xGOWjbJvIuMprVKitZvuEhWtpLKZaytMIp4GZGskI07EEdX8EeOKnF/lF7oo5AeIlkfEtWts6qkqkAX+zehukQqynikaEsB6PWfgzhnq5/xqc2pnJXJIzCjMoeuBOK/K9ujPFJ2u/CJidgdfGr2fI7JbEkc20r1yy7OjM2e4HSbDO9xApHmudXmCr0htbKkrBytjE56mwhmyiaCv+XNNaVd9UNdX6uHIpuNtpvV+BveD7k/k4kpEGzLyXpNCfWk2VONS9rSY3yQczVvoyQceCtl3rturLtGq/Yu64zQthzrAyCBw/xjpmwAAlyGWf0LSczZaIzM6dNERuykUZz1y4xJSvZeLoyGsdFeyq0j5ErnZS0GX8Fzb4uTqY0YyzsKi8VRmNYGL0ZPxfpTBT1zGivchgz2Yw0gzIfInul89FQWNb01YJnswb0QIe1TB9YNfNvKJv1U+h0MVN1GZa1RPKtOdvr1eDz2NTyqfG0z050qRoX42DQLsOnXfPZlhKjVMukMvupUB8TNi8LIadQoWbajOjXI92Xxlaz6DT/B0OocU4Ta2Fb4nAiKmiTc1J6dMeVrlMedV2FUXG582rP2UgwSiAFkn+wNVTbLYR0tkLS9U7o81KDJ01L6z/3MFhDtvuQFUoMWHMg95pgtlJg5FnsYEDJx9Ds13EzsT9LhVqDnAaXm1tfbEeTcGADJ2oLJ5pOoV57lFqIxE01N2YrF0MYyEAxV/osV+R8syHWCQ+v5XjD2iGjM/8J9Uofn0a3ijQT91qknn5Rk37lRlkgeIBUJV28d3o4uHEbp3xEkugk9Idkt++wtUPMLD0CNVBrHGmnDVGr836vBF4bz3DBmZsZV00tBG7ANmik3jWdRG6sBGwjhH1Hz+d21oqv/6Num2KO+ehfbbVRzrRX37WzivWLGHdy20Z8N7ibQHh0P9J+FJh8ZLjXnhSHyy+QV1dEExHLwHVFlzAIp/iAC85VXMNcfBg5j9NkRbeNvARD6NeBBNicz3l7M0RZfYTJjSkyV6eHh65ehvfLHbZ/lzgRo246QjIoFbhYN1lAhV9zHEWCX3n4DRhaMPfrSjZ0E5E4Q8WXL9UJ7rRVjvpeRy8rCfWJL1+KK1VSw5lSl1FxmYyEvTO6WMblXgkGM0eh57YZemceIWs/AzezCnckGzizO3mES/YAQ2upBxn6cLB3X/MoIjqsq3mQA2RZfBibUQW4mzc9ovcoKpDh1kRt2//VdsPsoP+joqdzUya2o9s0S3/bu8MNKBt0tI81WojOv8tIVGxakmPsFJJaUOb7h1uliId4uUtvXJu4ab9xrJ+nd/VPd2E8d2n8dnH8xXj8doA8Y2b8x5d8yJv8yKe8xq+8OxYsGwU7vFv1QYwZLGn1Ij8y/hAptXchJs9mz8dmRgI9bgo9bWZk0f98zx990Ce9zxs90we9w907Lbb7zPj7NDkaPX6auR9ariCaXKcdt1c8nGDdcfz6rnuGtotcvNckoyt2oDK1KjoV8C52vXfo3LNbVCu8CN/vOKs6iUf8UE88jMb6mqu9bw1yFHX7PQ97Qxb7sTaykuu8zu3pkNP/3hUsL0R3t8FjO4umPcWjduGTm95jpw4TleLP4tpXJr3bPU42tmHDM9WbC8M7vD2OOMSf+TnLu+47tZiLfauOPtyYvYnA/NPKvMIiRM07vv5ibc4/8lfraOUDEPC/40tL01sEPI3ob297vUUDTPSfXOgH2vTP8ReqpecHWuqjdNvXferKdqt+f94I/5nyfYoeqmhzPuC/+mn7vmSOf6vgNkBgEziQYEGDV64YVLiQYUOHDyFGlDiRosBWFTFmNHhtIEeBHrFFGyiS5MiQJy2evJhS5EVp2FzCPCkyoyBBGnHm1Lmz4UqeP2uyADp04sWWKpEeVSozJUefNFFGhTq1/yNRoD6tZtW6dWGAAFzBhqV4UyzXVixmlXVoU21btxSxtn0pcC62undNCqSqN6/Uvj4BDwycEqfXt4fFxkWsk4VixIYzHnWKdLJkppef9t3rl29nuwPx0gU92qrjxafbQka9midZ1hoFJXyt+nXtrabf1iWouy/BzSWplmQZ1ejJl8WhVqRtmzlEaa3SNpcoqHHt5UVlFr+4HSn3lNwnF+crfKZfjiA/1sYtnT3G6+3bt5IvSD50+AxZuGb9XiL6+7bX4yq0z0QrkLMDf/tLsAUJwyyqihD67z/6KGxFPwkFoo45/iCqTCYPL5pssgYz8yxBE/saUEXSiAoQwxdhxP/QJkFOoS9GmIRiLsIbeSTIxddAClKz8sYjDqnhYkqSSIzY6hHACnmszkmFtEtKpqWqbOqyExGsir0fp2SPwzDfsvBCDHdkrkkyYQTTqhUNrIvLORUkkUEHcUqTzdPqu1FD6cZ0yLIqQcRmRDy7RFHRqOAk0FHefnJzz0mZq8/SSzHNVNNNMaWP009BDbUVVzDKjz09KYVPUgEVgvTBIYsMzkjykPus1prOdDIRCy1MhEJfe/1V2GCJFQRYY4dFltdkj22W2WeLdZbXQWiRNLZUF+TuKG2zcxC8bmUN16TzRvPPVVdLw1bCQF/sU92iWqElorPgWxMj/95N97BGB6T/c9HNBkM0MHQhYldC+ZA09MoPZTruzoBLTJRRFvllsSdSIZJSzK8yKtRjhiGGVWIuK44zq1Xzdcvg/3ZNuaJBIEK1uZVddgtlxIRMD0XygFvwqIQddpg85TgO04tuq8TSSiUHPXJLkUGCiuCcWm7o2vtoNijphbfOEmSR/VX4y5oBLXpKmMVOm2yDcvVR4/ayXjusm3kq2dGwww7ZzgYzYkE2oynjWmFCBZ/MYTu5Sxzpbhe1e8CBql7oaqzNpqjpy7/ee2SwU6TYcwOHolvu0TNCeyOuZjRlxtVZn9F01LGRV6E//5OZ9MNEJ+pchZLjnOclb11YJKFfnchGMm9S/1z5xavkVvFtBbFClVWi+aOVQ6ARRBVWoAmklUKiCcQKoUqKWm1Hd2uVoMgNOmDqSZ9ffFtvvxavPHH5Ilc0c9Wf+/b9KtcjtOUsbfgqyPvYlopUqMIa1aiGNSD4wAhWYxWsGJ9Y2oaNK2SwOfaqiAH/V5Hc5cRxnPuXyPQmMPRRxG9sOprzlhbDj3nNQs9QxR+o0cAH5jCHDWTFKipoAhNOzGRFZN9AJreuAPancE0MkQpPGMUDlRB0VwnhFYnyOrXw4RrVuGEqIngNanSxGq0ARCuqAYgcgSVXZxmhW2yHxcRgiIDmi5VJaOW0KgVNeLB5I2uSx7zuCLJrMZSG9v+s8Qxq4PCB1eiiNVgRm1ZE8gCb09kKHXJEDfJhdIVUmtK0FDG8eUk6f5RjRuLGHrRxqY6waSAEU/EHZzQSktNqxRXWCLuC0O5FHjzlHPf1uUcNcZSaS+EIUymdFxJShk4MnHYEwYpXpnELqghEKigkGNqJcoh1SYQrvvnNViSCWiuh142SyZcnEo6dDyPmO4s4zHiG7pdvSSdztGgxh4DQIXyQYDVYEQhAAEJ83hOI6U5hlUEYaxC+SsRDvUAWU6FzifW8zWt2Z5DenfB3efSocfqIyorGKJDLMykzlwc9aTpSD4+MZPJcMQBXDMJCi1OnX+wnEnLdBBGJQMQsfor/CEEcLYkwumf8kMq4xYXHLx01T9pewj+DIJAnprSoRO5pm1XCs4CkNOBLBPHAgD6ygVh4iStcMAAXuIAGHNQIzHJAgRzMVa7GOiePssrPq1IJMVS05F+P6U6qLqSFZFrmSREbQ6U5JZrdmyYkaYSNQRBgAFjAwppSGLaj5WAMOBgDZ3Ngkw066Z4zfObg3CnFYsqTtY+z4l5h65B8YpAVtX3lK0/RCmm4AgsEuEhReQLXHHRhrsO9wiD+xqM4xva1ZMLf/fDYVJAOD7o1seppSopSZs7vpNEQxAoEEQhVCIKgrPiDJC/iAphoqHmCS0tm0kKVm4CWDKAdKhbbm99B/wbmvSaJ77ieChX9FUSvwGTuVrJam602aLWtJAgLIBxhCUd4g/JZbk5gRty5fjYHfJgtjHx54Oa6xa+r5VJgNde35DrpsNpNLAyxtCwZVwghfksIDVP7NM9strOf7WyIjTrSh2BunafVnIlF5tfBilDETT7oE6NKkSUXuCC3lKRWaNoFLQ9Xy8cN04WdrJHrkrB/Bdlol5wKleDVinhnjsjxwpTdF7tYfnTWqZkX57BvKe47J4noBgEtiMse7YpJhaF3lgqu6D73ziCJcvqmauAwAyXBr0GbTzB2GTlx1cHnK8s4x/nQVjRUkyR16z4nrbW+CrNfXD1xjkO2ZINUmv81LZ7zrevsya8RGbWHg+IBBVJqimrEtE07VMCQ3DhWC5Oeqaa0kF80iDv3jCOPrtmpMURrZ/NtSoxeUs/u+BLqgts90JYRnXGdbnQL7tANyzU2+qsXYcfoqPu1N3cXFO+T/Dd/Aa6KAakMljGnWtuoGcSxc6xmV3uV4W7BthK3XdVVx7PVqh0iihGlYheuW91zXqzgeF2olPh6MPMOskZC7swjL1zZFGf2iCP+S2mXx0N3hrKnf3KNhxPlJrKbEphjDpGBaySjeNbokNLss1mBNHgVgfOU5MxxlC7Lztj4ivJsgjB8bz3RiTP52gzNbvoVOaffNvuArV1FtZ8s6Dr/KfhpLo3aUMKaRRZCiMzcLJAA5Iw6CNn5WPYE5IgEPLZDj0iJWX4gjA9MI4UFXMfpXDSRzIJXpKrQdnh1daSQz+og3/XXSB5sw6vM3Awp9tcQzuDEb0bJbG+7zKetsNhzZPYnob3aNtik2Pjd6ne/ye6vIGTgtmZPQH89Q0bvFm8nPdzTXZLTk6+WqEN+eRr0200CkPnOi+QrRdO84q6WWK4r7jhfJ5t+x6/Ui+h78v7ut4BxTviLHl+kbJp5YBCefwcdqvMBsPEVooFjAtDqaCIANuNqOq0mAu/vTifmoq8hEM/ipGjx7qT+DEvqIK/7kKjzLkIDO3BxENCZUi5L/8wP4iLj84qsaVZOAiWm9fSF/ojG/npmBmWP5qrrSlbnCqQh967F+zRoRpYoAFbnkghC/tgmdsjk7VLtASWi6HyDd5BOuhTuo6ir6ShCCRFj+jBwcfymsKIBl2RDKC4iR8BQDLulC3HJ3lLq3bajBP+j3tpNv/qM7KRw0QDM0c7HCecPBq+w9P7j0q7hZzJnEIuM2yLNEEMi62aEwBoO5xaiLhgQbvxwIYzwqpjwEZfNQJJN8ejOTmStIBxvSmxtC6mPmdDQb8TP8wqpMtyQcohNBFHv1zaR9TKRtZqND/9H66CLBsvH9nyx9mov7eAOCb9sxXDRIS4xLJavDptv3P+ebyyS0SwQphSpkRS165M8bxBcIRrHJv3iMN+eht9+EcDgD+BQgxstCgsRQ1TYcRvlwx1HpT7gcR7lsR7f0R7j8R71MR/5kR73cVQWECcq0aLQsRYr7q9ezZhyTOP2RD68wKEe0lgiMhEmsiIh8iIlEiMpUiMtMiM9ciM/siNBciRF0gu28TKm5J5G0MgQZRY7x+XmCeaOcSZpMmOMsSZVjTX00DOecGeYMaT6qM38KFUmg1QUxyi7BSm5QyllgikvwimxASqlcnGm8iht6pTCTg67bmHuqCt9EQ+lCtj8BycdQh0LjSYFr0OCriBhkrVc0jMocOQ0wixDiC1TprT/YLHIUk/HEDLJDFKfIoUsy3ISwywSnYwuRcwuiWIZGfMznHFo+vAYFfNd6s0bxY6/wtH9xjE9zJFPBLMhEPN2DLPJ8motJ661WOQtjUQhU6xUbrLtJlNdVBIFUUsFW3L1XhI1YzIwP7M3M4QmQ9E3ETGYDtHojLMxh2MKly7vHuLp6C829yor7W0OUavsmO8ry0UstdMshHPWCNPJRlPE0vIhBrKe7DIC+3JR4tLdGJIPoTNVZlPX2mkF03OK/nLtduI9uzNfwvPAglM49VMnzOc6ya1AHfMZjSdAyURBsfLe2HDsTMI6f3LAivAc95MgQpN0+pO5nJMiyvOXzvM+/+szIX8tYCzQPWkyPmuTNveSm1iQFtvStXjzQq3uO5tsQ2MrQwsPo8qsJ4/TDr1yzYAHQbHKRhMzRY2UOi0zMPaMK2/QQNEuD3t0Dy9UR+UGR2GrNB3wNO1GNRWONR3kEx/sNU1zJlUUG+fzNl/UL2MUMCWORmsSS/fqP32TQV/RKw2UQA8UMhNUMuG0J6zxIuRFcf6rOG6vF6lNYRIQd/40NBFmbeS0TVAndz60QYlTN+8GN+GyEzPONbdi9+TGTs1iPHNCRU+vENV0RHPTr27xT7XCyjzFVU8mNrog+ei0N/VzJzEJzX4yT38S+m4jNoQ1VhFNVoWuW+gj0ETVGv8HtVv6qzj+C1FtsNEUxtqqbUpftVGTVCLsbkbuzkzYMVzFNVPqzk0zwifqAl0tYlzZFVQU0e82qAtINSc6dCIqVY5CtE3XdAI5lfFO9FWFNdAElg/ujmARwmCvAGEVtmAZ9mAbNmEfFmFnbGL57FgTZ2IrhMYW1mE5FmI7dmM9NmRBNmBJFtDA4kxVkSWRTVOJCFNl9E1pVEfNhGTllQdt1ltxVrRydlh59mZ19mdLNmgB7e6ugFfWoz5ohGgFVmh7dmd9tmmB9mmlVhBqlmSzLiysNDr3ZEB71ex+R9wO9F/BYmnJlmnL9mzNNm3Rdm1HKy4sTG3hdm3jdm7lFtD/xHQut7UaBXVxCnUcpbUXB4yA1lFbbcZC+KB1mrZu6XZxFbdmDRZj7C7QqlZxKZdxmTZqZ+RwPQUdtTTi8tVlWRZg+rUCPXU1dIs7Kjd1LTd1EaZsdVZ1YZdxn0OpVsNU81LuUlU1XbBFjNVzkfZ14ZVqNzfoIAxOcxVbdzVB9HR5i2c6lvVFnkNoe7cUm5U7nnXfoOtQx5FcrlVIdPUFq3RbYcvKKowP65WJtvRSuzR0R9cTG49Mg658+RBl5RN3V3Zf7VNfdzU/e7d/mat4afR5PRRIn9Rr/QJswda6tInq1ssiMtaBHZiBa2q9JJgsZgyCKTibGjiDJ7iDH3iD/y8YhD/Ygys4gjWYhE/YgkdYhUuYg1XYhD0Yhl/YhTE4hFF4gvm3GqtXJvo29v4WOxe1TAhX77yiiImYiIuYYyAjiZdYiZn4iGs0iaGYiZ0YiY24Rq24ibO4iqP4iptYirG4i7VYjLmYiqf4icPYjNMYjb/Yi50YjNt4jNU4Qyi1THNDRL20fTs1BgWiDNPQ+vr4FAM5kMtwkK2vkAH5kLvQkP2YDB0Zkf+4kRlZkBNZkiuZkiMZkx95kS8Zkjc5kwmZkzPZk0MZlBXZlC15lDkZijFiJW3zflXVM3a3Vfcza/132AKYR4sT0n4UTw0YOcvtlpkLDqVuh9dP0aLVb/+3V1E/w3uRF3xrWXzVZRurhZoBUiCqpZrjJR61uZu5WYDLRiDtmMTwmH3BNNbed69o4Au84AuwgJ0HgQYGwgsGgZ7tuZ7x+Z71GZ8jjn4VixDvJI/192X5V5ixyHRW4hpM58MigqH9M5e6E5zRt4CZlyoQuHnfTKLbYpmu7hoIDRv6MxEuVG+RkFCtRHt9GIibeaXtBpq705Yl5AtgohWyTz5k+qBwIlJDtY7T9zTWF39F95xJtyJu9YqOxm8CAJc8ep5xQqS3zXbb6ZUX5PaAelVFlJYNmnRmrvNgYqGrzDHcZSAc+n8hGkB1eTvdVHm79mt/FRr3apmEghWi4aP/9YOmJ4ogqOOuscGpI3oLjRnekDl7BZtau7cqvpd34RSm/+ML7NEUblqyMFTyomGyLYI2dBrseNpzubQWBbpEBQtv3xqe39memXogDiD7QoIXaqEWhkEkBMH/1qeftxVNmymzzBl0dxNmw3fbXscrWiEaeEG1g7sXosGuCWKsc1Sax3lKuBaYDfSimXMwt801zqIxVlsZsDsaaoEXYsMEfIKvCS5vA7WknfWkB9sGySXK1LsWXVo4FTtMTIcFalq4sVu4YQK2f/Opxfde8Ws1fjqWV9Ozh1MiADjVPhob5LsVgnsZhmEYlIG1XzuXwHvSoPq0pFpLOnuWZTKrLaq3/1F7GFb7uu87l5Abtgp8P493l9M6Cp07bG9QhDS6NvRDvgdiGIJbGTKENiYcV/2abwM7UYGcmQs7PQ4bq91bubX6wVBbayIcr31XnHuanPW3s9czJvqmrJvswBFcrzMkOHf8MGc7ZT/OtqtalkX0bo+Vw2OrxBmCza/qxPuaTZqbgH3Vop3vXGP8NUJ6pMf7r3u4Bn+YsFm6WtkbsWMWyUfHzWfnye9Us1Hjv1WzyksV0eVGyyniy0kzzFOQRVWIqgFcas7c9Q6dt3FC0evpvS3Vv5HXVdS6xRP4xSPT2Ubx1kz9l4hZ3fz8x6d117l3pYn8mQ19t51toYYqooZqRv+8wNiNvdhtotZPqXO37XPRM9LrxEjQfMtNd0qSMc9/wp9pu0VvG9QHWtTVHF4etcq64qvDWsyGWujWvSA0Dycuha++c95zwkTBAs7NWs7p/Jf7HbrZ/SokTCEqqnL8L8LcbiCw/CEO/m0wFMFLdeANQii+s+EXfiKK5uIrpc99fClQGtBVer2vtS3b2zcL7q4E41Frel070F0qZzDcJeZdfhpZnuVNI+PNSeXVr+av8gPVPSXi3aZcHt0JQ+ZzXuVpfqaPfszO/V6WW32Ficr1GJk0/goVIsI6kMbPAra9AsJa/lGrg16q++rkuzoaPus9EOutruwdw2zIPsH7j6v/ORDCUDv7KH4gus9S9M7r494H7X7Ezd5dwl4M6R5H/C/r+d7/0j7x2f7Z2J0OIR+1mjUlxLH9qMLTY6/fNHxGy71gqEQ+NFDvHl70G17hz8nt6yP045708V7ug/Dha5qm437wrS71114gaN/iWV4DVb/7ciT2fb/AG+P3MdT2/b71j1/0f0Lf6/Ssefn5fWetD7itsaPbtSbCen/0Vx/eWx/vBz75tz/7Zw32v5+rQ1/33d78qwz7+x75vR/hX1/59x7+3Z/17V/uLRTycp1bkjmlay+9AQLbNWwEB0ojiJDgwYQMGzp86LAVxIkUK1q8iDGjxo0NAwTg+JCFxIQf/wl+LIkNZUqEJxu2EmmSJEKJKFvGrLkyZseZLHJio5lTZE+fQBEK1ckyaUucOAkWTfhypEqUT22uZJoUZMSRIAdq/Qo2rNifYzkuxHY2LUK1BKMhdNv2rdy4dLHBJVuX612JZzd6LItNZKvBKQe3+ig4sGGfJw1LPKxYMWHBLwsPRky48WXGDgMYHkq5p1WUoX0iVSkZckvKVkt7XgwZJuXUog1jBvpaddaxf0G6lfjbLtngwQdyPT5XeN27zJPfZYt2rXSFgKFWv449O8feZVl4B/2doHfx44cGDvy9p3nw7E2GJ38ePWijDtMnfK+evtHx8Z2ub2hffvIJSB575f/phx9/AbyHXnz46ccbatpNSKF2XFVYoVfCudUch3J5GBeIygl30F1+SYghhShm9BhhE66YokUwxmjSjBQ9RhaOOubIo0S09DhckB4OuaFwAx0ZnUECRUddk0xmdyGNUk55EXdUZmceSOnxh+WVGGXpZUo2UqRhmGZqFeWV0EHX3HLOvenUTHLGSSdeWi14Zp567sknS2NChGNwgQJpHDY/IjfLiG4l2txAjSq65JrTPdkXYGn2iWmmmm7K6aZcdgrqRpeq6VClTiakYYeQikhkXCV+OKKooc5Ka61l7YgrkD7qyiNxRRJJJJJKaqhkQ6ZCaWuyE1mpbLPOeuliV6X/PhvjqBhK6iSbcELqZl7J6SXnsVWCSW255mbHbEa+AhckuxIVWie43XJL73OTYvtkddaey2+//v5bH7kAZ7qvrakWGeKqCrdJYqwaFTxwxBKDlWvFvB4KpK/A/mrkksMmSem9E0I8cZjplozyv9FyVGbKt+aJ71kMz7ztXnPaiVydIHFHGI4/IbcYnT3jFW2LOQ89UtE/H73jz3IGTXTTSkOdtNRAK+20z1NjjbRTVzPNo9NxUu112FuD7XONaLbbK6FkYRwno3LJHZejctldd8jZiowdyS5LyZ1HgpfU2+CFE2642mIOrrjhiNfIuJiQC9544pIvTvnljlce+eGd/yP++eSHi/445qObXvrmmlvueeatW3ny39DueWztDh2csKq6y/Vq7neStmDw4pXEQvDFDz988ccHRrzxzScvPPPQL0+988gzr/zz2EdfffbXZ1/99NqDP7710m8fPvrle38++d+b3z33zbOvOEcW328or4Oyu/HGwoJckHxNikJ+k12KYmfABNYKgRZp2akUaJECXidmfKtXzbYlLzvZTFwyEhgEP9gpBlJkXcJxVwmXlDMNXnBeDKPg3voGwhgSjBauwIYraMiQXUmkhjq04dt+KEONfCqIKZJgpw7GKoRxzHdu6p39iJgQLHyBBl6QIg2+gAWEeGEQWBDEFrv4Rf8vclGMYBwjFIuovzTiCGM70hjH/OcxkB2kWHoToL7OSCMRJvALc7oGHwkyiK8IAo8RNCJDHEjIhxgSOy60IAsxeLMUpnBnHvygF5IikUsSRJMgSUQiKaJHQLFtfzwqFNzIQjfhpNIteOvYoxoJnTt+cpba4eNlDPNHbARSK7ukJYAq6UuK0W5axrrdm5KITEg50S1OlBUeL+m8aHBykFrxZDAtpcaLZdON/SvS/+aIEDomhIOyvGZ1Qik7L3ilJK3gZC/L5pKV6dKcUFlkOIlJS3uKBZaTotkj55XBgNoRI+j82yVpco1WSFOLDFkQNRMiiAVdyJr0vBxHSIhRssD/C2crdCS9+PnAl1W0LAV12RcUarRcvtNK0WipU6z0TnOW9CGI9KU+MYXEhcFqd010WEZmijIvTBGLQ53mfTxDEF7UohbDcEtEVRLTawL1adm0GBvbxr83cuybkerqCwcq0pGKZaogXKlnosELpaa1qRHN0kPpSdYAitVOYWqkPz3KMElG8maUHCknX+KZpUZDGcqIRi14IYhPURSuf1LkKB/7rh8iClKrXNKjXllBfJVzrpzlpVGQqlZlEGOpw/gJngAp1iF29mHDLKZrD3lMnTKxYc1pJmtH+tbitSKt0RhGYZna1oQsdrUYwZ9VtykkrQYrjuAMoO0wdNPVxhWC/2aViDCWulRimDZLUQ2mPDWCSHISMbpfAemT7oreb6nXW+JdFjATyUlsmAAlw1CqMggSURMIV6xxzagJi8PROqX3nyMyb3tBQl7iVrS6ijwtakeq2o3UNJ/8yilPl4jh2vq0uGJ9a0pY4GFsBDch3VXwRIybzauSsptwRBI4X5zZkZl4O42FYokvEmLv3nTCNoVZjAk84BHpNV58pbFfvzJcqdbYJZA9IY5MydHKVraVrIQUHc272RlXaclBvLFFvPzJ6XY2wWN5LkOOhbsMK7FVtOXdhreMWyTzl8vWQfGOVJyx5LK4Yy5eknPxSUAta0TMCQQzRQxNyOmG17teMv9wR4NsM2+x907vJeRBq9qjJAezv3luIyo5espFWXnUl5XOlX98HTILepZe9IKrXw3rWMs6x750sFZ4/ElVn8nCO+31bDVsott2SterDpWd04jn/yp3q8zt6qm/CsNiy4jOFPsuXWVST7F9ZZIcjhO1s3YmbkNrx5wlNkjs2s9Hr1fI646urStkvM48BDXm+wpptqMUSr6bSk05U1xJCXCNSlZOUib13Ubt6GhLm08o4spHcoZUqVQkbUDDZIDDJu+b7DVKOGp4DqlqHSITueKF+TjJMbTvhX9cT2YepzHdlMwLM1OZb45gjFAUPY8MRXjGA4rDMak89yBueTrPSc7/oydvwgm9Rsv78F9g4vCmH13q1HvMzo8HWJj03OkryTpNlGduGB57jcjN6p6r3GdiDfTAYgm7kg+4lavshjM6x4ppHq4bjetd7kjZCVJwk2+dgJ0zThtN14NSmbs/xvB257tpRkbu187S7RZJOF7VLeCbbfB3cO9I8Qy/G6tg++7xbjzj5w4VmBj983RHPeiDx/h4n4Yk3jN96/v+om87ucnBSRRyQo2NKRs8b/Z6dh3Z7kyVQ4TQF1F96Ak/ewlFpe9Uub3jQZ9D9QB+79jnvvWt8nPqNzTw14e+inR/z5FSfkq8/vWa3++qmleE+c33GdQxI56O51tH2j98ZCoT/3H9txJQJxqoF33/Z3j3Nzb9VxkKGID/t3OIRxYPJ3eAZ4Hlh3K6N3balCvctGxo52xyhGoKp3ydgX4bwT4pOD/9oR7x9h9chz1Ctx42EXTm93zzA3q1V4MxCD1ON4MRKHinNXU1ISDcAyHn9xW4Nnk+9lUyk25Atm6Rxm46sx2V5i8nCCQI9hNW6He8ASr/xntu00NxQ1nD50oHZ3lZVoIgdILOw4X1kXIyAhhv6CVxWILrpxEtN0DpJ1tqlkTLFB3BxiJrSIgnhml3VnYfyGxpd096aCGF2BFYCIkQFF2L1mOk0oQVBGkdJVCT1leTOGdaIShhKBG+JyfAJ3ylRv98pnZ8FaSGoAiLFWWHGKGEhISHNNJ+ftiHwLY2sQiJG5gryXZCZ+dNzfYxjUSCk0h/vpgylVhuTNiKdeGEUChpU2iN7iaJzJgyYGhCARdZY/hpzZGKB4dZmQht2BSLy6iNE0NotYhHt4gRjjhQacZm9fh+gHgQyBeJ67hpGniIPCKMK6aIHsJVxziCqeaLfzFkF7eQDblXIseQDxmREOmQFCmRFTmRGYmRG3mRHWmR9cMygJZr0Ihu1OhRnchu+thQosE6oOM6Lnk6qvM6qdOSpMM5L2mTqxM6qHOTMVmTPKmTOAmUM9mTNLmTMgmTNCmKnYZVwQdqKjSOqyiVImj/jmAVFvBIS7AnhFcnOFcndEX3YV+5lWLplU4HllvZle5BlmpplmPZlmWplXD5eW4Zl2xZl2H5lnY5l3KZlnh5l2h5llwZmGvpl3RIU2KFlRiSi/YYc29iW/wImVQFjAPnaWaniAVJldGILJGpYLTGjO5oiySpiU94edUohVKYmPTkmbHojbv3jfkzWeJohlVWjpoZS+jImat1CrnJh/SUmhQhj2gWWzJ3jzSnkiW4mrA4mT1kMR64Z5gJY1WZjLwZZ7lpiRR2Jua1iQSGkpvHmckJiqPYjWxjinGCirNpWeTIiliGm9QpVrtJnaAJRb85IYv5fo3ZU4KojeA5icsJ/5C84pzLBp1epZnT6Z7mxJ+TqCHHCUL0iU/4Yi8mmVdRKJHfmZutKZ4oBJtU1Rzs4n5JZHzI2J4HSk/wyZvyOV6tdWYiKVe7eJ+Xl4+5maCF6J8ByTbESJDGmJmahZAkWlHSMKOFeJ1LmJ2oNo1+Vpr00p3hwo+tIAhPCqWC4KB4lKFV+mm/B5XoSWXpSR0h6ooj6qOT96Sn8KRT+kkoGkRmeh32iZ9qFn/6GYtSKqeR6Z9k14F6dpk6Gp0F2qNhek1Qap17eIlmUpLnhXnWeJoVCplOqqbvSIqlNHBjAykeqou1yZ5h5afBpGn8iKYy1KguJ3mCiqTE2aY0E6PrGP8NmNAGkdAGqhoJcNqf/2inaRSg3TSgXhpSYJqpZxQJ99VSbqEMkQCZQzqSRVqV0EGPhxpkfLGOkfAJhKUMpUBY0fAJwqqNk2mKGKOtqsSttJmedgOuHbOnIoqpuwpFkeBb0KquyjAM1rqOnRpDn1oWbOqiSfSmzIgJnqAMz/oJw8Cv/qoMnuCuyimrQCKMtapVt2qbMmau59qv/eqvEOuvw0Cx1fqZokqkhGqkpLmdSSqFsBgJmDAMIkuyn0CyIzuyJjuwv/ioTxapbRMXlMqYCLexudp2DUtEIYsJO8uzPeuzmLCykIgkqMJoLMei8zicvuamxhmLkRCyTwu0UQv/tU8btIRYo4mIo3wWguP6pa+IswnktGErtmM7tr5IrIkkr5aXrBLKiVapfGQLt2TLmgWbrQP3I6KGt996huFaZVwrnbr6tQYUt4PrtNoIrw1aYUo7s8QZfwyqYE67C2FbC2EbuU47uU6LCXNbpxtamQNZjIzot3VkoIEruJFwuaYrualbtUKKscWqscfKscp6qPL6QdFguag7ubmLuq/qixgqhhsqqR1arzQLuzZ7laQbRKaLXcuLXasrtEjaohlrrCsaqi1Kqi7aU447Y7a7VMqbu7WACbBqtQXLnACKp8+ppwTKo16LvGDLvN07rEfrqNNrXmvrsW2rvVpmu6vKV7+8u47Yarc/lLdyw7d6660GWbx92r4LXDKH+0G0Kxb0er2m6rYMTFybW74CmbUKS66Aa8EfTC0LWlFpW7OGyrYnfG0grGW+uyNQFptzo6XEu7DGCxYBAQA7"&gt;&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;BR&gt;Remarks:&lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;UL style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type=disc xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;LI&gt;The code can definitely be improved. It has been written very quickly in the scope of a POC. Alternatively you could make a better one&amp;nbsp;using the&amp;nbsp;adapter base classes and the wizard. In fact I'm hoping the community will see the benefit of&amp;nbsp;this loopback adapter and someone else will make a better one. I'm not (yet, ha!)&amp;nbsp;a streaming and multi-threading expert. 
&lt;LI&gt;Apparently&amp;nbsp;it is advised&amp;nbsp;to return a read-only forwarding stream to the receive-pipeline. At least until SP1 arrives. I just used the VirtualStream class from the BizTalk Streaming assembly. 
&lt;LI&gt;Do not forget, and as usual: there's no warranty at all. I haven't tested this very thoroughly yet so&amp;#8230;use the adapter at your own risk.&lt;/LI&gt;&lt;/UL&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=14737"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=14737" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/gwiele/aggbug/14737.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gregory Van de Wiele</dc:creator>
            <guid>http://geekswithblogs.net/gwiele/archive/2004/11/10/14737.aspx</guid>
            <pubDate>Wed, 10 Nov 2004 02:24:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gwiele/comments/14737.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gwiele/archive/2004/11/10/14737.aspx#feedback</comments>
            <slash:comments>19</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/gwiele/comments/commentRss/14737.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gwiele/services/trackbacks/14737.aspx</trackback:ping>
        </item>
        <item>
            <title>Leveraging MSMQT acknowledgments </title>
            <category>BizTalk - EAI - B2B</category>
            <link>http://geekswithblogs.net/gwiele/archive/2004/09/20/11380.aspx</link>
            <description>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;You all probably know that MSMQ stands for 'Microsoft Message Queuing' and MSMQT is the acronym for describing the BizTalk MSMQ adapter. A quick reminder for those who already forgot: the "T" in MSMQT stands for transactional (not “Transport”)&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Probably less common knowledge is what MSMQ acknowledgments (ACKs) are, so I have chosen this to be the topic for my first post. What are ACKS and in what flavors do they come?&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Acknowledgments are system-generated confirmation messages that are sent to the administration queues specified by the sending application. When an application sends a message, it can request that Message Queuing return acknowledgment messages indicating the success or failure of the original message.&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type="disc" xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;li&gt;A reach acknowledgment tells you that the message reached its destination queue. &lt;/li&gt;
&lt;li&gt;A receive acknowledgment basically tells you that some application successfully received a message from a queue. &lt;/li&gt;&lt;/ul&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;br/&gt;Both acknowledgment types have positive (ACK) and negative (NACK) variants indicating - this is too straightforward - a success or a failure: positive arrival acknowledgments, positive read acknowledgments, negative arrival acknowledgments, and negative read acknowledgments. &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;If you want to get rapidly acquainted with acknowledgments you should definitely read this excellent article on MSDN: &lt;a href="http://msdn.microsoft.com/library/en-us/dnbda/html/bdadotnetasync2.asp"&gt;Reliable Messaging with MSMQ and .NET &lt;/a&gt;(Building Distributed Applications)&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Personally having no prior experience with MSMQ acknowledgments, I started my first tests having big expectations. I built a .NET application and sent my 1st MSMQ message with an ACK-level set to full_reach and full_receive using a non-transactional admin queue. (my machine is a simple MSMQ independent client so I send to other machines using outgoing queues). Also not wanting to be too haughty I targeted my first message send at a regular MSMQ server. As expected my message arrived quickly at its destination queue where I subsequently could read the message through code.&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Wonderful, I had 2 ACKs in my sending machine's admin queue: &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;strong&gt;ACK1 MSMQ message class = The message reached the queue. &lt;br/&gt;ACK2 MSMQ message class = The message reached the queue.&lt;/strong&gt;&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;br/&gt;Since this first test being a big success I already wondered what would happen if I'd send the same message again, but now targeted to the BizTalk MSMQT adapter. &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;I quickly set up a BizTalk MSMQT receive location with a passthru pipeline and a file send port subscribing to the MSMQT port. After BizTalk created the flat output message I was really surprised - even a bit disappointed at the same time - because I only found 1 acknowledgment in my admin queue:&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;strong&gt;ACK1 MSMQ message class = The message reached the queue.&lt;/strong&gt;&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;br/&gt;Where the heck did the receive ack go? Did I make a mistake? I did have a valid subscription and it was consumed correctly because I had a file. After doing some research, newsgroup postings and e-mailing, a very helpful person from MS gave me the answer: 'For Biztalk, multiple "applications" can receive the message and MSMQT doesn't know how many got it, so it was decided that receive ACKs would only confuse the customers.'&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Slowly getting over my depression I started focusing on the ACK I did receive. I started to think about the opportunities this ACK creates: you now have a level of traceability at the sender's side. For my next test I sent a message to an invalid MSMQT queue - more precisely I used an invalid name being a non existing queue on MSMQT. Admin queue:&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;strong&gt;NACK1 MSMQ message class = The destination queue does not exist&lt;/strong&gt;&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type="disc" xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;li&gt;Event viewer: Destination queue 'wrong queue' cannot be reached. For local BizTalk queues, the receive location may not exist or may be disabled. &lt;/li&gt;
&lt;li&gt;HAT: Nothing&lt;/li&gt;&lt;/ul&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Exactly what I expected! This reminded me of some interesting must-read posts on this subject by Darren Jefford's blog titled &lt;a href="http://blogs.msdn.com/darrenj/archive/2004/03/31/105025.aspx"&gt;MSMQT, Transactional Queues and Xml Validating Pipelines &lt;/a&gt;and &lt;a href="http://blogs.msdn.com/darrenj/archive/2004/03/31/105036.aspx"&gt;MSMQT: Debugging and Getting hold of malformed messages&lt;/a&gt;. &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Conclusion: if the sending of a message fails the sender receives a NACK message in the admin queue and eventually after exhaustion of the retries MSMQ places the bad message from the outgoing queue in the dead-letter queue (optional: see below for more information). Darren Jefford advices to always use passthru pipelines for MSMQT receive locations. Now let's ignore his advice and try the opposite. What would happen if I would send a message to an existing queue but an exception is raised from inside the receive pipeline? &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;I quickly configured my MSMQT receive location to use a pipeline implementing the flat file parse (FFDASM) component. Next I intentionally sent a malformed FF message to the MSMQT queue - generating a parsing error. Here is what I got in my admin queue:&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;strong&gt;NACK1 MSMQ message class = The destination queue does not exist &lt;/strong&gt;&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;br/&gt;I expected to have a more meaningful description as for example 'Parsing failed', but I received the same - now totally irrelevant - description. As a consequence the message sender cannot see the difference between these 2 different types of errors. I asked my MS contact again and he gave me this explanation: 'because we cannot define new values for MSMQMessage.Class, we were pretty much stuck with the existing ones.' This means, I think, that they were stuck with the standard MSMQ API error enumerators. &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;So here's my conclusion: If you send messages to MSQMT receive locations you should always choose between &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;(A) Use a passthru pipeline on the receive location or&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;(B) Use a custom pipeline but specify a dead-letter queue for the message and/or implement acknowledgments/logic to handle failed messages due to pipeline execution errors.&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;As for the sake of completeness I also want to mention that MSMQT also sends positive ACKS for each successful message receival. This assures us that your message was handled fine and survived pipeline execution without any error.&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Now having all these extra bits of information regarding ACKS I'd like to finish by issuing a little warning. An example of a bad design would be to create some kind of service that sends messages 1 by 1 to a MSMQT node - while waiting in between each send for an acknowledgment. This would probably work from a functionality point of view but never from a performance perspective. Read this: &lt;a href="http://www.4guysfromrolla.com/webtech/041300-1.5.shtml"&gt;'Using the Right Tool for the Right Job' &lt;/a&gt;chapter&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;To finish my article I'd like to comment on the overall very fine transcript of the &lt;a href="http://support.microsoft.com/default.aspx?scid=%2Fservicedesks%2Fwebcasts%2Fen%2Ftranscripts%2Fwct030204.asp"&gt;Microsoft Support WebCast - BizTalk Message Queuing in Microsoft BizTalk Server 2004 &lt;/a&gt;where Rajan Dwivedi states 'As far as interaction between MSMQT and MSMQ is concerned, MSMQT can receive messages from MSMQ, and it can also send messages to MSMQ without any difference.' Well Rajan, I'm not so sure ;-)&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=11380"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=11380" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/gwiele/aggbug/11380.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gregory Van de Wiele</dc:creator>
            <guid>http://geekswithblogs.net/gwiele/archive/2004/09/20/11380.aspx</guid>
            <pubDate>Sun, 19 Sep 2004 22:30:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gwiele/comments/11380.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gwiele/archive/2004/09/20/11380.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/gwiele/comments/commentRss/11380.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gwiele/services/trackbacks/11380.aspx</trackback:ping>
        </item>
        <item>
            <title>Custom BizTalk Instrumentation with EIF </title>
            <category>BizTalk - EAI - B2B</category>
            <link>http://geekswithblogs.net/gwiele/archive/2004/09/20/11382.aspx</link>
            <description>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;The MSBTS_ServiceInstanceSuspendedEvent WMI event is fired by the BizTalk Engine whenever a "message" is suspended. This happens (amongst other reasons) when all send retries fail (for example when a connected system is down) or whenever exceptions occur during the pipeline execution (for example when message validation fails).&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;For this little article I'd like to focus on the first category: outbound suspended messages caused by systems being temporarily unavailable. Usually admins like to receive notifications whenever one of their systems goes off-line. You can set up a NT service that consumes BizTalk MSBTS_ServiceInstanceSuspendedEvents and notifies the admins for example by e-mail (to the Biztalk admin and/or appropriate system admin). They can then fix the problem and bring their failed system back up.&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Now the problem is that you still have to deal with those suspended messages that sit in the message box as a result of the failure. They simply have to be resubmitted and this can be done using the HAT tool. This can be a quite repetitive task that's very prone to errors (try resending the wrong message). In many cases an automatic solution would make a better one. Let's see what can be done:&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;One could react by upping the retry count to its maximum value? Ok, this would automate things a lot but has 1 very big disadvantage: you lose your notifications because the message will never suspend :-( Who will bring the system back online? You NEED these notifications so this isn't a viable solution: you have to lower the retry count back to an acceptable level. Is there another solution? Yes there is: add your own custom WMI events to BizTalk Server!&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;What if we could add extra custom events that create the functionality to receive notifications upon the retry itself - without requiring a message to be suspended? This sounds very complicated but is in fact a very easy task when you use the Microsoft Enterprise instrumentation Framework to create a custom event class.&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;For those that never heard of it, this is what&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/scalenethowto14.asp"&gt; EIF &lt;/a&gt;can do for you! From the EIF README:&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;'The Microsoft Enterprise Instrumentation Framework (EIF) enables you to instrument .NET applications to provide better manageability in a production environment. EIF is the recommended approach for instrumenting .NET applications. It provides a unified API for instrumentation that uses the existing eventing, logging, and tracing mechanisms built into the Microsoft Windows® operating system, such as Windows Event Log, Windows Trace Log, and Windows Management Instrumentation (WMI). Members of an operations team can use existing monitoring tools to diagnose application health, faults, and other conditions.&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;An application instrumented with EIF can provide extensive information such as errors, warnings, audits, diagnostic events, and business-specific events.'&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;The EIF also forms the basis/prerequisite for the Microsoft .NET Logging Application Block. This block represents the 'new' way to do logging /exception management - replacing the older EMAB (exception management application block).&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Let us - by means of example - add the following events to our BizTalk Server 'event source':&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type="disc" xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;li&gt;TransportLostEvent: a system goes down for the 1st time = First failure&lt;/li&gt;
&lt;li&gt;TransportRecoveredEvent: a system comes back up again = A retry succeeds&lt;/li&gt;&lt;/ul&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;I have used very basic sample classes for these events. Feel free to e-mail me to get the sample - I haven't got uploads working yet :-(&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;The context of the message will provide us with our basic building blocks and determine when these events have to be triggered. The 'http://schemas.microsoft.com/BizTalk/2003/system-properties' namespace contains 3 unpromoted properties named ActualRetryCount, RetryCount and RetryInterval. &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type="disc" xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;li&gt;RetryInterval is a static value representing the value set on the Send Port. &lt;/li&gt;
&lt;li&gt;RetryCount - on the other hand is - very confusing - not a static value but represents the number of retries still available - and is lowered by 1, by the Engine for each failed transmission attempt. &lt;/li&gt;
&lt;li&gt;ActualRetryCount, which BTW returns no results when you look for it in the help, is also a dynamic value that is incremented by 1 for each transmission attempt.&lt;/li&gt;&lt;/ul&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;So how can we make this all fit together, wherefrom can we trigger our events? There are 2 scenarios possible: a custom adapter and a custom pipeline component (for integrating with existing adapters).&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Here's a sample piece for a custom adapter:&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;'If message transmission succeeded&lt;br/&gt;oProperty = msg.OriginalMessage.Context.Read("ActualRetryCount","&lt;a href="http://schemas.microsoft.com/BizTalk/2003/system-properties"&gt;http://schemas.microsoft.com/BizTalk/2003/system-properties&lt;/a&gt;")&lt;br/&gt;If Not oProperty Is Nothing Then&lt;br/&gt;'A previously failed send operation has now succeeded actualretrycount&amp;gt;0 and msg.TransmitSuccesfull is true)&lt;br/&gt;If System.Convert.ToInt32(oProperty) &amp;gt; 0 Then&lt;br/&gt;myTransportRecovered = New TransportRecoveredEvent&lt;br/&gt;obj = msg.OriginalMessage.Context.Read(InterchangeIDProperty.Name.Name, InterchangeIDProperty.Name.Namespace)&lt;br/&gt;If Not IsNothing(obj) Then myTransportRecovered.InterchangeId = System.Convert.ToString(obj)&lt;br/&gt;'Continue to build and finally raise the event&lt;br/&gt;.&lt;br/&gt;myEventSource.Raise(myTransportRecovered)&lt;br/&gt;Else&lt;br/&gt;'If message transmission failed&lt;br/&gt;'If actualretrycount is 0 then this means that system failed for the 1st time: raise TransportDownEvent&lt;br/&gt;oProperty = msg.OriginalMessage.Context.Read("ActualRetryCount", RetryIntervalProperty.Name.Namespace)&lt;br/&gt;If Not oProperty Is Nothing Then&lt;br/&gt;If System.Convert.ToInt32(oProperty) = 0 Then&lt;br/&gt;myTransportLost = New TransportLostEvent&lt;br/&gt;and so on...&lt;br/&gt;myEventSource.Raise(myTransportLost)&lt;br/&gt;.&lt;br/&gt;A very nice idea would be to develop an "EIF enhanced" version of the adapter base classes that trigger additional events. Anyone interested?&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;I've also succeeded into making a sample pipeline component that raises the TransportLostEvent from inside a pipeline - creating the opportunity to integrate this functionality with existing adapters. I tested this very rapidly/effectively thanks to the &lt;a href="http://martijnh.blogspot.com/2004/08/update-pipeline-component-wizard-v-13.html"&gt;pipeline component wizard &lt;/a&gt;by Martijn Hoogendoorn...&lt;br/&gt;The downside for pipelines is that - if I'm correct - we have no notion of the current transmission attempt result from inside (the result) so we cannot raise the TransportRecoveredEvent. What we do have, is the result of the previous attempt and the actualretrycount - creating the possibility to trigger the TransportLostEvent upon the first message retry.&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;As a final note always remember that WMI events do have a performance impact. So you may want to just send them to the WTE (trace events) sink if you don't need them and performance is an issue. The nice thing about the EIF is that this can be done dynamically and doesn't require a restart of the 'Event Source' or changing the pipeline. See the configuration section in the readme of the EIF for more info.&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Here are some stats for the curious - Event sink Average events per second:&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type="disc" xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;li&gt;Windows Event Log 220&lt;/li&gt;
&lt;li&gt;MSMQ 120&lt;/li&gt;
&lt;li&gt;WMI 520 &lt;/li&gt;
&lt;li&gt;SQL Server Basic Log 300 &lt;/li&gt;
&lt;li&gt;SQL Server Flexible Log 70&lt;/li&gt;
&lt;li&gt;EMAB with the Windows Event Log 120&lt;br/&gt; &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=11382"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=11382" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/gwiele/aggbug/11382.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gregory Van de Wiele</dc:creator>
            <guid>http://geekswithblogs.net/gwiele/archive/2004/09/20/11382.aspx</guid>
            <pubDate>Sun, 19 Sep 2004 22:34:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gwiele/comments/11382.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gwiele/archive/2004/09/20/11382.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/gwiele/comments/commentRss/11382.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gwiele/services/trackbacks/11382.aspx</trackback:ping>
        </item>
        <item>
            <title>Doing fast and easy mapping updates with BizTalk 2004 </title>
            <category>BizTalk - EAI - B2B</category>
            <link>http://geekswithblogs.net/gwiele/archive/2004/09/20/11381.aspx</link>
            <description>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Do you remember those good old BizTalk 2002 days when you only had to make a couple of clicks through the BizTalk messaging manager to refresh a mapping? Well it's time to share with you a nice technique that makes BizTalk 2004 mapping updates just as easy to make and deploy:&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type="disc" xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;li&gt;For this technique to work you have to make sure you always compile and distribute your mappings into a 'mapping only' assembly - this will simplify things a lot. Do not put your referenced schemas inside this mapping assembly. &lt;/li&gt;&lt;/ul&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type="disc" xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;li&gt;Keep always track of the version-number your mapping assembly has (by setting the version number in the assembly config file.). Remember that version numbers are in the format "Major.Minor.Build.Revision". &lt;/li&gt;&lt;/ul&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type="disc" xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;li&gt;Deploy your finished solution into your production environment. This can be done in a variety of ways: using an msi or you could just deploy assemblies manually using the deployment wizard. Usually you make this decision depending on the complexity of your solution. &lt;/li&gt;&lt;/ul&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type="disc" xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;li&gt;Now you discover a mapping error requiring an update after everything is already deployed. You are afraid to touch the installed assemblies - you know how complicated things can get when undeploy redploy. You don't want to break any dependencies or anything...but it's not a breaking change - just a fix - changing a couple of mapping links... &lt;/li&gt;&lt;/ul&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type="disc" xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;li&gt;The solution: Just recompile your updated mappings project and up the version number and deploy your updated assembly using the deployment wizard while leaving your old assembly in place. You can deploy your new assembly to the GAC and optionally - not mandotary - also into BizTalk. This makes then a total of 2 versions of your mapping assembly deployed side-by-side into Biztalk at the same time (the original and the updated one). This doesn’t affect your running solution at all, because BizTalk references mappings strongly, it will still keep using the original assembly from the GAC. &lt;/li&gt;&lt;/ul&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type="disc" xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;li&gt;Now change the .NET assembly binding behavior by inserting a binding redirection into the XML config file.&lt;br/&gt;You can do binding redirections on both application level (BTSNtsvc.exe.config in our case) and on machi