<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogical.se/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title /><link>http://blogical.se/blogs/</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>BizTalk Server and named SQL Server Analysis Services instances</title><link>http://blogical.se/blogs/johan/archive/2012/01/09/biztalk-server-and-named-sql-server-analysis-services-instances.aspx</link><pubDate>Mon, 09 Jan 2012 21:21:00 GMT</pubDate><guid isPermaLink="false">19a535f3-07d9-4378-9c5a-8d019d91e842:29158</guid><dc:creator>Johan Hedberg</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;The documentation for BizTalk Server 200X is very clear, and has been since BizTalk Server 2006. See the 2010 versions of &lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/1837.aspx"&gt;technet wiki&lt;/a&gt; and &lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=11503"&gt;download&lt;/a&gt;. It states:&lt;/p&gt;  &lt;p&gt;“&lt;em&gt;Named instances of SQL Server 200X Analysis Services are not supported&lt;/em&gt;”&lt;/p&gt;  &lt;p&gt;But why is that? I set out to investigate if I could find a reason for it still being true.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Examining the history&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;In the beginning, there was a limitation with SQL Server 2000 Analysis Services (SSAS). It was not instance or cluster aware (much like SSIS today). Some time later with the help of service packs (if I can recall and use my search engine correctly) SSAS became cluster aware, but only supported running on the default instance. Thus the requirements and the reason that was true with BizTalk Server 2006 is crystal - due to the support of the underlying technology, namely SQL Server 2000, named instance of Analysis Service was not supported.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Present&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;I later versions of SQL Server, and the latest of SQL Server 2008 R2 specifically, there is no such limitation. Analysis Services is both cluster and instance aware and can be installed in a named instance. So the underlying limitation just isn’t there. But what about BizTalk? Does it have some built in limitation to how it uses Analysis Services that doesn’t allow working against a named instance?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The scenario&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Two BizTalk Server Group installations – connected to their respective database instance - side-by-side. Both SQL Server instances has the database, agent and analysis services services installed. In the default instance I have a BizTalk Server Group configured with BAM tracking and Analysis, and a deployed activity and view when we start our journey. For the named instance I wanted to configure the same thing to see that there were no issue with &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;running Analysis Service in a named instance, and&lt;/li&gt;    &lt;li&gt;running it side by side with the default instance and its Analysis Services on the same SQL Server machine.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Configuring BizTalk Server against a named instance of SQL Server 2008 R2 Analysis Services&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;First configuring the feature using BizTalk Server Configuration.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/johan/BTS2_BAM_config_seperateAS_2_5E96B71F.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="BTS2_BAM_config_seperateAS_2" border="0" alt="BTS2_BAM_config_seperateAS_2" src="http://blogical.se/blogs/johan/BTS2_BAM_config_seperateAS_2_thumb_4C4DF05D.png" width="244" height="200" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Then applying the configuration and view the result.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/johan/BTS2_BAM_config_seperateAS_2_configDone_5E2A842A.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="BTS2_BAM_config_seperateAS_2_configDone" border="0" alt="BTS2_BAM_config_seperateAS_2_configDone" src="http://blogical.se/blogs/johan/BTS2_BAM_config_seperateAS_2_configDone_thumb_04F89A6B.png" width="244" height="210" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;No issues.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Deploy BAM activities and views&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;Using bm.exe to deploy my BAM activity and view to my named instance.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/johan/BTS2_BAM_config_seperateAS_2_deployOK_2BC6B0AB.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="BTS2_BAM_config_seperateAS_2_deployOK" border="0" alt="BTS2_BAM_config_seperateAS_2_deployOK" src="http://blogical.se/blogs/johan/BTS2_BAM_config_seperateAS_2_deployOK_thumb_24A77433.png" width="244" height="75" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;No issues.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Using Tracking Profile Editor to connect my activity to an orchestration.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/johan/BTS2_BAM_config_seperateAS_btt_4B758A73.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="BTS2_BAM_config_seperateAS_btt" border="0" alt="BTS2_BAM_config_seperateAS_btt" src="http://blogical.se/blogs/johan/BTS2_BAM_config_seperateAS_btt_thumb_7243A0B3.png" width="244" height="196" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;No issues.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Running some data through the integration&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;BizTalk Server behaves as expected. After running some sample data through the integration I could open my BAMPrimaryImportDb and run a Select against it to view my data.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/johan/BTS2_BAM_config_seperateAS_Select_5632E1C8.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="BTS2_BAM_config_seperateAS_Select" border="0" alt="BTS2_BAM_config_seperateAS_Select" src="http://blogical.se/blogs/johan/BTS2_BAM_config_seperateAS_Select_thumb_23CF0E49.png" width="244" height="130" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Running my BAM_AN_&amp;lt;View&amp;gt; SSIS package&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This was one of my prime candidates beforehand of where it could possibly go wrong. However as I used Business Intelligence Development Studio to inspect the package I could see that it was configured with datasources for the databases that it worked with, including the Analysis Services database, and it clearly points to the correct configured instance.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/johan/BTS2_BAM_config_seperateAS_BIstudio_BAM_AN_OrderView_4A9D2489.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="BTS2_BAM_config_seperateAS_BIstudio_BAM_AN_OrderView" border="0" alt="BTS2_BAM_config_seperateAS_BIstudio_BAM_AN_OrderView" src="http://blogical.se/blogs/johan/BTS2_BAM_config_seperateAS_BIstudio_BAM_AN_OrderView_thumb_7575889B.png" width="191" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Running it caused no incidents that I could detect. After having run the package and processed the cube I was ready to look at the data in the cube to see if it got there as expected.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Viewing the Live Workbook&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The first thing to check was the live workbook (useless as I find this feature I wanted to see if it could read the data as expected).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/johan/BTS2_BAM_config_seperateAS_ExcelLiveWoorkbook_1C439EDC.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="BTS2_BAM_config_seperateAS_ExcelLiveWoorkbook" border="0" alt="BTS2_BAM_config_seperateAS_ExcelLiveWoorkbook" src="http://blogical.se/blogs/johan/BTS2_BAM_config_seperateAS_ExcelLiveWoorkbook_thumb_70FF07D4.png" width="244" height="241" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It could. And again, if we view the data connection properties here it point to my named instance.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/johan/BTS2_BAM_config_seperateAS_ExcelLiveWoorkbook_ConnectionProperties_54EE48E9.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="BTS2_BAM_config_seperateAS_ExcelLiveWoorkbook_ConnectionProperties" border="0" alt="BTS2_BAM_config_seperateAS_ExcelLiveWoorkbook_ConnectionProperties" src="http://blogical.se/blogs/johan/BTS2_BAM_config_seperateAS_ExcelLiveWoorkbook_ConnectionProperties_thumb_7BBC5F29.png" width="204" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;(sorry about the swedish locale here, but you get the point)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Viewing data in the BAM portal&lt;/strong&gt;&lt;/p&gt;            &lt;p&gt;Next up, what about the BAM portal – would it be able to understand the named instance of SSAS and retrieve my data?&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/johan/BTS2_BAM_config_seperateAS_BAMPortalView_228A756A.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="BTS2_BAM_config_seperateAS_BAMPortalView" border="0" alt="BTS2_BAM_config_seperateAS_BAMPortalView" src="http://blogical.se/blogs/johan/BTS2_BAM_config_seperateAS_BAMPortalView_thumb_42394F32.png" width="244" height="206" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://blogical.se/blogs/johan/BTS2_BAM_config_seperateAS_BAMPortalActivitySearch_5415E2FF.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="BTS2_BAM_config_seperateAS_BAMPortalActivitySearch" border="0" alt="BTS2_BAM_config_seperateAS_BAMPortalActivitySearch" src="http://blogical.se/blogs/johan/BTS2_BAM_config_seperateAS_BAMPortalActivitySearch_thumb_6FBA6EF5.png" width="244" height="176" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Yes. Both the Activity Search and the Aggregations show the data expected.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;I can find no reason why SQL Server 2008 R2 Analysis Service cannot be used on a named instance with BizTalk Server 2010. Granted, this was just a small test and I certainly haven’t investigated this through every aspect (as per the usual disclaimer), but it “Works on my Machine”.&lt;/p&gt;  &lt;p&gt;Do you know a reason that this will not work? Are you running this configuration yourself and can confirm further that it does work? Let me know…&lt;/p&gt;  &lt;p&gt;HTH   &lt;br /&gt;/Johan&lt;/p&gt;&lt;img src="http://blogical.se/aggbug.aspx?PostID=29158" width="1" height="1"&gt;</description><category domain="http://blogical.se/blogs/johan/archive/tags/BizTalk/default.aspx">BizTalk</category><category domain="http://blogical.se/blogs/johan/archive/tags/BAM/default.aspx">BAM</category><category domain="http://blogical.se/blogs/johan/archive/tags/Installation/default.aspx">Installation</category></item><item><title>Why BizTalk Server 2010 R2 should be BizTalk Server 2013</title><link>http://blogical.se/blogs/johan/archive/2012/01/03/why-biztalk-server-2010-r2-should-be-biztalk-server-2013.aspx</link><pubDate>Tue, 03 Jan 2012 18:33:00 GMT</pubDate><guid isPermaLink="false">19a535f3-07d9-4378-9c5a-8d019d91e842:29045</guid><dc:creator>Johan Hedberg</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;That BizTalk Server 2010 will have a successor and that the working title of that release is BizTalk Server 2010 R2 was &lt;a href="http://blogs.msdn.com/b/biztalk_server_team_blog/archive/2011/12/08/biztalk-server-2010-r2.aspx"&gt;announced at the BizTalk Server team blog&lt;/a&gt; in december 2011 and re-announced by folks like &lt;a href="http://kentweare.blogspot.com/2011/12/biztalk-server-2010-r2-announced.html"&gt;Kent Weare&lt;/a&gt;, &lt;a href="http://geekswithblogs.net/cyoung/archive/2011/12/09/biztalk-server-2010-r2-announced.aspx"&gt;Charles Young&lt;/a&gt;, &lt;a href="http://blogs.digitaldeposit.net/saravana/post/2011/12/09/BizTalk-Server-2010-R2-announcement-my-thoughts-and-more-compelling-reasons-customers-should-buy-BizTalk360.aspx"&gt;Saravana Kumar&lt;/a&gt;, &lt;a href="http://soa-thoughts.blogspot.com/2011/12/biztalk-server-2010-r2-continuing-story.html"&gt;Steef-Jan Wiggers&lt;/a&gt; among others. &lt;/p&gt;  &lt;p&gt;What some of them hints at but doesn’t discuss further is that the version naming “2010 R2” might not stick. There are good grounds for such guesses. Historically &lt;a href="http://blogs.msdn.com/b/biztalk_server_team_blog/archive/2009/04/28/microsoft-announces-general-availability-of-biztalk-server-2009.aspx"&gt;BizTalk Server 2009&lt;/a&gt; was initially called &lt;a href="http://blogical.se/blogs/johan/archive/2008/04/23/biztalk-server-2006-r3.aspx"&gt;BizTalk Server 2006 R3&lt;/a&gt; before &lt;a href="http://blogs.msdn.com/b/nabeelp/archive/2008/09/05/biztalk-server-2009-biztalk-server-2006-r3.aspx"&gt;the renaming&lt;/a&gt;&amp;#160;&lt;a href="http://www.microsoft.com/presspass/features/2008/sep08/09-05BizTalk.mspx"&gt;was announced&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/b/biztalk_server_team_blog/archive/2010/09/22/biztalk-server-2010-released-for-manufacturing.aspx"&gt;BizTalk Server 2010&lt;/a&gt; was called &lt;a href="http://www.brianloesgen.com/blog/2009/11/21/biztalk-server-2009-r2-announced.html"&gt;BizTalk Server 2009 R2&lt;/a&gt; when first announced &lt;a href="http://blogs.msdn.com/b/arjunbahree/archive/2010/03/24/biztalk-server-2009-r2-renamed-to-biztalk-server-2010.aspx"&gt;before it too was renamed&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;One might argue that the R2 is a good suffix in this release since it is a minor release, without an abundance of new functionality. That’s true. &lt;/p&gt;  &lt;p&gt;One might argue that there is only so much to a name, the important thing is that Microsoft is showing that it will continue to maintain and carefully evolve the product. Not so I say.&lt;/p&gt;  &lt;p&gt;There is one very important thing that goes into that name that should not be overlooked or underestimated – the support lifecycle. &lt;a href="http://support.microsoft.com/gp/lifepolicy"&gt;Microsoft’s support lifecycle policy&lt;/a&gt; says that products will have 5+5 (mainstream+extended) support. However, that applies to major versions. An excerpt:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;“Minor releases follow the same Support Lifecycle as the major product release.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;An example of this is Windows Server 2003 R2 which has the same Mainstream Support phase and Extended Support phase dates as the parent product, Windows Server 2003. Likewise, Windows Server 2008 R2 follows the same Support Lifecycle dates as the initial release of Windows Server 2008”&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;If the product will be BizTalk Server 2010 R2 (and assuming it will follow the general rule), it will not get an extended support lifecycle end date. Except for what is stated in the general policy you can see examples of this scheme throughout the product chain. &lt;a href="http://support.microsoft.com/lifecycle/?p1=9774"&gt;BizTalk Server 2006&lt;/a&gt; and &lt;a href="http://support.microsoft.com/lifecycle/?p1=12829"&gt;2006 R2&lt;/a&gt; are the closest examples, but also &lt;a href="http://support.microsoft.com/lifecycle/?p1=12925"&gt;Windows Server 2008&lt;/a&gt; and &lt;a href="http://support.microsoft.com/lifecycle/?p1=14134"&gt;2008 R2&lt;/a&gt;, and &lt;a href="http://support.microsoft.com/lifecycle/?p1=13165"&gt;SQL Server 2008&lt;/a&gt; and &lt;a href="http://support.microsoft.com/lifecycle/?p1=14917"&gt;2008 R2&lt;/a&gt; both follow suit. In all these cases the R2 version does not start a new 5+5 year period. Where as with &lt;a href="http://support.microsoft.com/lifecycle/?p1=12829"&gt;BizTalk Server 2006 R2&lt;/a&gt; to &lt;a href="http://support.microsoft.com/lifecycle/?p1=14042"&gt;BizTalk Server 2009&lt;/a&gt; and again to &lt;a href="http://support.microsoft.com/lifecycle/?p1=15637"&gt;BizTalk Server 2010&lt;/a&gt;, we got new lifecycle support dates.&lt;/p&gt;  &lt;p&gt;One of the major asks around BizTalk Server before the announcement was for Microsoft to clearly show its continued support for BizTalk Server as a product – they did that, but here is hoping that they will strengthen that statement further by giving us a BizTalk Server 2013 (or 2012).&lt;/p&gt;  &lt;p&gt;HTH   &lt;br /&gt;/Johan&lt;/p&gt;&lt;img src="http://blogical.se/aggbug.aspx?PostID=29045" width="1" height="1"&gt;</description><category domain="http://blogical.se/blogs/johan/archive/tags/BizTalk/default.aspx">BizTalk</category><category domain="http://blogical.se/blogs/johan/archive/tags/Maintenance/default.aspx">Maintenance</category><category domain="http://blogical.se/blogs/johan/archive/tags/Licensing/default.aspx">Licensing</category></item><item><title>The rogue agent that brought BizTalk to its knees</title><link>http://blogical.se/blogs/johan/archive/2012/01/02/the-rogue-agent-that-brought-biztalk-to-it-s-knees.aspx</link><pubDate>Mon, 02 Jan 2012 21:16:00 GMT</pubDate><guid isPermaLink="false">19a535f3-07d9-4378-9c5a-8d019d91e842:29027</guid><dc:creator>Johan Hedberg</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;To help others that might find themselves in a similar situation I am posting this odd experience we had with a BizTalk environment during the fall of 2011.&lt;/p&gt;
&lt;p&gt;We had&amp;nbsp;a pretty standard setup with good hardware to back it up all the way, set up after best practices. We were using the &lt;a href="http://bbw.codeplex.com/"&gt;BizTalk Benchmark Wizard (BBW)&lt;/a&gt; to benchmark our environment and were comming up short at around 70 msg/s. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogical.se/blogs/johan/BBW20111107.png"&gt;&lt;img style="width:308px;height:204px;" border="0" src="http://blogical.se/blogs/johan/BBW20111107.png" width="357" height="254" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We should have had values that were around 900 msg/s. Overall, from scrutinizing the performance logs using Performance Analysis of Logs (&lt;a href="http://pal.codeplex.com/"&gt;PAL&lt;/a&gt;) as well as our own best judgement, we at first couldn&amp;#39;t find anything alarming. Processor, Memory, disk, network etc. All good. We also ran things like the BizTalk Best Practice Analyzer (&lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=15963"&gt;BizTalk BPA&lt;/a&gt;), the MessageBoxViewer tool (&lt;a href="http://blogs.technet.com/b/jpierauc/archive/2007/12/18/msgboxviewer.aspx"&gt;MBV&lt;/a&gt;), the &lt;a href="http://msdn.microsoft.com/en-us/library/gg634550.aspx"&gt;Monitor BizTalk Server &lt;/a&gt;SQL Server Agent job, but it all&amp;nbsp;came back looking&amp;nbsp;good. The environment just seemed... slow.&lt;/p&gt;
&lt;p&gt;As it turns out the&amp;nbsp;processor was especially&amp;nbsp;interesting knowing what turned out to be the final finding. The processors (two of them per server each of them with&amp;nbsp;6 cores per processor) was on an average very low, but as it turns out there was one process that was taking the equivalent of 1 full core of power (its Process % Processor time was at 100), but since it didn&amp;#39;t stay on one core it was hard to spot the problem. PAL doesn&amp;#39;t have an alert for this, and finding the one process and performance counter among all of them is not so easy.&lt;/p&gt;
&lt;p&gt;The process was the &amp;quot;HP Insight Server Agents&amp;quot; (cqmgserv.exe). The theory goes that as it was failing, recovering&amp;nbsp;and retrying it was pumping the machine full of events and clogging up the underlying bus. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogical.se/blogs/johan/cqmgserv.exe.png"&gt;&lt;img border="0" src="http://blogical.se/blogs/johan/cqmgserv.exe.png" width="218" height="231" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The closest we got to a match in the form of a support document from HP was &lt;a href="http://h200003.www2.hp.com/bizsupport/TechSupport/Document.jsp?lang=en&amp;amp;cc=en&amp;amp;taskId=110&amp;amp;prodSeriesId=397634&amp;amp;prodTypeId=15351&amp;amp;prodSeriesId=397634&amp;amp;objectID=c00568181"&gt;this&lt;/a&gt;. Once the service was disabled the tests ran as expected att around 1000 msg/s. Later the service was updated to a newer version and started again without causing the same issues.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://blogical.se/blogs/johan/BBW20111107_2.png"&gt;&lt;img style="width:305px;height:194px;" border="0" src="http://blogical.se/blogs/johan/BBW20111107_2.png" width="350" height="264" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The purpose of this post is not to lay the blame on HP&amp;#39;s door&amp;nbsp;but instead to enlighten readers that similar situations can occur and to&amp;nbsp;highlight the value of a tool like&amp;nbsp;&lt;a href="http://bbw.codeplex.com/"&gt;BBW&lt;/a&gt;, since without it this exception would have likely never got caught and this server would have gone into production delivering much less value on the investment than it should.&lt;/p&gt;
&lt;p&gt;HTH&lt;br /&gt;/Johan&lt;/p&gt;&lt;img src="http://blogical.se/aggbug.aspx?PostID=29027" width="1" height="1"&gt;</description><category domain="http://blogical.se/blogs/johan/archive/tags/BizTalk/default.aspx">BizTalk</category><category domain="http://blogical.se/blogs/johan/archive/tags/Performance/default.aspx">Performance</category></item><item><title>Truncate BizTalk Servers database log files to clear up space</title><link>http://blogical.se/blogs/johan/archive/2011/12/22/truncate-biztalk-servers-database-log-files-to-clear-up-space.aspx</link><pubDate>Thu, 22 Dec 2011 20:50:00 GMT</pubDate><guid isPermaLink="false">19a535f3-07d9-4378-9c5a-8d019d91e842:28826</guid><dc:creator>Johan Hedberg</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;First: A Disclaimer. Do NOT attempt this in your production environment.You risk loosing data.&lt;/p&gt;
&lt;p&gt;We had an issue in a test environment where the &lt;a class="" href="http://technet.microsoft.com/en-us/library/aa546765.aspx"&gt;Backup BizTalk job&lt;/a&gt; was not configured and had caused the log files to fill the disk to it&amp;#39;s limit. The data in the environment wasn&amp;#39;t important and destroying a coherent backup chain and point in time restore was not a big deal. We just needed to get the environment back fast to allow test to continue.&lt;/p&gt;
&lt;p&gt;I quickly wrote and ran the script below that does the job of truncating BizTalk Servers log files&amp;nbsp;to make the environment functional again. Be aware that this will break the coherence of the log backup chain. To get a point in time that you can restore to you could opt to take a full backup immediatly following this operation if that is important to you. Before running this script you should stop all services that uses the database and make sure that all connections are closed if you want to make sure that your databases&amp;nbsp;are left in a&amp;nbsp;transactionally coherent state.&lt;/p&gt;USE&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;master&lt;br /&gt;ALTER&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;DATABASE&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; BizTalkMgmtDb &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;SET&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;RECOVERY&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;SIMPLE&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;WITH&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; NO_WAIT&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;ALTER&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;DATABASE&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; BizTalkDTADb &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;SET&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;RECOVERY&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;SIMPLE&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;WITH&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; NO_WAIT&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;ALTER&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;DATABASE&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; BizTalkMsgBoxDb &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;SET&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;RECOVERY&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;SIMPLE&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;WITH&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; NO_WAIT&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;GO&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt; 
&lt;p dir="ltr"&gt;Use&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; BizTalkMgmtDb&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;DBCC&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; SHRINKFILE&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;(&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#ff0000" size="2"&gt;&lt;font face="Tms Rmn" color="#ff0000" size="2"&gt;&lt;font face="Tms Rmn" color="#ff0000" size="2"&gt;N&amp;#39;BizTalkMgmtDb_log&amp;#39;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;,&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; 0&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;,&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; TRUNCATEONLY&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;)&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;GO&lt;/p&gt;Use&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; BizTalkDTADb&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;DBCC&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; SHRINKFILE&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;(&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#ff0000" size="2"&gt;&lt;font face="Tms Rmn" color="#ff0000" size="2"&gt;&lt;font face="Tms Rmn" color="#ff0000" size="2"&gt;N&amp;#39;BizTalkDTADb_log&amp;#39;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;,&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; 0&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;,&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; TRUNCATEONLY&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;)&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;GO&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt; 
&lt;p dir="ltr"&gt;Use&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; BizTalkMsgBoxDb&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;DBCC&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; SHRINKFILE&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;(&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#ff0000" size="2"&gt;&lt;font face="Tms Rmn" color="#ff0000" size="2"&gt;&lt;font face="Tms Rmn" color="#ff0000" size="2"&gt;N&amp;#39;BizTalkMsgBoxDb_log&amp;#39;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;,&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; 0&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;,&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; TRUNCATEONLY&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;)&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;GO&lt;/p&gt;
&lt;p dir="ltr"&gt;USE&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;master&lt;br /&gt;ALTER&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;DATABASE&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; BizTalkMgmtDb &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;SET&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;RECOVERY&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;FULL&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;WITH&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; NO_WAIT&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;&lt;font face="Tms Rmn" color="#808080" size="2"&gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;ALTER&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;DATABASE&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; BizTalkDTADb &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;SET&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;RECOVERY&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;FULL&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;WITH&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; NO_WAIT&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;ALTER&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;DATABASE&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; BizTalkMsgBoxDb &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;SET&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;RECOVERY&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;FULL&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;WITH&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" size="2"&gt;&lt;font face="Tms Rmn" size="2"&gt; NO_WAIT&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;GO&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;p&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Arial" color="#000000"&gt;Keep in mind that this is just a sample, add and deduct databases as needed, change the name of log files etc.&amp;nbsp;Once done restart the BizTalk Services and you should be good to go.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff" size="2"&gt;&lt;font face="Arial" color="#000000"&gt;You really should, as a first, second and third option, configure the &lt;a class="" href="http://technet.microsoft.com/en-us/library/aa546765.aspx"&gt;Backup BizTalk job&lt;/a&gt; to stop unchecked log file growth.&amp;nbsp;The backup job will&amp;nbsp;make sure that log files don&amp;#39;t grow&amp;nbsp;out of control. You will however&amp;nbsp;need to set something up to clear away the backup files created instead. Here is &lt;a class="" href="http://blogical.se/blogs/johan/archive/2009/11/10/cleaning-up-biztalk-database-backups.aspx"&gt;one option for doing that&lt;/a&gt;.&amp;nbsp;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;There is&amp;nbsp;also something&amp;nbsp;you can do to reduce the size of the log files -&amp;nbsp;enable compression. You can read more about that &lt;a class="" href="http://connectedthoughts.wordpress.com/2010/06/22/biztalk-server-2010-backup-compression/"&gt;here&lt;/a&gt;.&lt;font face="Tms Rmn" color="#0000ff"&gt;&lt;font face="Tms Rmn" color="#0000ff"&gt;&lt;font face="Tms Rmn" color="#0000ff"&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;p&gt;&lt;font size="2"&gt;This log file growth happens because BizTalk Servers databases by default uses the FULL recovery mode. Setting the BizTalk Server databases in SIMPLE mode permanently is a so-so idea. If you really do not need and will never&amp;nbsp;do backups and understand that restore or recover in this case will mean re-install and start from scratch, then ok. If that is not the case, then SIMPLE mode is a bad idea. You can read more about why &lt;a class="" href="http://blogs.msdn.com/b/biztalk_core_engine/archive/2007/01/12/disaster-recovery-part-2.aspx"&gt;here&lt;/a&gt;. I&amp;#39;ll give a hint though - DTC transactions.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;HTH&lt;br /&gt;/Johan&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Tms Rmn" color="#0000ff"&gt;&lt;font face="Tms Rmn" color="#0000ff"&gt;&lt;font face="Tms Rmn" color="#0000ff"&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;img src="http://blogical.se/aggbug.aspx?PostID=28826" width="1" height="1"&gt;</description></item><item><title>Used and unused hosts sql script</title><link>http://blogical.se/blogs/johan/archive/2011/12/22/used-and-unused-hosts-sql-script.aspx</link><pubDate>Thu, 22 Dec 2011 19:34:00 GMT</pubDate><guid isPermaLink="false">19a535f3-07d9-4378-9c5a-8d019d91e842:28823</guid><dc:creator>Johan Hedberg</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;This is just a log post of a script I put together. When setting up a plattform we are not always certain what hosts and handlers the customer wants. We usually set it up according to common requirements and best practices. In that case it&amp;#39;s also interesting to see what hosts are indeed used and not used once the solution is deployed, so you know which ones can be removed if requested. This is a sql script for that. Although this information can be found out using the Administration Console these kind of reports are not easy to get out and there is no one view for it. It&amp;#39;s much easier to access the database BizTalkMgmtDb&amp;nbsp;directly for these things.&lt;/p&gt;
&lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;select&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; h1&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;Name &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;from&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; adm_Host h1 &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;where&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; h1&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;Name &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;not&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;in(&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;select&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;distinct&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; h&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;Name &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;as&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; Host &lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;font color="#008000" size="2"&gt;--, a.Name as Adapter, rp.nvcName as Port&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;from&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; adm_host h &lt;br /&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;join&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; adm_receivehandler rh &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;on&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; h&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;id &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; rh&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;HostId&lt;br /&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;join&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; adm_receivelocation rl &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;on&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; rl&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;ReceiveHandlerId &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; rh&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;Id&lt;br /&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;join&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; bts_receiveport rp &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;on&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; rp&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;nID &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; rl&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;ReceivePortId&lt;br /&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;join&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; adm_adapter a &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;on&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; a&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;id &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; rh&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;AdapterId&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;UNION&lt;br /&gt;select&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;distinct&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; h&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;Name &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;as&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; Host &lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;font color="#008000" size="2"&gt;--, a.Name as Adapter, sp.nvcName as Port&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;from&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; adm_Host h&lt;br /&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;join&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; adm_SendHandler sh &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;on&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; h&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;Id &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; sh&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;HostId&lt;br /&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;join&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; bts_sendport_transport spt &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;on&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; spt&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;nSendHandlerID &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; sh&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;Id&lt;br /&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;join&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; bts_sendport sp &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;on&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; sp&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;nID &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; spt&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;nSendPortID&lt;br /&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;join&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; adm_Adapter a &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;on&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; sh&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;AdapterId &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; a&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;Id&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;UNION&lt;br /&gt;select&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;distinct&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; h&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;Name &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;as&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; Host &lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;font color="#008000" size="2"&gt;--, &amp;#39;*Orchestration&amp;#39; as Adapter, o.nvcName as Port&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;from&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; adm_Host h&lt;br /&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;join&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; bts_orchestration o &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;on&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; h&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;Id &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; o&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;nAdminHostID&lt;br /&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;font color="#008000" size="2"&gt;--UNION&lt;br /&gt;--select distinct h.Name as Host, * --, &amp;#39;*Tracking&amp;#39; as Adapter, NULL as Port&lt;br /&gt;--from adm_Host h&lt;br /&gt;--where h.HostTracking = 1&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#000000"&gt;HTH&lt;br /&gt;/Johan&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;img src="http://blogical.se/aggbug.aspx?PostID=28823" width="1" height="1"&gt;</description><category domain="http://blogical.se/blogs/johan/archive/tags/BizTalk/default.aspx">BizTalk</category><category domain="http://blogical.se/blogs/johan/archive/tags/Maintenance/default.aspx">Maintenance</category><category domain="http://blogical.se/blogs/johan/archive/tags/SQL/default.aspx">SQL</category></item><item><title>Updates to bLogical.BizTalkManagement powershell BizTalk Server database restore commandlets</title><link>http://blogical.se/blogs/johan/archive/2011/12/19/updates-to-blogical-biztalkmanagement-powershell-biztalk-server-database-restore-commandlets.aspx</link><pubDate>Mon, 19 Dec 2011 14:19:00 GMT</pubDate><guid isPermaLink="false">19a535f3-07d9-4378-9c5a-8d019d91e842:28774</guid><dc:creator>Johan Hedberg</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I&amp;#39;ve uploaded a new version of the &lt;a class="" href="http://blogical.se/files/folders/downloads/entry22218.aspx"&gt;bLogical.BizTalkManagement restore powershell commandlets&lt;/a&gt; originally &lt;a class="" href="http://blogical.se/blogs/mikael/archive/2011/02/22/powershell-cmdlet-for-biztalk-db-restore.aspx"&gt;posted by Mikael&lt;/a&gt;. The updates are minor and adress the parsing of filenames and cleanup of the code to get rid of some god intentions that never became more then intentions, aka unused code.&lt;/p&gt;
&lt;p&gt;If you have no idea what I am talking about, feel free to read the &lt;a class="" href="http://blogical.se/blogs/mikael/archive/2011/02/22/powershell-cmdlet-for-biztalk-db-restore.aspx"&gt;original article&lt;/a&gt; and&amp;nbsp;&lt;a class="" href="http://blogical.se/files/folders/downloads/entry22218.aspx"&gt;give them a try&lt;/a&gt;. We are using these heavily for customers instead of log shipping and it really makes the whole process of restoring your databases&amp;nbsp;easy.&lt;/p&gt;&lt;img src="http://blogical.se/aggbug.aspx?PostID=28774" width="1" height="1"&gt;</description><category domain="http://blogical.se/blogs/johan/archive/tags/Maintenance/default.aspx">Maintenance</category><category domain="http://blogical.se/blogs/johan/archive/tags/Administration/default.aspx">Administration</category><category domain="http://blogical.se/blogs/johan/archive/tags/BizTalk+Server+2010/default.aspx">BizTalk Server 2010</category></item><item><title>Azure Service Bus EAI/EDI December 2011 CTP – Content Based Routing</title><link>http://blogical.se/blogs/mikael/archive/2011/12/18/azure-service-bus-eai-edi-december-2011-ctp-content-based-routing.aspx</link><pubDate>Sun, 18 Dec 2011 14:11:00 GMT</pubDate><guid isPermaLink="false">19a535f3-07d9-4378-9c5a-8d019d91e842:28750</guid><dc:creator>wmmihaa</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;In this blog post we are going look at how to manage routing in the new Azure ServiceBus EAI CTP. &lt;/p&gt;  &lt;p&gt;As a scenario, I’m going to send a request for information (RFI) to some of my fellow MVP’s. To do that, I’m going to create a One-Way Xml Bridge, to receive the messages. After receiving the RFI message I tend to route it to one of three queues.&lt;/p&gt;  &lt;h3&gt;1. Create a ServiceBus project&lt;/h3&gt;  &lt;p&gt;If you haven’t already downloaded the SDK, you can do this &lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=17691"&gt;here&lt;/a&gt;. After you’ve installed the SDK, you can sign in to the &lt;a href="https://portal.appfabriclabs.com/"&gt;labs environment&lt;/a&gt; using a Windows Live ID.&lt;/p&gt;  &lt;p&gt;Open Visual Studio 2010, and select Create Project. In the list of project templates, select &lt;i&gt;ServiceBus&lt;/i&gt;, and &lt;i&gt;Enterprise Application Integration&lt;/i&gt;. Give it a name and click Ok.&lt;/p&gt;  &lt;h3&gt;&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/mikael/1_53EBBDFE.png"&gt;&lt;img src="http://blogical.se/blogs/mikael/1_thumb_60E59E0F.png" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="1" alt="1" width="640" border="0" height="443" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;2. Create a Message Type&lt;/h3&gt;  &lt;p&gt;Right-click the project and select &lt;i&gt;Add-&amp;gt;New Item. &lt;/i&gt;At this time there are two types of artifacts you can add; Schemas and Maps. Select &lt;i&gt;Schema&lt;/i&gt; and sett an appropriate name. In my case I set the name to RFI.xsd. Continue building up your schema. Notice, you don’t have to promote any nodes as you’d have to do in BizTalk.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/mikael/2a_4D583E6E.png"&gt;&lt;img src="http://blogical.se/blogs/mikael/2a_thumb_6AEA196D.png" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="2a" alt="2a" width="640" border="0" height="445" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;3. Designing the Bridge&lt;/h3&gt;  &lt;p&gt;Double-click the BridgeConfiguration.bcs and drag a &lt;i&gt;Xml One-Way Bridge&lt;/i&gt; from the toolbox to the canvas. This is going to be your entry point to your process, similar to a Receive Location in BizTalk. Set the name appropriately, and notice the Router Address which is going to be your endpoint in Azure ServiceBus.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/mikael/4_4D288EAE.png"&gt;&lt;img src="http://blogical.se/blogs/mikael/4_thumb_4B679D0D.png" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="4" alt="4" width="640" border="0" height="378" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;4. Add Queues&lt;/h3&gt;  &lt;p&gt;As stated before, the incoming RFI message is going to be routed to any of the three queues. You might not your message relayed to a queue, and could there for use any of the other Destinations such as &lt;i&gt;Relay&lt;/i&gt;- or &lt;i&gt;External Service EndPoints. &lt;/i&gt;Either way, the principle of routing is the same.&lt;/p&gt;  &lt;p&gt;Connect the &lt;i&gt;Bridge&lt;/i&gt; with all &lt;i&gt;Destinations&lt;/i&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/mikael/5_62466E89.png"&gt;&lt;img src="http://blogical.se/blogs/mikael/5_thumb_56447E55.png" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="5" alt="5" width="624" border="0" height="480" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;5. Configure the Bridge&lt;/h3&gt;  &lt;p&gt;Next we’ll define the incoming message type(s). Double-click your Bridge (ReceiveRFI in my case). Click the plus button in the Message Types stage. Select the Message Type you created earlier, and click the arrow button on the right.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/mikael/6_5493B281.png"&gt;&lt;img src="http://blogical.se/blogs/mikael/6_thumb_13F16612.png" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="6" alt="6" width="640" border="0" height="439" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;6. Enrich the Message&lt;/h3&gt;  &lt;p&gt;This is the interesting step, where we are going to promote some fields in the payload so that we can route on these in the next step.&lt;/p&gt;  &lt;p&gt;First open your schema and select the node you care to use for routing (in my case &lt;i&gt;Receive&lt;/i&gt;). Copy the &lt;i&gt;Instance XPath&lt;/i&gt; from the Property window.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/mikael/8_12ACCD33.png"&gt;&lt;img src="http://blogical.se/blogs/mikael/8_thumb_714D2796.png" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="8" alt="8" width="640" border="0" height="475" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Then double-click the Bridge, select either of the Enrich stages, and then click the &lt;i&gt;Property Definition&lt;/i&gt; button in the Property window. There are two Enrich stages, as you might be using a Transformation, in which case you might want to promote fields from either the original message or the transformed message.&lt;/p&gt;  &lt;p&gt;For more information about transformations, have a look at Kent’s &lt;a href="http://middlewareinthecloud.com/2011/12/17/azure-service-bus-eaiedi-december-2011-ctp-new-mapper/"&gt;post&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/mikael/7_5A3EA65A.png"&gt;&lt;img src="http://blogical.se/blogs/mikael/7_thumb_750ACC66.png" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="7" alt="7" width="566" border="0" height="480" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Set the Type to XPath, and paste the XPath expression in the Identifier text box. Select the Message Type and set the name of the property. Finish be setting the data type and click the Add button (+). Close the dialog by clicking the Ok button. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/mikael/9_6587BA97.png"&gt;&lt;img src="http://blogical.se/blogs/mikael/9_thumb_3DE13E6D.png" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="9" alt="9" width="494" border="0" height="480" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;7. Set the routing conditions&lt;/h3&gt;  &lt;p&gt;As you have promoted your property (or properties), you’re now ready to set the Filter Conditions on each of the Connectors. Select one of the selectors and type the Filter in the Property window. Eg. receiver=’SteefJan’ or customerId=1234. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/mikael/10_15CE8F4E.png"&gt;&lt;img src="http://blogical.se/blogs/mikael/10_thumb_5BDF4C61.png" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="10" alt="10" width="640" border="0" height="299" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;8. Create the Queues&lt;/h3&gt;  &lt;p&gt;Before we deploy the solution, you need to create the queues. There are several tools for this, but with the &lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=17691"&gt;samples&lt;/a&gt; comes a MessageReceiver project you can use. &lt;/p&gt;  &lt;p&gt;Type &lt;font face="Courier New"&gt;MessageReceiver.exe &amp;lt;Your namespace&amp;gt; owner &amp;lt;Your issuer key&amp;gt; &amp;lt;Queue name&amp;gt; Create&lt;/font&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;After creating the queues verify they are created in the &lt;a href="https://portal.appfabriclabs.com/"&gt;portal&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/mikael/11_28A312F8.png"&gt;&lt;img src="http://blogical.se/blogs/mikael/11_thumb_1F66D7B7.png" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="11" alt="11" width="640" border="0" height="265" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;9. Deploy your solution&lt;/h3&gt;  &lt;p&gt;Right-click the project and select &lt;i&gt;Deploy&lt;/i&gt;. Supply the secret.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/mikael/12_3E3D4B95.png"&gt;&lt;img src="http://blogical.se/blogs/mikael/12_thumb_6B523863.png" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="12" alt="12" width="640" border="0" height="314" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;10. Test the solution&lt;/h3&gt;  &lt;p&gt;Along with the MessageReceiver tool, you’ll find a MessageSender project as well. Just type:&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;MessageSender.exe &amp;lt;Your namespace&amp;gt; &amp;lt;Your issuer key&amp;gt; &amp;lt;Your endpoint&amp;gt; &amp;lt;Path to sample file&amp;gt; application/xml&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Use the MessgeReceiver to get the messages from the queues: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/mikael/14_29D7860A.png"&gt;&lt;img src="http://blogical.se/blogs/mikael/14_thumb_3494DD5F.png" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="14" alt="14" width="640" border="0" height="317" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;HTH&lt;/p&gt;&lt;img src="http://blogical.se/aggbug.aspx?PostID=28750" width="1" height="1"&gt;</description><category domain="http://blogical.se/blogs/mikael/archive/tags/Azure/default.aspx">Azure</category><category domain="http://blogical.se/blogs/mikael/archive/tags/EAI/default.aspx">EAI</category><category domain="http://blogical.se/blogs/mikael/archive/tags/ServiceBus/default.aspx">ServiceBus</category></item><item><title>Using User-defined tables as stored procedure parameter</title><link>http://blogical.se/blogs/mikael/archive/2011/12/15/using-user-defined-tables-as-stored-procedure-parameter.aspx</link><pubDate>Thu, 15 Dec 2011 12:47:00 GMT</pubDate><guid isPermaLink="false">19a535f3-07d9-4378-9c5a-8d019d91e842:28599</guid><dc:creator>wmmihaa</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;The WCF-SQL adapter provides support for multiple inserts through the &lt;i&gt;Consume Adapter Service &lt;/i&gt;feature:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/mikael/image_06EBD8F2.png"&gt;&lt;img src="http://blogical.se/blogs/mikael/image_thumb_269AB2BA.png" style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" alt="image" width="541" border="0" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;However, sometimes you might want to validate the data on the SQL side before before making the insert. For instance, if you have a collection of Customers, where some of them might already exist in the database, and should only be updated. In such a case, you’d have to first make a database lookup, to determine the state of the Customer and then make either an insert or update.&lt;/p&gt;  &lt;p&gt;In such a case, using &lt;a href="http://msdn.microsoft.com/en-us/library/bb522526.aspx"&gt;user-defined table types&lt;/a&gt; might be your solution. User-defined tables are similar to ordinary tables, but can be passed in as a parameter.&lt;/p&gt;  &lt;p&gt;In my sample, I have a &lt;i&gt;Contacts&lt;/i&gt; table, and I’m receiving a collection of &lt;i&gt;Persons&lt;/i&gt; where some entities are new and some are to be updated. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/mikael/image_2D4DBC3D.png"&gt;&lt;img src="http://blogical.se/blogs/mikael/image_thumb_78412D0C.png" style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" alt="image" width="644" border="0" height="159" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;Create the User-Defined Table Type&lt;/h3&gt;  &lt;p&gt;The user-defied table type will serve as our contract. &lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; TYPE [dbo].[InsertContactRequest] &lt;span class="kwrd"&gt;AS&lt;/span&gt; &lt;span class="kwrd"&gt;TABLE&lt;/span&gt;
(
    [PersonNo] [&lt;span class="kwrd"&gt;varchar&lt;/span&gt;](50) &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;,
    [FirstName] [&lt;span class="kwrd"&gt;varchar&lt;/span&gt;](50) &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;,
    [LastName] [&lt;span class="kwrd"&gt;varchar&lt;/span&gt;](50) &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;,
    [Phone] [&lt;span class="kwrd"&gt;varchar&lt;/span&gt;](50) &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;,
    &lt;span class="kwrd"&gt;PRIMARY&lt;/span&gt; &lt;span class="kwrd"&gt;KEY&lt;/span&gt; &lt;span class="kwrd"&gt;CLUSTERED&lt;/span&gt; ([PersonNo] &lt;span class="kwrd"&gt;ASC&lt;/span&gt;)&lt;span class="kwrd"&gt;WITH&lt;/span&gt; (IGNORE_DUP_KEY = &lt;span class="kwrd"&gt;OFF&lt;/span&gt;)
)&lt;/pre&gt;

&lt;h3&gt;Create the Stored Procedure&lt;/h3&gt;

&lt;p&gt;The stored procedure takes the user-defined table type as a parameter (@insertContactRequest), then updates all existing rows and inserting all new once.&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;PROCEDURE&lt;/span&gt; [dbo].[sp_InsertContacts] @insertContactRequest InsertContactRequest READONLY
&lt;span class="kwrd"&gt;AS&lt;/span&gt;
&lt;span class="kwrd"&gt;BEGIN&lt;/span&gt;
    
    &lt;span class="kwrd"&gt;UPDATE&lt;/span&gt; dbo.Contacts 
    &lt;span class="kwrd"&gt;SET&lt;/span&gt; Phone = r.Phone
    &lt;span class="kwrd"&gt;FROM&lt;/span&gt; dbo.Contacts c
    &lt;span class="kwrd"&gt;JOIN&lt;/span&gt; @insertContactRequest r &lt;span class="kwrd"&gt;on&lt;/span&gt; r.PersonNo = c.PersonNo

    &lt;span class="kwrd"&gt;INSERT&lt;/span&gt; &lt;span class="kwrd"&gt;INTO&lt;/span&gt; dbo.Contacts (PersonNo, FirstName, LastName, Phone)
    &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; r.PersonNo, r.FirstName, r.LastName, r.Phone
    &lt;span class="kwrd"&gt;FROM&lt;/span&gt;    @insertContactRequest r
    &lt;span class="kwrd"&gt;WHERE&lt;/span&gt;    r.PersonNo &lt;span class="kwrd"&gt;not&lt;/span&gt; &lt;span class="kwrd"&gt;in&lt;/span&gt;(&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; PersonNo &lt;span class="kwrd"&gt;FROM&lt;/span&gt; dbo.Contacts)
       
END&lt;/pre&gt;

&lt;h3&gt;Generate BizTalk artefacs&lt;/h3&gt;

&lt;p&gt;1. In you Visual Studio, right-click the BizTalk project and select &lt;i&gt;Add-&amp;gt;Add Generated Items&lt;/i&gt;. Select &lt;i&gt;Consume Adapter Service.&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogical.se/blogs/mikael/image_5B0F7334.png"&gt;&lt;img src="http://blogical.se/blogs/mikael/image_thumb_2FCADC2D.png" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" alt="image" width="644" border="0" height="446" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2. In the &lt;i&gt;Consume Adapter Service &lt;/i&gt;dialog, click the configure button to set the credentials. Click Ok, and then &lt;i&gt;Connect&lt;/i&gt;. &lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogical.se/blogs/mikael/image_089092F8.png"&gt;&lt;img src="http://blogical.se/blogs/mikael/image_thumb_134DEA4D.png" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" alt="image" width="542" border="0" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3. In the tree-view, select &lt;i&gt;Strongly Typed Procedures&lt;/i&gt;, and select your stored procedure in the right pane. Click &lt;i&gt;Add&lt;/i&gt; and Ok to generate the schemas.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogical.se/blogs/mikael/image_79E5E712.png"&gt;&lt;img src="http://blogical.se/blogs/mikael/image_thumb_1994C0DB.png" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" alt="image" width="644" border="0" height="456" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4. Make your transformation, and complete your solution.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogical.se/blogs/mikael/image_6011B0E3.png"&gt;&lt;img src="http://blogical.se/blogs/mikael/image_thumb_5FA57DEE.png" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" alt="image" width="644" border="0" height="456" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogical.se/files/folders/downloads/entry28598.aspx"&gt;Here is the sample source.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;HTH&lt;/p&gt;

&lt;p&gt;(Kudos Daniel Östberg)&lt;/p&gt;&lt;img src="http://blogical.se/aggbug.aspx?PostID=28599" width="1" height="1"&gt;</description><category domain="http://blogical.se/blogs/mikael/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogical.se/blogs/mikael/archive/tags/SQL/default.aspx">SQL</category><category domain="http://blogical.se/blogs/mikael/archive/tags/BizTalk+2010/default.aspx">BizTalk 2010</category></item><item><title>Microsoft BizTalk server 2010 patterns - a review</title><link>http://blogical.se/blogs/mikael_sand/archive/2011/12/14/microsoft-biztalk-server-2010-patterns-a-review.aspx</link><pubDate>Wed, 14 Dec 2011 13:36:43 GMT</pubDate><guid isPermaLink="false">19a535f3-07d9-4378-9c5a-8d019d91e842:28526</guid><dc:creator>Mikael Sand</dc:creator><slash:comments>0</slash:comments><description>&lt;blockquote&gt;   &lt;p&gt;”There is no Hello World in BizTalk”     &lt;br /&gt;- &lt;a href="http://www.linkedin.com/in/danrosanova"&gt;Dan Rosanova&lt;/a&gt; (author of the book)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/mikael_sand/4606EN_Biztalk20server20201020patterns_FrontCover_45431EBD.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;float:left;border-top:0px;border-right:0px;padding-top:0px;" title="4606EN_Biztalk%20server%202010%20patterns_FrontCover" border="0" alt="4606EN_Biztalk%20server%202010%20patterns_FrontCover" align="left" src="http://blogical.se/blogs/mikael_sand/4606EN_Biztalk20server20201020patterns_FrontCover_thumb_347B740F.jpg" width="263" height="299" /&gt;&lt;/a&gt;I really want to like &lt;a href="http://www.packtpub.com/microsoft-biztalk-server-2010-patterns/book"&gt;this book&lt;/a&gt;. Right off the bat the title is awesome with a capital A. Right up my alley as it were. For a long time there has been a lack of literature about the more practical details around patterns and anti-patterns and how they are implemented in BizTalk. I am not saying that there has not been anything about patterns, there is a ton of them, but nothing really about how to implement them in a BizTalk solution, and how to do that in practice. Enter this book.&lt;/p&gt;  &lt;p&gt;Oh, how I would like to like his book. I am however somewhat disappointed, but you should definitely buy it.&lt;/p&gt;  &lt;h2&gt;Insightful author&lt;/h2&gt;  &lt;p&gt;There are chapters and headings that underline how very insightful the author is about BizTalk and its implementation. Headers that are very helpful in summarizing all the disparate definitions that you might already have about BizTalk. One particular header is “When to use BizTalk”, which does the best job ever to answer that question. Another is “Visual Studio solution structure” that explains in very practical and well-grounded points how the author feels the solution has to be structured. In my opinion; if you do not already have a solution structure document, use this one.&lt;/p&gt;  &lt;h2&gt;Author style&lt;/h2&gt;  &lt;p&gt;The text oozes with practical knowledge and a lot of humor as well. There is no doubt in my mind what so ever that the author, does not only know what he is talking about, but also that there is quite a lot that has been left out of the book in order to shorten the text. He does a &lt;i&gt;very&lt;/i&gt; good job of taking a practical approach to development and architecture. He makes use of the same example solution throughout the book. This makes you feel for the solution as you might do for a real life solution. You started it and have seen it grow from a mere file-copy solution to being a core process handler in the enterprise. Another good point in doing this is that he shows the importance of doing the architecture right from the start. To really think ahead and figure out what might be next in order not to “paint yourself into a corner”. I think there is too little of this in the book. I would have liked more of a discussion about what might be the best solution within the current context. As all of you know; the problem usually is not to find a solution, but to find the best one within a certain context. That is the beauty of BizTalk in my opinion.&lt;/p&gt;  &lt;p&gt;Also, once I would like to read a BizTalk book that assumes I know BizTalk and can tell the difference between a pipeline and a map, and know how to use custom xslt. This book does not, and spends few too many pages about the basics. I think this is due to the editor or publisher. They think you need that in order to make the book complete. I would say you do not. Anyone that would pick up this book feels confident about the basics. The title says so.&lt;/p&gt;  &lt;h2&gt;Practical approach&lt;/h2&gt;  &lt;p&gt;The author takes a very practical approach, and together with the code supplied you can easily follow along and learn hands on as well. Once again I would like to point out that some parts might focus too much on the practical but some people really like that so it is just an opinion.&lt;/p&gt;  &lt;p&gt;Then there is another thing about the book as a whole. Due to the fact that the author wants you to see the solution grow as it might in a real life scenario, the disposition of the book is partly totally off the wall. The same chapter covers Unit testing and BAM, and another mixes configuring WCF-receive and BRE.&lt;/p&gt;  &lt;h2&gt;So tell me, what should I do?&lt;/h2&gt;  &lt;p&gt;So, bottom line: Should you buy this book? Of course you should! The technical aspect of it together with the experience of the author is an opportunity you should not miss. Another point I would like to reiterate is that it fills a gap in the integration literature and I would especially recommend it to people that have worked with BizTalk for two years and changed projects during that time. It might be time to move ahead and have an option during the next ICC meeting.&lt;/p&gt;  &lt;p&gt;Though I would like to discuss certain parts about solution structure with the author, there are a lot of tips and tricks I will use in the future.&lt;/p&gt;  &lt;p&gt;More info on the author: &lt;a href="http://www.novaenterprisesystems.com/Blog/"&gt;blog&lt;/a&gt;, &lt;a href="https://twitter.com/#!/DanRosanova"&gt;twitter&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogical.se/aggbug.aspx?PostID=28526" width="1" height="1"&gt;</description><category domain="http://blogical.se/blogs/mikael_sand/archive/tags/Book/default.aspx">Book</category><category domain="http://blogical.se/blogs/mikael_sand/archive/tags/Review/default.aspx">Review</category></item><item><title>How to pass BizTalk certification (70-595)</title><link>http://blogical.se/blogs/mikael_sand/archive/2011/12/13/how-to-pass-biztalk-certification-70-595.aspx</link><pubDate>Tue, 13 Dec 2011 18:44:49 GMT</pubDate><guid isPermaLink="false">19a535f3-07d9-4378-9c5a-8d019d91e842:28501</guid><dc:creator>Mikael Sand</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;As you may know, there is an MCTS-exam called 70-595, for us that work with BizTalk. The formal name is: “&lt;a href="http://www.microsoft.com/learning/en/us/Exam.aspx?ID=70-595&amp;amp;Locale=en-us#tab2"&gt;Developing Business Process and Integration Solutions by Using Microsoft BizTalk Server 2010&lt;/a&gt;”. Many seem to think that passing this test is hard and also a challenge, but if you do pass, it gives you a sense of pride and accomplishment. You have also received a sign of approval from Microsoft about your knowledge and abilities. If you are lucky, and work for &lt;a href="http://www.logica.com"&gt;the right employer&lt;/a&gt;, you might even receive a bonus for passing. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;How do I book a test date?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.prometric.com/default.htm"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;float:left;border-top:0px;border-right:0px;padding-top:0px;" title="clip_image001" border="0" alt="clip_image001" align="left" src="http://blogical.se/blogs/mikael_sand/clip_image001_51E0E55B.png" width="240" height="100" /&gt;&lt;/a&gt;Firstly you need to find a &lt;a href="http://prometric.com/default.htm"&gt;Prometric&lt;/a&gt;-licensed test center. Microsoft works in collaboration with Prometric worldwide and they are responsible for making sure that everyone gets to take the test under the same conditions. They, in turn, certify locations (or test centers) all over the world. You need to find one of those. If I were you I would check the local education center that your company usually uses.&lt;/p&gt;  &lt;p&gt;If you live in Sweden I can recommend &lt;a href="http://www.addskills.se/certifiering--test/certifieringstest/070-595-ts-developing-business-process-and-integration-solutions-by-using-microsoft-biztalk-server-2010/"&gt;AddSkills&lt;/a&gt;. You can book a date right from their site, and even send the invoice directly to your employer. The cost for taking the test varies, but at AddSkills the current rate is 1 950 SEK for the Gothenburg and Stockholm test centers. Others might be more expensive. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Is the test hard?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/mikael_sand/clip_image002_5F46F861.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;float:left;border-top:0px;border-right:0px;padding-top:0px;" title="clip_image002" border="0" alt="clip_image002" align="left" src="http://blogical.se/blogs/mikael_sand/clip_image002_thumb_17856F7A.jpg" width="117" height="92" /&gt;&lt;/a&gt;Yes, it is hard. The point of the test to show that you are better than a beginner and that you also have some working experience with the product. I have heard different rumors about different Microsoft exams. Some seem to be easy-peasy, and others are hard as nails. This might be the case but I can tell you that the BizTalk is in the latter category rather than the former.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;What is the process of the exam itself?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;There used to be practice tests available, that closely mimicked the actual test’s process. I have not been able to find any tests for BizTalk 2010 but I will assume that, since they were available it is OK for me to write a bit about the process.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;a href="http://blogical.se/blogs/mikael_sand/clip_image003_0946F68A.gif"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;float:left;border-top:0px;border-right:0px;padding-top:0px;" title="clip_image003" border="0" alt="clip_image003" align="left" src="http://blogical.se/blogs/mikael_sand/clip_image003_thumb_24EB8280.gif" width="90" height="90" /&gt;&lt;/a&gt;&lt;b&gt;Most importantly&lt;/b&gt;: No cheating! If you are caught cheating, you will be banned from taking further tests and the community will shun you. You will be forced to live out in the forest with only the birds and the voices in your head to keep you company. So please don’t cheat.&lt;/p&gt;  &lt;p&gt;You will be placed in front of a computer configured to conform to some sort of minimum standard. You are only allowed to use the tools that the computer supplies and also a scratch-pad, provided by the test center. You are not allowed to bring anything but yourself into the test room. To further reduce the risk of cheating the testing room will be monitored via CCTV.&lt;/p&gt;  &lt;p&gt;The test is entirely based on multiple choice. Some of the questions have answers in the form of RadioButtons (one correct answer), and others CheckBoxes (more than one might be correct).&lt;/p&gt;  &lt;p&gt;There is a “mark for review” system. This means that you can mark a question for review, if you feel you might want to rethink that later. After you have answered all the questions you have an opportunity to view all the questions again. The ones you have marked for review is very clearly marked.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/mikael_sand/clip_image004_68BFB6D7.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;float:left;border-top:0px;border-right:0px;padding-top:0px;" title="clip_image004" border="0" alt="clip_image004" align="left" src="http://blogical.se/blogs/mikael_sand/clip_image004_thumb_2F3CA6E0.jpg" width="190" height="240" /&gt;&lt;/a&gt;The total time for the test is two and a half hours, which is ample time in my view. If you are worried that you might not be able to finish on time, you can use the review-system to mark questions you are not so sure about or you feel might take a long time to answer. Then run thru the test once and answer all the “easy” ones. This way you know that you will at least get those.&lt;/p&gt;  &lt;p&gt;My method has been to take one question at a time and really focus on just that question. Read it, analyze it and try to get to the bare bone of the question. Give it the answer you feel is the best one and if you are unsure; mark it for review. Then drop that question and focus hard on the next one. I run thru the test in this manor until there are no more questions. By then, I am ready for a short break. After the break I review all the questions marked for review. This time, focusing even harder on the text and the different answers, as there might be pitfalls. Personally I don’t believe in reviewing all the questions, it’s just a waste of time.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/mikael_sand/clip_image005_27B13773.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;float:left;border-top:0px;border-right:0px;padding-top:0px;" title="clip_image005" border="0" alt="clip_image005" align="left" src="http://blogical.se/blogs/mikael_sand/clip_image005_thumb_031FA9EF.jpg" width="186" height="149" /&gt;&lt;/a&gt;When you are done, you submit the test and after 10 &lt;i&gt;agonizing seconds&lt;/i&gt; you will receive your score: pass or fail. If you pass, don’t forget to pick up your test result sheet from the test center. This paper will tell you your score and how well you performed in the different categories (see below).&lt;/p&gt;  &lt;p&gt;In case of success, don’t forget to celebrate and treat yourself to something as a reward for all that hard work.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;What do I need to study?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;That actually has an official answer from Microsoft located &lt;a href="http://www.microsoft.com/learning/en/us/Exam.aspx?ID=70-595&amp;amp;Locale=en-us#tab2"&gt;here&lt;/a&gt;. I heartily recommend reading that article &lt;i&gt;thoroughly&lt;/i&gt; and &lt;i&gt;several times&lt;/i&gt;. Note that they have used the wording “including but not limited to”, so even if the list of things to know might be long, it might not be complete. &lt;/p&gt;  &lt;p&gt;Here it is, together with the relative percentage of that subject compared to the whole exam.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Configuring and Architecture: 20 % &lt;/li&gt;    &lt;li&gt;Developing BizTalk Artifacts: 20 % &lt;/li&gt;    &lt;li&gt;Debugging and exception handling: 17 % &lt;/li&gt;    &lt;li&gt;Integrating Web Services and WCF: 14 % &lt;/li&gt;    &lt;li&gt;Implementing extended capabilities: 13 % &lt;/li&gt;    &lt;li&gt;Deploying, tracking and supporting: 16 % &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Something worth mentioning is that there is a lot of focus on Web Services and Wcf. It is about as important as developing BizTalk artifacts, which is pretty darn “core BizTalk”.&lt;/p&gt;  &lt;p&gt;Something else worth noting is the point called “Implementing extended capabilities”. That is worth 13 % but includes RFID, EDI, BRE &lt;i&gt;and&lt;/i&gt; BAM. It is safe to say that you might not have to know all the ins and outs of BAM or RFID to pass, but to dismiss them altogether is naïve.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;My advice&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The best advice I can give you about what to focus on when studying for the exam is this:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Read the article from Microsoft once more and note all the concepts listed under each category (like what core adapters are mentioned or that you must know how to configure basic tracking).&lt;/li&gt;    &lt;li&gt;Divide all the concepts into three categories:     &lt;ol&gt;       &lt;li&gt;I have heard/not heard of this and have only a vague/no idea of how to use it (like RFID perhaps).&lt;/li&gt;        &lt;li&gt;I have a fairly good idea of how to use this but feel I might need to know more (like Role Links).&lt;/li&gt;        &lt;li&gt;I know this and feel I really don’t need to study for it (like configuring a FILE send port).&lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;b&gt;How do I study for the exam?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;There is really no simple solution for this as there is no self-paced learning kit or anything like that. There might be a book on this subject in the making, according to rumors. I have no idea about release date or anything though.&lt;/p&gt;  &lt;p&gt;Until that book is released I recommend this &lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/5058.aspx"&gt;summary&lt;/a&gt;, found at Microsoft. It is made by the ever productive &lt;a href="http://soa-thoughts.blogspot.com/"&gt;Steef-Jan&lt;/a&gt; and lists all the free available resources that Microsoft has put out.&lt;/p&gt;  &lt;p&gt;I would also recommend the book &lt;a href="http://www.informit.com/store/product.aspx?isbn=0672331187"&gt;Microsoft BizTalk Server 2010 Unleached&lt;/a&gt;, partly written by a colleague of mine, &lt;a href="http://blogs.eliasen.dk/technical"&gt;Jan Eliasen&lt;/a&gt;. You should, of course, read the book from cover to cover but if you are more target oriented you can obviously skip the more extensive aspects about BRE, everything about Windows Azure and the short part about the ESB toolkit.&lt;/p&gt;  &lt;p&gt;Also read the blog post about the exam written by fellow blogical-blogger and MCT &lt;a href="http://blogical.se/blogs/johan/archive/2011/04/29/the-70-595-exam-and-the-first-rule-of-fight-club.aspx"&gt;Johan Hedberg&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;In closing…&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;I passed my test. Will you prove yourself? Just kidding! Have fun studying; you will learn a lot of useful things about our favorite product.&lt;/p&gt;  &lt;p&gt;Also, please &lt;a href="http://blogical.se/blogs/mikael_sand/contact.aspx"&gt;provide feedback&lt;/a&gt; if you disagree or feel I have said too much about anything. I am only trying to help, not violate the NDA.&lt;/p&gt;&lt;img src="http://blogical.se/aggbug.aspx?PostID=28501" width="1" height="1"&gt;</description><category domain="http://blogical.se/blogs/mikael_sand/archive/tags/Biztalk/default.aspx">Biztalk</category><category domain="http://blogical.se/blogs/mikael_sand/archive/tags/certification/default.aspx">certification</category></item><item><title>I did it so you don't have to: Connecting to Dynamics CRM Online from BizTalk Server</title><link>http://blogical.se/blogs/mikael/archive/2011/12/11/i-did-it-so-you-don-t-have-to-connecting-to-dynamics-crm-online-from-biztalk-server.aspx</link><pubDate>Sun, 11 Dec 2011 13:31:00 GMT</pubDate><guid isPermaLink="false">19a535f3-07d9-4378-9c5a-8d019d91e842:28410</guid><dc:creator>wmmihaa</dc:creator><slash:comments>1</slash:comments><description>&lt;b&gt;&lt;/b&gt;  &lt;p&gt;If you’re a consultant like me, you’ve probably got similar calls from some key account manager, as I did yesterday:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;KAM&lt;/b&gt;: &lt;i&gt;Hi Mikael. I’m just about to close this super big deal, with this super important Customer.&lt;/i&gt;     &lt;br /&gt;&lt;b&gt;Me&lt;/b&gt;: &lt;i&gt;Really! Good for you.      &lt;br /&gt;&lt;/i&gt;&lt;b&gt;KAM&lt;/b&gt;: &lt;i&gt;Yeah, we’re really close. But to rap it up, I was wondering if you could help me out a bit…      &lt;br /&gt;&lt;/i&gt;&lt;b&gt;Me&lt;/b&gt;: &lt;i&gt;Sure. What do you have in mind?&lt;/i&gt;     &lt;br /&gt;&lt;b&gt;KAM&lt;/b&gt;: &lt;i&gt;Could you come with me to meeting with the customer on Monday? (this happens on Thursday 6PM)      &lt;br /&gt;&lt;/i&gt;&lt;b&gt;Me&lt;/b&gt; (getting suspicious): &lt;i&gt;mmm…What do you want me to do?      &lt;br /&gt;&lt;/i&gt;&lt;b&gt;KAM&lt;/b&gt;: &lt;i&gt;A demo!      &lt;br /&gt;&lt;/i&gt;&lt;b&gt;Me&lt;/b&gt;: &lt;i&gt;Demo of what?      &lt;br /&gt;&lt;/i&gt;&lt;b&gt;KAM&lt;/b&gt;: &lt;i&gt;The customer want us to show how to integrate Dynamics CRM Online with SAP using BizTalk.      &lt;br /&gt;&lt;/i&gt;&lt;b&gt;Me&lt;/b&gt;: &lt;i&gt;What?      &lt;br /&gt;&lt;/i&gt;&lt;b&gt;KAM&lt;/b&gt;: &lt;i&gt;Yes, yes. The customer wants us to show it live!&lt;/i&gt; &lt;i&gt;You know, they want to see you do it…&lt;/i&gt;     &lt;br /&gt;&lt;b&gt;Me&lt;/b&gt;: &lt;i&gt;ARE YOU HIGH? (I didn’t actually say that, but I was thinking it)      &lt;br /&gt;&lt;/i&gt;&lt;b&gt;Me&lt;/b&gt;: &lt;i&gt;It will not happen! I haven&amp;#39;t worked with SAP since 3-4 year ago. I’ve never worked with CRM Online (or off-line for that matter). I’m fully booked tomorrow, and I want to spend the weekend with my family as X-mas is coming up.      &lt;br /&gt;&lt;/i&gt;&lt;b&gt;KAM&lt;/b&gt;: &lt;i&gt;But we need to close this deal…&lt;/i&gt;     &lt;br /&gt;&lt;b&gt;Me&lt;/b&gt;: &lt;i&gt;NO!      &lt;br /&gt;&lt;/i&gt;&lt;b&gt;KAM&lt;/b&gt;: &lt;i&gt;Please…      &lt;br /&gt;&lt;/i&gt;&lt;b&gt;Me&lt;/b&gt;: &lt;i&gt;No way!      &lt;br /&gt;&lt;/i&gt;(Yada, yada, yada)     &lt;br /&gt;&lt;b&gt;Me&lt;/b&gt;: &lt;i&gt;Ok, I’ll give it a try (&lt;b&gt;I’M SUCH AN IDIOT!!!!!&lt;/b&gt;)       &lt;br /&gt;&lt;/i&gt;&lt;/p&gt;  &lt;h3&gt;So here it is: How to connect to Dynamics CRM Online from BizTalk Server&lt;/h3&gt;  &lt;p&gt;To begin with, if you want to integrate with CRM Online, you have two options. Either use an un-typed web-service API or use a tool called &lt;a href="http://blog.abodit.com/2011/03/crmsvcutil-exe-with-microsoft-dynamics-crm-2011-online-problem/"&gt;CrmSvcUtil.exe&lt;/a&gt; to create a proxy class for you. Each of these comes with some challenges and limitations:&lt;/p&gt;  &lt;p&gt;Using an un-typed web service, can of course be somewhat messy, but the SDK provides you with the schemas you need (more on that later). The biggest challenge, however, is to authenticate to the service as it assumes you’re using Windows Live Id. Authenticating against the service would require an additional four calls to the service to finally get the authentication tokens needed to create the security header. An then figure out a way to to add the headers in a pipeline. The steps needed are described by Girish Raja &lt;a href="http://code.msdn.microsoft.com/CRM-Online-2011-WebServices-14913a16"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;The proxy created using the CrmSvcUtil is quite nice, since it’s typed, but of course I can’t use it in a send port. I would&amp;nbsp; have to make the call using the inline-send approach from within an expression shape in an orchestration. And thereby loose the built in re-send functionality and more, that ships with BizTalk.&lt;/p&gt;  &lt;p&gt;As none of these approaches was acceptable, I begun looking for other alternatives. What I really wanted was an authentication behavior, that I could add to my WCF-Custom send port adapter.&amp;nbsp; &lt;/p&gt;  &lt;h3&gt;Building the Custom WCF Behavior&lt;/h3&gt;  &lt;p&gt;What I needed was a Message Inspector that would build up the security header as Girish Raja did in his sample, and then add that header to the SOAP envelope. This class is called &lt;i&gt;LiveIdAuthenticationMessageInspector&lt;/i&gt; and inherits from &lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.dispatcher.iclientmessageinspector.aspx"&gt;IClientMessageInspector&lt;/a&gt;&lt;i&gt;&lt;/i&gt;. This gives two methods to my class: &lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.dispatcher.iclientmessageinspector.beforesendrequest.aspx"&gt;BeforeSendRequest&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.dispatcher.iclientmessageinspector.afterreceivereply.aspx"&gt;AfterReceiveReply&lt;/a&gt;.&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;object&lt;/span&gt; BeforeSendRequest(&lt;span class="kwrd"&gt;ref&lt;/span&gt; System.ServiceModel.Channels.Message request, 
    System.ServiceModel.IClientChannel channel)
{
    &lt;span class="kwrd"&gt;string&lt;/span&gt; securityHeader = HeaderHelper.GetSecurityHeader(&lt;span class="kwrd"&gt;this&lt;/span&gt;._username, &lt;span class="kwrd"&gt;this&lt;/span&gt;._password, &lt;span class="kwrd"&gt;this&lt;/span&gt;._crmUri);
            
    request.Headers.Add(MessageHeader.CreateHeader(&lt;span class="str"&gt;&amp;quot;Security&amp;quot;&lt;/span&gt;,
        WSSecurityUsernameTokenProfileNamespace,
        &lt;span class="kwrd"&gt;string&lt;/span&gt;.Empty,
        &lt;span class="kwrd"&gt;new&lt;/span&gt; SecurityHeaderSerializer(securityHeader),&lt;span class="kwrd"&gt;true&lt;/span&gt;));

    &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;null&lt;/span&gt;;
}&lt;/pre&gt;

&lt;p&gt;In the BeforeSendRequest method is where I can add the security header to the message before the message is sent out. The the BeforeSendRequest method I call a helper class returning the actual header. The GetSecurityHeader method is going through four steps to build up the header:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Get Windows Live Device Credentials &lt;/li&gt;

  &lt;li&gt;Register Device Credentials and get binaryDAToken &lt;/li&gt;

  &lt;li&gt;Get Security Token by sending WLID username, password and device binaryDAToken &lt;/li&gt;

  &lt;li&gt;Build up the security header with the token from previous step. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;b&gt;(This sample does not cache the tokens! I strongly suggest you add some caching logic before you run this in production)&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;After the header is created it is added to the request, using a custom serializer, as it would otherwise be HTML encoded. &lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; AfterReceiveReply(&lt;span class="kwrd"&gt;ref&lt;/span&gt; System.ServiceModel.Channels.Message reply, &lt;span class="kwrd"&gt;object&lt;/span&gt; correlationState)
{
    Trace.WriteLine(&lt;span class="str"&gt;&amp;quot;[bLogical] LiveIdAuthenticationMessageInspector:AfterReceiveReply called&amp;quot;&lt;/span&gt;);
    &lt;span class="kwrd"&gt;int&lt;/span&gt; index = reply.Headers.FindHeader(&lt;span class="str"&gt;&amp;quot;Security&amp;quot;&lt;/span&gt;, WSSecurityUsernameTokenProfileNamespace);
    reply.Headers.RemoveAt(index);
}&lt;/pre&gt;

&lt;p&gt;When BizTalk (or any other WCF client) receives the response it will throw an exception, as it doesn’t understand the Security header. I might have gone away with adding the http:&lt;a href="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" title="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"&gt;http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd&lt;/a&gt; schema to BizTalk, but as I don’t need it, I just removed it from the header on the way back.&lt;/p&gt;

&lt;p&gt;Part from the Message Inspector, I also added an EndpointBehavior and a BehaviorExtensionElement. The LiveIdAuthenticationBehaviorExtensionElement needs to be registered in the configuration using the behavior in BizTalk&lt;/p&gt;

&lt;p&gt;After you have registered the behavior, you can focus on the normal BizTalk tasks like building orchestrations and mappings. To get started with consuming the CRM Services, have a look at Richards &lt;a href="http://seroter.wordpress.com/2011/02/10/the-good-bad-and-ugly-of-integrating-dynamics-crm-2011-and-biztalk-server-2010/"&gt;post&lt;/a&gt;. The only thing I’d like to emphasis is that the correct schemas are part of the SDK (sdk\schemas). After you run the &lt;i&gt;Consume WCF Service &lt;/i&gt;Wizard, remove all schemas and replace them with the the once in the SDK. Better yet, put all those schemas in a separate schema project, and reference that project from other projects where you’re using them. &lt;/p&gt;

&lt;h4&gt;1. Add the behavior to the Global Assembly Cache&lt;/h4&gt;

&lt;p&gt;Open up the &lt;i&gt;LiveIdAuthentication&lt;/i&gt; project, build and add it to the global assembly cache.&lt;/p&gt;

&lt;h4&gt;2. Register the behavior in the configuration&lt;/h4&gt;

&lt;p&gt;(sorry about the formatting). &lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;extensions&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;behaviorExtensions&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;liveIdAuthentication&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;LiveIdAuthentication.LiveIdAuthenticationBehaviorExtensionElement, LiveIdAuthentication, Version=1.0.0.0, Culture=neutral, PublicKeyToken=698ceec8cebc73ae&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;behaviorExtensions&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;extensions&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;You can do this either in a config file (machine.config or BTSNTSvc[64].exe.config) or in BizTalk (WCF-Custom Send handler):&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogical.se/blogs/mikael/image_167D68DB.png"&gt;&lt;img src="http://blogical.se/blogs/mikael/image_thumb_03C86F24.png" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" alt="image" height="484" width="376" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I prefer the later as I would otherwise need to make the changes to all the servers in the group. Just copy the extension element above, into a config file, and import the file from the Transport Properties dialog above. Or you can point to the app.config file in the sample.&lt;/p&gt;

&lt;h4&gt;3. Add the Endpoint Behavior&lt;/h4&gt;

&lt;p&gt;Open the send port and click the &lt;i&gt;Configure &lt;/i&gt;button to open the WCF Transport Porperties. Select the &lt;i&gt;Behavior&lt;/i&gt; tab and right-click the Endpoint behavior node, and select &lt;i&gt;Add extension. &lt;/i&gt;Select the &lt;i&gt;&lt;b&gt;liveAuthentication&lt;/b&gt;&lt;/i&gt; extensions. Select the extension and set the properties.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogical.se/blogs/mikael/image_49D92C37.png"&gt;&lt;img src="http://blogical.se/blogs/mikael/image_thumb_2951EC85.png" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" alt="image" height="484" width="348" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;You’re done.&lt;/p&gt;

&lt;p&gt;Use this code as you like, and on your own risk. If you make improvements, I’d appreciate if you notify me. One thing I know could be done better, would be to cache the tokens and re-use them for the next call.&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogical.se/files/folders/downloads/entry28440.aspx"&gt;Download the Dynamics CRM LiveId Authentication Behavior sample here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;HTH&lt;/p&gt;&lt;img src="http://blogical.se/aggbug.aspx?PostID=28410" width="1" height="1"&gt;</description><category domain="http://blogical.se/blogs/mikael/archive/tags/BizTalk/default.aspx">BizTalk</category><category domain="http://blogical.se/blogs/mikael/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogical.se/blogs/mikael/archive/tags/Adapters/default.aspx">Adapters</category><category domain="http://blogical.se/blogs/mikael/archive/tags/Dynamics+CRM+Online/default.aspx">Dynamics CRM Online</category></item><item><title>Finally MCTS again!</title><link>http://blogical.se/blogs/mikael_sand/archive/2011/12/08/finally-mcts-again.aspx</link><pubDate>Thu, 08 Dec 2011 09:31:26 GMT</pubDate><guid isPermaLink="false">19a535f3-07d9-4378-9c5a-8d019d91e842:28370</guid><dc:creator>Mikael Sand</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;border-top:0px;border-right:0px;padding-top:0px;" border="0" src="http://blogical.se/blogs/mikael_sand/Images/MCTS(rgb)_1422.png" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;Earlier this year Microsoft retired the old certification for BizTalk 2006 and so I was no longer a Technology Specialist.&lt;/p&gt;  &lt;p&gt;Well I finally got around to it, took &lt;a href="http://www.microsoft.com/learning/en/us/Exam.aspx?ID=70-595&amp;amp;Locale=en-us#tab1" target="_blank"&gt;the test&lt;/a&gt;, and scored a healthy 91%.&lt;/p&gt;  &lt;p&gt;I have received some questions as to how you should prepare for the exam and based on that I have a couple pointers:&lt;/p&gt;  &lt;h2&gt;If you are an experienced BizTalk developer you really don’t need to study.&lt;/h2&gt;  &lt;p&gt;This is not a bad thing. It just shows that the exam is made to show that you have working experience and if you do; you will pass.&lt;/p&gt;  &lt;h2&gt;Read an excellent book&lt;/h2&gt;  &lt;p&gt;The unequivocal one is of course &lt;a href="http://www.amazon.com/Microsoft-BizTalk-Server-2010-Unleashed/dp/0672331187" target="_blank"&gt;BizTalk 2010 Unleashed&lt;/a&gt;. Use it to read up on things you feel you don’t know; like perhaps the BRE or Wcf-adapters or BAM or Orchestrations or EDI or…&lt;/p&gt;  &lt;p&gt;Based on what you have used the last year, you should skip those parts and read up on the parts you have not used. If you spent the better part of 2011 developing integrations using advanced maps and Wcf; read up on BAM and orchestrations.&lt;/p&gt;  &lt;h2&gt;See how others have prepared&lt;/h2&gt;  &lt;p&gt;The ever productive &lt;a href="http://soa-thoughts.blogspot.com/" target="_blank"&gt;Steef-Jan Wiggers&lt;/a&gt; has written a TechNet Wiki called &lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/5058.aspx"&gt;BizTalk Server 2010 Exam 70-595 Preparation&lt;/a&gt;. It is about resources that is available for free from Microsoft. It comes highly recommended.&lt;/p&gt;  &lt;h2&gt;Buy beer&lt;/h2&gt;  &lt;p&gt;Do you know someone that is a MCTS for BizTalk 2010? If so; you can invite him/her to some kind of “after work event”. Buy the person some good beers and then start asking nicely about the exam.&lt;/p&gt;  &lt;p&gt;As an MCTS you get special training, and these special pills, so you can’t remember specifics about the exam. We can however talk generally about it: What skills are measured? How much is there about BRE compared to other topics? Is it hard?&lt;/p&gt;  &lt;p&gt;Just saying…&lt;/p&gt;&lt;img src="http://blogical.se/aggbug.aspx?PostID=28370" width="1" height="1"&gt;</description><category domain="http://blogical.se/blogs/mikael_sand/archive/tags/BizTalk+2010/default.aspx">BizTalk 2010</category><category domain="http://blogical.se/blogs/mikael_sand/archive/tags/certification/default.aspx">certification</category></item><item><title>How I diagnosed en elusive ‘is not a valid Win32 application’ exception</title><link>http://blogical.se/blogs/johan/archive/2011/12/06/how-i-diagnosed-en-elusive-is-not-a-valid-win32-application-exception.aspx</link><pubDate>Tue, 06 Dec 2011 21:06:40 GMT</pubDate><guid isPermaLink="false">19a535f3-07d9-4378-9c5a-8d019d91e842:28347</guid><dc:creator>Johan Hedberg</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;We were using BizTalk Server 2010 and the MQ Client (MQSC) adapter from Host Integration Server 2010 (HIS 2010). We had been getting an exception on and off on servers without really knowing why it appeared on some servers and not on others. We even opened a case with Microsoft, but they are only human like the rest of us and can’t magically diagnose and solve errors remotely based on vague input, so that really didn’t lead anywhere other then things like “Make sure you are running the adapter in a 64-bit process”. The exception message was this:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;The adapter &amp;quot;MQSC&amp;quot; raised an error message. &lt;br /&gt;Details &amp;quot;Could not load file or assembly &amp;#39;Microsoft.BizTalk.Adapter.Mqsc.ImqWrapper.dll&amp;#39; &lt;br /&gt;or one of its dependencies. is not a valid Win32 application. (Exception from HRESULT: 0x800700C1)&amp;quot;.&lt;/pre&gt;

&lt;p&gt;It’s enough to say that we investigated the error in a number of ways, including making sure that the specific dll mentioned was present. But as we all know the “or one of its dependencies” can hide any number of referenced dlls. So we made sure that the machines that worked and the ones that didn’t had the same assemblies available, which they did. Still no luck in narrowing it down. Luckily the exception happened right when you enabled a receive location so it was easy to identify and therefore to reproduce and troubleshoot.&lt;/p&gt;

&lt;p&gt;I resorted to using &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb896645"&gt;Process Monitor&lt;/a&gt; (not to be confused with &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb896653"&gt;Process Explorer&lt;/a&gt;, although also a great tool not the best in this scenario). I started the tool, found the PID for the process running my MQSC adapter process (see &lt;a href="http://blogical.se/blogs/johan/archive/2008/01/25/how-to-find-the-host-that-btsntsvc-exe-belongs-to.aspx"&gt;this post&lt;/a&gt; for details on identifying the BTSNTSvc process that belong to a certain host and get the PID) and set a filter for just that PID to reduce the noise. Finally I enabled the receive location. That gave me this:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogical.se/blogs/johan/clip_image001_572AB8F0.gif"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="clip_image001" border="0" alt="clip_image001" src="http://blogical.se/blogs/johan/clip_image001_thumb_5C2CF69F.gif" width="244" height="100" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see in the image BizTalk Server is probing for an assembly in different locations, and it’s not the Microsoft.BizTalk.Adapter.Mqsc.ImqWrapper.dll. It’s the imqb23vn.dll from the WebSphere MQ installation. It’s trying to locate the assembly and finding it in the WebSphere MQ\Bin64 folder. However it gets an Access Denied when trying to access it, so it then continues on to the WebSphere MQ\Bin folder, where it locates the 32-bit version, which is does have access to, and so it loads it.&lt;/p&gt;

&lt;p&gt;The exception message then is not saying that a 32-bit process is trying to use an assembly meant for a 64-bit process, but the opposite; that the assembly we are trying to load cannot be loaded as the application that is loading it (in this case BTSNTSvc64.exe) is a 64-bit process, aka not a valid win32 application.&lt;/p&gt;

&lt;p&gt;Setting the correct permission on the file and hooking onto the process once again to see what it is doing verified the theory. The image below shows how it loads the correct 64-bit version of the imqb23vn.dll and the continues on to the next assembly which has the same issue and causes the exception once again. The exact same exception, but this time caused by another underlying referenced assembly:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogical.se/blogs/johan/clip_image0014_22A9E6A8.gif"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="clip_image001[4]" border="0" alt="clip_image001[4]" src="http://blogical.se/blogs/johan/clip_image0014_thumb_71C72F3C.gif" width="244" height="167" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Setting appropriate access permissions on the entire folder made the process complete without exceptions and the adapter able to successfully connect to the MQ queue and pick up the messages on it and deliver them to the messagebox. Why the folders ended up getting different permissions in this way is still a mystery… &lt;/p&gt;

&lt;p&gt;HTH,
  &lt;br /&gt;/Johan&lt;/p&gt;&lt;img src="http://blogical.se/aggbug.aspx?PostID=28347" width="1" height="1"&gt;</description><category domain="http://blogical.se/blogs/johan/archive/tags/64-bit/default.aspx">64-bit</category><category domain="http://blogical.se/blogs/johan/archive/tags/BizTalk+Server+2010/default.aspx">BizTalk Server 2010</category><category domain="http://blogical.se/blogs/johan/archive/tags/MQ/default.aspx">MQ</category><category domain="http://blogical.se/blogs/johan/archive/tags/HIS/default.aspx">HIS</category></item><item><title>Recordings from Enfo Integration Days are available</title><link>http://blogical.se/blogs/mikael/archive/2011/11/28/recordings-from-enfo-integration-days-are-available.aspx</link><pubDate>Mon, 28 Nov 2011 18:00:36 GMT</pubDate><guid isPermaLink="false">19a535f3-07d9-4378-9c5a-8d019d91e842:28222</guid><dc:creator>wmmihaa</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Every year my employer hosts a two day event all related to integration or service orientation. Around 450 people attended this year, which I assumes makes it the biggest event of the year in the integration space, with more then 25 sessions on four different tracks. All Microsoft related session were recorded and are now available. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=5cLQBMeS-aU"&gt;Microsoft BizTalk Server and Microsoft’s Middleware vision&lt;/a&gt; (Marcus Gullberg, Microsoft) –SWEDISH&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=IqDPmW2Fdts"&gt;Microsoft BizTalk Server &amp;amp; Windows Azure AppFabric&lt;/a&gt; (Mikael Håkansson, Enfo Zystems) –SWEDISH&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=cPK4rr8HsYY"&gt;Windows Azure AppFabric Platform futures&lt;/a&gt; (Johan Hedberg, Enfo Zystems) –SWEDISH&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=RyAQ-9JQtl0"&gt;BaseLine for BizTalk Hands On&lt;/a&gt; (Martin Rydman &amp;amp; Mikael Håkansson, Enfo Zystems ) –SWEDISH&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=Q-ONkEVD-tw"&gt;Using AppFabric Cache to Maximize the Performance of Your Windows Azure and On Premises WCF Applications&lt;/a&gt; (Paolo Salvatori, Microsoft) –ENGLISH&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=PymrPY9jdqQ"&gt;How to integrate BizTalk Server with Windows Azure Service Bus Messaging. &lt;/a&gt;(Paolo Salvatori, Microsoft) –ENGLISH&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Enjoy, an we hope you join us next year.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://blogical.se/blogs/mikael/image_7BDB1DF6.png" alt="" /&gt;&lt;/p&gt;&lt;img src="http://blogical.se/aggbug.aspx?PostID=28222" width="1" height="1"&gt;</description></item><item><title>The “problem” with BizTalk</title><link>http://blogical.se/blogs/mikael_sand/archive/2011/11/07/the-problem-with-biztalk.aspx</link><pubDate>Mon, 07 Nov 2011 17:30:00 GMT</pubDate><guid isPermaLink="false">19a535f3-07d9-4378-9c5a-8d019d91e842:27979</guid><dc:creator>Mikael Sand</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://xkcd.com/" target="_blank"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;border-top:0px;border-right:0px;padding-top:0px;" border="0" src="http://imgs.xkcd.com/comics/the_general_problem.png" width="500" height="209" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Every time I suggest BizTalk as an alternative in a “bid” or project I feel like the guy to the right. &lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none;" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blogical.se/blogs/mikael_sand/wlEmoticon-smile_1A786C3C.png" /&gt;&lt;/p&gt;&lt;img src="http://blogical.se/aggbug.aspx?PostID=27979" width="1" height="1"&gt;</description><category domain="http://blogical.se/blogs/mikael_sand/archive/tags/Biztalk/default.aspx">Biztalk</category></item><item><title>Running MMC as the BizTalk service user</title><link>http://blogical.se/blogs/mikael_sand/archive/2011/11/01/running-mmc-as-the-biztalk-service-user.aspx</link><pubDate>Tue, 01 Nov 2011 14:37:39 GMT</pubDate><guid isPermaLink="false">19a535f3-07d9-4378-9c5a-8d019d91e842:27938</guid><dc:creator>Mikael Sand</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I guess you have, at some point, installed a certificate for the the BizTalk service user. The ability for BizTalk to use certificate to encrypt/decrypt messages is very powerful in some scenarios.&lt;/p&gt;  &lt;p&gt;The recommended way of doing this is to simply log on to the machine as the service account. This is not always possible due to policies and restrictions at the client; so an intense mail conversation might ensue. It is usually resolved in some way.&lt;/p&gt;  &lt;p&gt;One way to resolve it might be to try to us “runas” to execute mmc as the BizTalk service user.&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;runas /profile /user:BtsUsr &amp;quot;C:\Windows\SysWOW64\mmc.exe&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;However, this is not possible as the following error is presented:&lt;font face="Courier New"&gt; “740: The requested operation requires elevation.”&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;The solution to this might be to disable the UAC on the machine, but that is usually not possible either.&lt;/p&gt;  &lt;p&gt;The solution I found to be the best is the following:&lt;/p&gt;  &lt;p&gt;1. Add the BizTalk Service User the Local Admin group.&lt;a href="http://blogical.se/blogs/mikael_sand/BtsUsrAsAdmin_569406F1.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="BtsUsrAsAdmin" border="0" alt="BtsUsrAsAdmin" src="http://blogical.se/blogs/mikael_sand/BtsUsrAsAdmin_thumb_016C6B04.png" width="220" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;2. Then navigate to the appropriate system-folder (System32 or SysWow64).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/mikael_sand/RunAsDiffUser_5627D3FC.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="RunAsDiffUser" border="0" alt="RunAsDiffUser" src="http://blogical.se/blogs/mikael_sand/RunAsDiffUser_thumb_360CC73F.png" width="175" height="63" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;3. Find and select MMC.exe, hold down shift and right-click to get the “Run as different user” option.&lt;/p&gt;  &lt;p&gt;4. Choose to run as different user and supply the credentials for the BizTalk Service user.&lt;/p&gt;  &lt;p&gt;6. Click Ok to elevate the process and boom you are in!&lt;/p&gt;  &lt;p&gt;Of course you have to remove the service account from the Local Admin group as soon as possible after installation.&lt;/p&gt;  &lt;p&gt;The strange thing is that the “runas”-approach still does not work but who cares.&lt;/p&gt;&lt;img src="http://blogical.se/aggbug.aspx?PostID=27938" width="1" height="1"&gt;</description></item><item><title>Book Review: Microsoft BizTalk 2010: Line of Business Systems Integration</title><link>http://blogical.se/blogs/johan/archive/2011/10/24/book-review-microsoft-biztalk-2010-line-of-business-systems-integration.aspx</link><pubDate>Mon, 24 Oct 2011 20:53:00 GMT</pubDate><guid isPermaLink="false">19a535f3-07d9-4378-9c5a-8d019d91e842:27877</guid><dc:creator>Johan Hedberg</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;If you are looking for more information on understanding the WCF LOB Adapter SDK and how to build adapters with it and how the pre-built adapters available in the BizTalk Server 2010 Adapter Pack can help getting data in or out of SQL Server or with handling IDOCs, RFCs and BAPIs in SAP then this is a book for you. If you are also interested in integrating with Dynamics CRM or Ax, working with Sharepoint Documents, Forms and Lists, and connecting to the cloud in the form of AppFabric and Salesforce then even better.&lt;/p&gt;
&lt;p&gt;At first, from the title, I had expected this book to cover the Adapter Pack. It covers the parts in the first paragraph. This means it does not cover the full content of the Adapter Pack, but on the other hand it covers a lot more, which is a good thing.&lt;/p&gt;
&lt;p&gt;This &lt;a class="" href="http://www.packtpub.com/microsoft-biztalk-2010-line-of-business-systems-integration/book"&gt;book&lt;/a&gt; contains detailed walkthroughs and step-by-step instructions. Not only will you learn how and what to do, you will also learn what no to do and share the authors real world experience. The book is sprinkled with tips and tricks from exposure to the technologies and products involved. And the book is just the beginning. Throughout you can find additional references to blog post, msdn pages and other resources.&lt;/p&gt;
&lt;p&gt;I love getting that level of detail, especially accompanied with good visualizations and screenshots so there is no mistaking what a textual description means. Perhaps sometimes the level of detail might be unnecessarily high and the books intended target audience shouldn’t need a screenshot of how to deploy a BizTalk project, or the full context menu that you get when you right click a project to get to the Add… menu item, or the welcome screen of the Consume WCF Service wizard. But that only goes to show that nothing is left to chance and the reader wont be left guessing what was intended. I also like how a good mix of text and pictures make you feel that you are doing good progress reading the book.&lt;/p&gt;
&lt;p&gt;My experience is, that of the time spent developing an integration, a large part is spent understanding how the systems you need to integrate work. Most BizTalk books don’t capitalize on that. Instead they use all of their space to explain how the BizTalk technology works in some aspect. This books differs in that respect in that it spends a large part explaining how the LOB systems work, and how you go about setting up and developing the integration components needed inside those systems before continuing on to BizTalk and the integration solution developed there. That to me is the real value add of this book. The day that you feel you don’t have to learn that is the day you can’t do integration work on your own but need someone else to do half the work for you.&lt;/p&gt;
&lt;p&gt;Overall, the books content is still really fresh, even the chapters on cloud and AppFabric are still valid, which is always a risk when covering that kind of a rapidly evolving technology. Later releases has complemented some of the techniques presented with other options, but not necessarily replaced them.&lt;/p&gt;
&lt;p&gt;I can highly recommend this book if the topics and systems it covers are part of your system integration landscape. I learned plenty and I know I’ll return to read parts of it again more closely as additional systems enter my landscape.&lt;/p&gt;
&lt;p&gt;HTH &lt;br /&gt;/Johan&lt;/p&gt;&lt;img src="http://blogical.se/aggbug.aspx?PostID=27877" width="1" height="1"&gt;</description><category domain="http://blogical.se/blogs/johan/archive/tags/Readings/default.aspx">Readings</category><category domain="http://blogical.se/blogs/johan/archive/tags/Review/default.aspx">Review</category></item><item><title>Microsoft BizTalk 2010: Line of business Systems Integration, a review</title><link>http://blogical.se/blogs/mikael_sand/archive/2011/10/20/microsoft-biztalk-2010-line-of-business-systems-integration-a-review.aspx</link><pubDate>Thu, 20 Oct 2011 19:58:29 GMT</pubDate><guid isPermaLink="false">19a535f3-07d9-4378-9c5a-8d019d91e842:27854</guid><dc:creator>Mikael Sand</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;float:left;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" border="0" align="left" src="http://sandroaspbiztalkblog.files.wordpress.com/2011/09/microsoft-biztalk-2010-line-of-business-systems-integration_thumb.png?w=200&amp;amp;h=244" alt="" /&gt;Firstly I would like to get the score thing out of the way and in true consulting fashion I’ll say: It depends. I give it &lt;b&gt;&lt;i&gt;two or four stars&lt;/i&gt;&lt;/b&gt; depending on your needs as a developer/architect. Let me explain:&lt;/p&gt;  &lt;h2&gt;What do you want to do?&lt;/h2&gt;  &lt;p&gt;The whole basis for the book is not to be a comprehensive guide of every system you will ever integrate with, but rather the more common ones. Systems like SAP, Dynamics AX or SharePoint. Neither is it a documentation update on the BizTalk adapters or even about more general features of BizTalk. Before spending some money on this book you should ask yourself; what do I want to do?&lt;/p&gt;  &lt;p&gt;Are you a senior BizTalk developer or perhaps an integration architect and need to integrate with one of the systems covered in the book, then you should not only buy the book and read it, but rather you &lt;i&gt;have to &lt;/i&gt;(4 stars). On the other hand, if not, then you can leave it on the shelf, or what the equivalent version in the online book store is; this is the 2 stars.&lt;/p&gt;  &lt;h2&gt;Systems covered by the book&lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;SQL Server &lt;/li&gt;    &lt;li&gt;Dynamics CRM &lt;/li&gt;    &lt;li&gt;SAP &lt;/li&gt;    &lt;li&gt;Azure AppFabric &lt;/li&gt;    &lt;li&gt;SharePoint 2010 &lt;/li&gt;    &lt;li&gt;Dynamics AX &lt;/li&gt;    &lt;li&gt;Salesforce.com &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Do you need to integrate with any of these? Great! Good luck! This book is a &lt;i&gt;very &lt;/i&gt;good place to start.&lt;/p&gt;  &lt;h2&gt;Some key takeaways&lt;/h2&gt;  &lt;p&gt;&lt;img style="display:inline;float:left;" align="left" src="http://blogical.se/blogs/mikael_sand/tip-8_thumb_50BF714F.jpg" alt="" /&gt;&lt;em&gt;The chapters on SAP&lt;/em&gt; (which I guess are written by Kent Weare) are some of the best technical writing I’ve ever come across, but then again I might be biased. I was once in the situation described in the chapter and I like how the writer must have overcome a lot of boundaries (both mental and structural) to be able to write about it in the way he does. The way he focuses on “how to integrate with SAP-people” so to speak, and what terms to use to better make yourself understood is very useful and something I would have loved to have about three years ago.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;A book that refers to blog posts&lt;/em&gt; is new to me and not something I dislike. However, in some cases, the use of those links seemed more like a fast and easy way to get the chapter done, rather than trying to incorporate the information from the blog post in the text.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Some chapters&lt;/em&gt; (particularly the one on Windows Azure) might have benefited from more information about some key aspects of the integration. The section about ACS comes to mind. &lt;/p&gt;  &lt;p&gt;There are &lt;em&gt;a lot of how-tos and walkthroughs&lt;/em&gt; showing you exactly how to configure adapters, complete with many illustrative screen dumps. You should have absolutely no problem building your first integration for Dynamics CRM. Then again I think that in some cases I would have benefitted more from just information about the adapter and the integrating system.&lt;/p&gt;  &lt;h2&gt;Related info&lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;The book can be found &lt;a href="http://www.packtpub.com/microsoft-biztalk-2010-line-of-business-systems-integration/book" target="_blank"&gt;here&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;My previous post about an event where some of the authors presented concepts from the book can be found &lt;a href="http://blogical.se/blogs/mikael_sand/archive/2011/06/15/re-the-greatest-event-on-earth.aspx" target="_blank"&gt;here&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;Kent Weare&amp;#39;s &lt;a href="http://kentweare.blogspot.com/" target="_blank"&gt;blog&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Richard Seroter&amp;#39;s &lt;a href="http://seroter.wordpress.com/" target="_blank"&gt;blog&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Info on &lt;a href="http://www.packtpub.com/authors/profiles/sergei-moukhnitski" target="_blank"&gt;Sergei Moukhnitski&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Thiago Almeida&amp;#39;s &lt;a href="http://connectedthoughts.wordpress.com/" target="_blank"&gt;blog&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Info on &lt;a href="http://www.packtpub.com/authors/profiles/carl-darski" target="_blank"&gt;Carl Darski&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;&lt;img src="http://blogical.se/aggbug.aspx?PostID=27854" width="1" height="1"&gt;</description></item><item><title>BtsWcfServicePublishing and support for .net Framework 4</title><link>http://blogical.se/blogs/mikael_sand/archive/2011/10/17/btswcfservicepublishing-and-support-for-net-framework-4.aspx</link><pubDate>Mon, 17 Oct 2011 18:54:00 GMT</pubDate><guid isPermaLink="false">19a535f3-07d9-4378-9c5a-8d019d91e842:27837</guid><dc:creator>Mikael Sand</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I guess you, like me, use the &lt;a href="http://go.microsoft.com/fwlink/?LinkId=92955" target="_blank"&gt;BtsWcfServicePublishing.exe&lt;/a&gt; to automate the deployment process for your wcf-hosting needs in BizTalk. If you don’t I think you should, as it saves you a lot of time. For one you don’t have to regenerate your endpoint information using the BtsWcfServicePublishingWizard (note: not the same program as the BtsWcfServicePublishing) and all it’s tedious steps &lt;em&gt;every single time &lt;/em&gt;you update a service.&lt;/p&gt;  &lt;p&gt;The thing is that when you use the BtsWcfServicePublishing.exe on a BizTalk-assembly built using BizTalk 2010 you get an error like this:&lt;/p&gt;  &lt;p&gt;Error publishing WCF service.   &lt;br /&gt;&lt;font face="Courier New"&gt;Could not load file or assembly &amp;#39;file:///C:\Windows\Microsoft.NET\assembly\GAC_MSIL\…&amp;#39; or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;This is due to the fact that the BtsWcfServicePublishing tries to use version 2.0 of the .net framework. To make it work on BizTalk 2010 assemblies add the following info in the configuration file (just under the configuration-tag.&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;&amp;lt;startup&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;supportedRuntime version=&amp;quot;v4.0&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;lt;/startup&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Just run it again and you’ll be happy as Larry.&lt;/p&gt;&lt;img src="http://blogical.se/aggbug.aspx?PostID=27837" width="1" height="1"&gt;</description><category domain="http://blogical.se/blogs/mikael_sand/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogical.se/blogs/mikael_sand/archive/tags/BizTalk+2010/default.aspx">BizTalk 2010</category></item><item><title>Simpler, Smoother, Smarter</title><link>http://blogical.se/blogs/johan/archive/2011/10/15/simpler-smoother-smarter.aspx</link><pubDate>Sat, 15 Oct 2011 09:04:15 GMT</pubDate><guid isPermaLink="false">19a535f3-07d9-4378-9c5a-8d019d91e842:27823</guid><dc:creator>Johan Hedberg</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;We (&lt;a href="http://www.enfo.se"&gt;Enfo&lt;/a&gt;) had an internal image contest on the above theme. Unfortunately the images that you could enter was supposed to be of yourself at arms length showing your face. Since I couldn’t quite imagine how I could make myself express those three things by simple face expression I took another picture. And since it wont make the image contest I am instead posting it here.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/johan/CloudPower1_150BD717.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;padding-top:0px;" title="CloudPower1" border="0" alt="CloudPower1" src="http://blogical.se/blogs/johan/CloudPower1_thumb_691B378D.jpg" width="235" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I am no graphical designer, though at times I could fool a few, but hail Powerpoint as far as my image processing skills go ;)&lt;/p&gt;&lt;img src="http://blogical.se/aggbug.aspx?PostID=27823" width="1" height="1"&gt;</description><category domain="http://blogical.se/blogs/johan/archive/tags/Stuff/default.aspx">Stuff</category></item><item><title>A faster way to install Azure bits (updated)</title><link>http://blogical.se/blogs/mikael_sand/archive/2011/09/28/a-faster-way-to-install-azure-bits.aspx</link><pubDate>Wed, 28 Sep 2011 20:31:45 GMT</pubDate><guid isPermaLink="false">19a535f3-07d9-4378-9c5a-8d019d91e842:27700</guid><dc:creator>Mikael Sand</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-13-25/0407.Installer1.png" target="_blank"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;margin-left:0px;border-top:0px;margin-right:0px;border-right:0px;" border="0" align="left" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-13-25/0407.Installer1.png" width="240" height="180" alt="" /&gt;&lt;/a&gt; Having recently discovered that this Azure thing is just about ready for actual release, I have picked it up. So after spending an evening installing everything needed to run &lt;a href="http://msdn.microsoft.com/en-us/gg271268" target="_blank"&gt;samples and tutorials&lt;/a&gt;, Microsoft releases &lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=8396" target="_blank"&gt;version 1.5&lt;/a&gt; of the SDK and I have to reinstall everything.&lt;/p&gt;  &lt;p&gt;Voicing my angst about this on Twitter I got an answer from the &lt;a href="http://connectedthoughts.wordpress.com/2011/09/16/new-role-developer-evangelist-at-microsoft/" target="_blank"&gt;newly appointed Evangelist&lt;/a&gt; Thiago Almeida: There is a better way, use Web Platform Installer!&lt;/p&gt;  &lt;p&gt;Just point your browser to the Windows Azure Team blog &lt;a href="http://blogs.msdn.com/b/windowsazure/archive/2011/09/29/now-available-windows-azure-platform-training-kit-september-2011-update-and-new-training-kit-web-installer-preview.aspx" target="_blank"&gt;here&lt;/a&gt; and off you go. Using this tool you can even install separate labs and it detects dependencies and lets you install them&lt;/p&gt;  &lt;p&gt;Now if we can just get them to release a VHD-file as well.&lt;/p&gt;&lt;img src="http://blogical.se/aggbug.aspx?PostID=27700" width="1" height="1"&gt;</description><category domain="http://blogical.se/blogs/mikael_sand/archive/tags/Azure/default.aspx">Azure</category><category domain="http://blogical.se/blogs/mikael_sand/archive/tags/Installation/default.aspx">Installation</category><category domain="http://blogical.se/blogs/mikael_sand/archive/tags/Cloud/default.aspx">Cloud</category></item><item><title>Use English in BTSNTSvc.exe.config</title><link>http://blogical.se/blogs/mikael_sand/archive/2011/09/19/use-english-in-btsntsvc-exe-config.aspx</link><pubDate>Mon, 19 Sep 2011 16:32:00 GMT</pubDate><guid isPermaLink="false">19a535f3-07d9-4378-9c5a-8d019d91e842:27591</guid><dc:creator>Mikael Sand</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;A new experience for me today: You have to use English in the config-file for BizTalk. The thing was that we store some custom settings in the &amp;lt;appSettings&amp;gt;-tag. Quite useful in this particular scenario. So I added some information in Swedish (using the letter &lt;a href="http://en.wikipedia.org/wiki/%C3%96" target="_blank"&gt;ö&lt;/a&gt;) and later restarted a host-instance.&lt;/p&gt;  &lt;p&gt;I got this error message:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogical.se/blogs/mikael_sand/image_5962C5DF.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;margin-left:0px;border-top:0px;margin-right:0px;border-right:0px;" title="image" border="0" alt="image" align="left" src="http://blogical.se/blogs/mikael_sand/image_thumb_1FDFB5E8.png" width="236" height="260" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;It reads:&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;A failure occurred when executing a Windows service request.     &lt;br /&gt; Service request: Start       &lt;br /&gt; BizTalk host name: BizTalkServerApplication      &lt;br /&gt; Windows service name: BTSSvc$BizTalkServerApplication       &lt;br /&gt; Additional error information:      &lt;br /&gt; Error code: 0xc0c0153a      &lt;br /&gt; Error source: BizTalk Server 2009      &lt;br /&gt; Error description: A BizTalk subservice has failed while executing a service request.      &lt;br /&gt; Subservice: XLANG/s      &lt;br /&gt; Service request: Start &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt; that it’s XLANG/s that does not start.&lt;/p&gt;  &lt;p&gt;It took me a while to figure out but it was due to the ö. &lt;strong&gt;The strange thing is that the letter was used in a comment&lt;/strong&gt;! So even there you have to use English.&lt;/p&gt;&lt;img src="http://blogical.se/aggbug.aspx?PostID=27591" width="1" height="1"&gt;</description><category domain="http://blogical.se/blogs/mikael_sand/archive/tags/Biztalk/default.aspx">Biztalk</category><category domain="http://blogical.se/blogs/mikael_sand/archive/tags/Configuration/default.aspx">Configuration</category></item><item><title>Enfo Zystems is sponsoring a two day event focusing all on integration.</title><link>http://blogical.se/blogs/mikael/archive/2011/09/14/enfo-zystems-is-sponsoring-a-two-day-event-focusing-all-on-integration.aspx</link><pubDate>Wed, 14 Sep 2011 19:59:00 GMT</pubDate><guid isPermaLink="false">19a535f3-07d9-4378-9c5a-8d019d91e842:27553</guid><dc:creator>wmmihaa</dc:creator><slash:comments>0</slash:comments><description>&lt;h2&gt;Welcome to Integration days 2011!&lt;/h2&gt;  &lt;p&gt;If you are in the integration space, you’ll find all kinds of interesting and valuable sessions in any of the four tracks; &lt;i&gt;Strategy, Public, Microsoft&lt;/i&gt; and &lt;i&gt;IBM&lt;/i&gt;. Each track has six sessions with speakers from both &lt;a href="http://zystems.se"&gt;Enfo Zystems&lt;/a&gt; and other partner organizations such as Microsoft.&lt;/p&gt;  &lt;p&gt;At Thursday evening, you’re invited for dinner with entertainment, which of course will be a great time to meet up with other integration geeks (such as myself…)&lt;/p&gt;  &lt;p&gt;And the best of all…&lt;b&gt; –It’s all free, so &lt;/b&gt;&lt;a href="http://integrationdays.com"&gt;&lt;b&gt;sign up now!&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://integrationdays.com"&gt;&lt;img src="http://blogical.se/blogs/mikael/image_7BDB1DF6.png" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" alt="image" border="0" height="85" width="323" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;The event starts on the 13&lt;sup&gt;th&lt;/sup&gt;of October and covers four tracks, each with six sessions. The Microsoft platform track will cover the following six sessions: &lt;/p&gt;  &lt;h3&gt;Microsoft BizTalk Server and Microsoft’s Middleware vision&lt;/h3&gt;  &lt;h3&gt;&lt;/h3&gt;  &lt;h4&gt;&lt;/h4&gt;  &lt;p&gt;&lt;i&gt;BizTalk Server has been at the center of Microsoft’s Middleware platform for a number of years, to provide a rich set of capabilities for services and integration. AppFabric, both on-premise and on Windows Azure provides additional capabilities as well as some overlapping ones. So what is the strategy here, what is Microsoft up to long term and short term? How will this affect solutions you create and what opportunities will it create for your company? In this session, you will get the answers to these questions.&lt;/i&gt;     &lt;br /&gt;&lt;b&gt;Presenter: Marcus Gullberg, PM Microsoft Sweden&lt;/b&gt;     &lt;br /&gt;&lt;/p&gt;  &lt;h3&gt;Microsoft BizTalk Server &amp;amp; Windows Azure AppFabric&lt;/h3&gt;  &lt;p&gt;&lt;i&gt;Microsoft’s Middleware platform is currently undergoing a change, which in turn offers different solutions with unique capabilities. What is available today, and how can we today make these solutions work together? This session will cover Microsoft BizTalk Server, Windows Server AppFabric and Azure AppFabric, to show how you can extend the reach of your integration platform outside your own domain.&lt;/i&gt;     &lt;br /&gt;&lt;b&gt;Presenter: Mikael Håkansson, Solution Architect, Enfo Zystems&lt;/b&gt;     &lt;br /&gt;&lt;/p&gt;  &lt;h3&gt;Windows Azure AppFabric Platform futures &lt;/h3&gt;  &lt;p&gt;&lt;i&gt;Where is the future of Microsoft’s Middleware platform going? How will we design, build and monitor our solutions in the future? What capabilities will we have in our tool box? These and many other questions will be addressed in this session, which will focus on Microsoft Azure AppFabric Platform and emerging capabilities such as Composite Application, Access Control Center, Caching, ServiceBus Topics &amp;amp; Queues and other enhancements, and Integration. &lt;/i&gt;    &lt;br /&gt;&lt;b&gt;Presenter: Johan Hedberg, Solution Architect, Enfo Zystems&lt;/b&gt;     &lt;br /&gt;&lt;/p&gt;  &lt;h3&gt;Using AppFabric Cache to Maximize the Performance of Your Windows Azure and On Premises WCF Applications&lt;/h3&gt;  &lt;p&gt;&lt;i&gt;Caching is an integral part of an overall scaling strategy. By properly utilizing caching you can radically increase the number of concurrent users your application can service. Much of the caching information available to users today only focuses on server side caching. Server side caching is important, we will cover it in this session, and we will show concrete techniques to maximize its effectiveness . However, this session will also cover client side caching techniques. Client side techniques are often overlooked in spite of the fact that in order to truly hit extreme scale those techniques are nearly always necessary and often end up being bolted on after the fact. After attending this session, the attendees will walk away with the concrete knowledge and code necessary to immediately improve their WCF application performance.&lt;/i&gt;     &lt;br /&gt;&lt;b&gt;Presenter: Paolo Salvatori and Mikael Håkansson      &lt;br /&gt;&lt;/b&gt;&lt;/p&gt;  &lt;h3&gt;Deep dive: How to integrate BizTalk Server with Windows Azure Service Bus Messaging&lt;/h3&gt;  &lt;p&gt;&lt;i&gt;The Windows Azure AppFabric Service Bus and Windows Azure Connect are the foundation for building a new class of distributed and hybrid applications that span the cloud and on premises environments. The Service Bus is an Internet-scale Service Bus that offers secure, scalable and highly available connectivity and messaging capabilities. Windows Azure Connect provides a network-level bridge between applications and services running in the cloud and on-premises data centers. Windows Azure Connect makes it easier for an organization to migrate their existing applications to the cloud by enabling direct IP-based network connectivity with their existing on-premises infrastructure. In this session you will see how to integrate these technologies with BizTalk Server to create solid and cloud-ready solutions.&lt;/i&gt;     &lt;br /&gt;&lt;b&gt;Presenter: Paolo Salvatori, &lt;i&gt;Senior Program Manager Microsoft&lt;/i&gt;&lt;/b&gt;     &lt;br /&gt;&lt;/p&gt;  &lt;h3&gt;Baseline for BizTalk Hands-on&lt;/h3&gt;  &lt;p&gt;&lt;i&gt;Baseline provides a comprehensive framework that supports the design, development and maintenance of systems integration solutions. In this session we will provide a practical example of how to use the Baseline methodology and tools to refine project requirements into a working BizTalk solution – tested, documented and packaged, ready for deployment in BizTalk Server 2010. In the process we will use Baseline documents and the Baseline Portal to highlight the main strengths of Baseline.&lt;/i&gt;     &lt;br /&gt;&lt;b&gt;Presenter: Martin Rydman and Mikael Håkansson&lt;/b&gt;&lt;/p&gt;&lt;img src="http://blogical.se/aggbug.aspx?PostID=27553" width="1" height="1"&gt;</description><category domain="http://blogical.se/blogs/mikael/archive/tags/BizTalk/default.aspx">BizTalk</category><category domain="http://blogical.se/blogs/mikael/archive/tags/Fun/default.aspx">Fun</category><category domain="http://blogical.se/blogs/mikael/archive/tags/Azure/default.aspx">Azure</category><category domain="http://blogical.se/blogs/mikael/archive/tags/BizTalk+2010/default.aspx">BizTalk 2010</category><category domain="http://blogical.se/blogs/mikael/archive/tags/AppFabric/default.aspx">AppFabric</category><category domain="http://blogical.se/blogs/mikael/archive/tags/AppFabic+Cache/default.aspx">AppFabic Cache</category><category domain="http://blogical.se/blogs/mikael/archive/tags/Event/default.aspx">Event</category></item><item><title>Swedish Azure User Group to host their 4th event</title><link>http://blogical.se/blogs/mikael_sand/archive/2011/09/06/swedish-azure-user-group-to-host-their-4th-event.aspx</link><pubDate>Tue, 06 Sep 2011 12:43:19 GMT</pubDate><guid isPermaLink="false">19a535f3-07d9-4378-9c5a-8d019d91e842:27481</guid><dc:creator>Mikael Sand</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;The Swedish Azure User group (or &lt;a href="http://en.wikipedia.org/wiki/Promotional_item" target="_blank"&gt;SWAG&lt;/a&gt;!) will host their forth event on the 29th of September in Stockholm. Detailed info and booking &lt;a href="http://swag4-eorg.eventbrite.com/"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.cloudcasts.net/" target="_blank"&gt;Alan Smith&lt;/a&gt; and &lt;a href="http://geekswithblogs.net/barryoreilly/Default.aspx" target="_blank"&gt;Barry O’Reilly&lt;/a&gt; have invited &lt;a href="http://bjorneriksen.blogspot.com/" target="_blank"&gt;Björn Eriksen&lt;/a&gt; from Microsoft to speak about Azure Storage and the implications it has on programming and architecture.&lt;/p&gt;  &lt;p&gt;When coding for the cloud you cannot utilize the traditional file system, what do you use instead and how? Also, how do you make efficient use of other storage capabilities, such as database, blob and queues?&lt;/p&gt;  &lt;p&gt;Given the location and the vicinity to bars, my guess is that there probably will be some time for a relaxed chat, after the event.&lt;/p&gt;&lt;img src="http://blogical.se/aggbug.aspx?PostID=27481" width="1" height="1"&gt;</description><category domain="http://blogical.se/blogs/mikael_sand/archive/tags/Azure/default.aspx">Azure</category><category domain="http://blogical.se/blogs/mikael_sand/archive/tags/SQL+Azure/default.aspx">SQL Azure</category><category domain="http://blogical.se/blogs/mikael_sand/archive/tags/Swag/default.aspx">Swag</category></item><item><title>Comments removed</title><link>http://blogical.se/blogs/mikael_sand/archive/2011/09/06/comments-removed.aspx</link><pubDate>Tue, 06 Sep 2011 08:44:47 GMT</pubDate><guid isPermaLink="false">19a535f3-07d9-4378-9c5a-8d019d91e842:27478</guid><dc:creator>Mikael Sand</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Due to the large amout of spam I get, I have removed the comment-feature from the blog. &lt;/p&gt;  &lt;p&gt;If you have any feedback about a post, I’d love to hear it. Use the &lt;a href="http://blogical.se/blogs/mikael_sand/contact.aspx"&gt;contact form&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogical.se/aggbug.aspx?PostID=27478" width="1" height="1"&gt;</description><category domain="http://blogical.se/blogs/mikael_sand/archive/tags/Personal/default.aspx">Personal</category></item></channel></rss>
