<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Connected Systems in the Great White North : BizTalk 2006</title><link>http://blogs.msdn.com/pkelcey/archive/tags/BizTalk+2006/default.aspx</link><description>Tags: BizTalk 2006</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>A Web based version of the BizTalk Rules Composer</title><link>http://blogs.msdn.com/pkelcey/archive/2008/05/10/web-based-version-of-the-biztalk-rules-composer.aspx</link><pubDate>Sun, 11 May 2008 06:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8485461</guid><dc:creator>pkelcey</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/pkelcey/comments/8485461.aspx</comments><wfw:commentRss>http://blogs.msdn.com/pkelcey/commentrss.aspx?PostID=8485461</wfw:commentRss><description>&lt;P&gt;As part of a proof-of-concept I was working on last year, we needed to show that the BizTalk Business Rules could be created and managed via a Web Application instead of through the standard Business Rules Composer tool that we provide out of the box. The client had certain requirements that meant that using the standard Composer just wasn't viable. Therefore, I replicated a portion of the Composer as a Web based application. I thought I'd post some images from the app and see if this is something people are interested in. If you are, I'll work to clean up the code and post it to &lt;A href="http://www.codeplex.com/"&gt;http://www.codeplex.com/&lt;/A&gt;. Let me know by posting a comment here. 
&lt;P&gt;&amp;nbsp;There were two tools in the. One let you view and edit vocabularies. The other let you view/author/edit/delete/publish/deploy policies and rules. 
&lt;P&gt;Image 1: The home page, gives the user the ability to access the 2 tools contained in the app. &lt;/P&gt;&lt;BR&gt;&lt;IMG src="http://www.peterkelcey.com/images/webrules1.jpg"&gt;&lt;BR&gt;
&lt;P&gt;Image 2: The Policy and Rule Explorer This screen lets a user select a specific Policy to review. Once they select a Policy, they are shown the entire version history for it. For each version, then can load up a list of all the rules contained within that version. At this point, they have the option to publish, deploy or copy that particular version. They also have the ability to select each rule and view its Conditions and actions. &lt;/P&gt;&lt;BR&gt;&lt;IMG src="http://www.peterkelcey.com/images/webrules2.jpg" mce_src="http://www.peterkelcey.com/images/webrules2.jpg"&gt;&amp;lt;&lt;BR&gt;
&lt;P&gt;Image 3: Adding a New Rule &lt;/P&gt;&lt;BR&gt;&lt;IMG src="http://www.peterkelcey.com/images/webrules3.jpg" mce_src="http://www.peterkelcey.com/images/webrules3.jpg"&gt;&amp;lt;&lt;BR&gt;
&lt;P&gt;Image 4: The Vocabulary Explorer. Lets a user view the definitions contained within all the Vocabularies and lets them alter the values of existing definitions. &lt;/P&gt;&lt;IMG src="http://www.peterkelcey.com/images/webrules4.jpg" mce_src="http://www.peterkelcey.com/images/webrules4.jpg"&gt;&amp;lt; 
&lt;P&gt;Cheers and keep on BizTalking...&lt;/P&gt;
&lt;P&gt;Peter&lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8485461" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/pkelcey/archive/tags/BizTalk+2006/default.aspx">BizTalk 2006</category><category domain="http://blogs.msdn.com/pkelcey/archive/tags/BizTalk+2006+R2/default.aspx">BizTalk 2006 R2</category></item><item><title>Microsoft ESB Guidance: Error - Host restarting every minute</title><link>http://blogs.msdn.com/pkelcey/archive/2008/02/01/microsoft-esb-guidance-error-host-restarting-every-minute.aspx</link><pubDate>Fri, 01 Feb 2008 09:33:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7368753</guid><dc:creator>pkelcey</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/pkelcey/comments/7368753.aspx</comments><wfw:commentRss>http://blogs.msdn.com/pkelcey/commentrss.aspx?PostID=7368753</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;We'll I just spent about three hours tonight fighting with this issue, so I thought I'd post about it to hopefully save someone else from having to go through this.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;I was trying to run a couple of samples from the ESB and I noticed that whenever I used an example that had to use an orchestration, I received the following error in my event log&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;Event Type: Warning&lt;BR&gt;Event Source: BizTalk Server 2006&lt;BR&gt;Event Category: BizTalk Server 2006 &lt;BR&gt;Event ID: 5410&lt;BR&gt;Date: 12/4/2007&lt;BR&gt;Time: 4:08:39 PM&lt;BR&gt;User: N/A&lt;BR&gt;Computer: EDIBTS2006&lt;BR&gt;Description:&lt;BR&gt;An error occurred that requires the BizTalk service to terminate. The most common causes are the following:&lt;BR&gt;1) An unexpected out of memory error.&lt;BR&gt;OR&lt;BR&gt;2) An inability to connect or a loss of connectivity to one of the BizTalk databases. &lt;BR&gt;The service will shutdown and auto-restart in 1 minute. If the problematic database remains unavailable, this cycle will repeat.&lt;BR&gt;&lt;BR&gt;Error message: Exception has been thrown by the target of an invocation.&lt;BR&gt;Error source: mscorlib&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;My host instance would then shut down and try to restart itself every minute. Each retry would fail with this same error. I also ended up with a running service instance in the admin console that I couldn’t terminate.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;Each time I sent another message, I would have to manually clean these left over instances from the DB before I could restart the host instance successfully.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I finally noticed that this error was only occurring whenever a component in my “In-proc” host instance tried to run.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Base on this I tracked the issue down the btsntsvc.exe.config file that we were suppose to edit during install. I had forgotten to remove the “[path]” place holder that is in the &amp;lt;ConfigurationFile&amp;gt; tag. We were suppose to replace this with the actual path to the Microsoft.Practices.ESB.PipelineComponents.config file. (I’ve did not have this step in my install checklists, so I have since added it). I realized that the AppDomains were not loading correctly and this caused my errors in every orchestration in that&amp;nbsp; tried to run in that AppDomain.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;This is what I had left in my config file:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;EM&gt;&lt;SPAN style="COLOR: red; FONT-STYLE: normal; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-weight: bold; mso-bidi-font-style: italic"&gt;&lt;FONT size=3&gt;&amp;lt;ConfigurationFile&amp;gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/EM&gt;&lt;I&gt;&lt;SPAN style="COLOR: red; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-weight: bold"&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;EM&gt;&lt;SPAN style="COLOR: red; FONT-STYLE: normal; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-weight: bold; mso-bidi-font-style: italic"&gt;&lt;FONT size=3&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [path]\Microsoft.Practices.ESB.PipelineComponents.config&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/EM&gt;&lt;I&gt;&lt;SPAN style="COLOR: red; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-weight: bold"&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;FONT size=3&gt;&lt;EM&gt;&lt;SPAN style="COLOR: red; FONT-STYLE: normal; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-weight: bold; mso-bidi-font-style: italic"&gt;&amp;nbsp;&amp;lt;/ConfigurationFile&amp;gt;&lt;/SPAN&gt;&lt;/EM&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; COLOR: red; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;As I said, I had forgotten to replace the [path] place holder.&amp;nbsp;Anyways, I put in the proper path and I expected this to correct the situation, but I kept getting the same annoying error. After another hour of frustrated debugging, I realized that I had entered the config data like this:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="COLOR: red; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN style="COLOR: red; FONT-FAMILY: 'Arial','sans-serif'; mso-ansi-language: EN"&gt;&lt;FONT size=3&gt;&amp;nbsp;&amp;lt;ConfigurationFile&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: 36pt"&gt;&lt;FONT size=3&gt;&lt;SPAN lang=EN style="COLOR: red; FONT-FAMILY: 'Arial','sans-serif'; mso-ansi-language: EN"&gt;C:\Projects\Microsoft.Practices.ESB\source\code\core\config&lt;/SPAN&gt;&lt;EM&gt;&lt;SPAN style="COLOR: red; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-weight: bold"&gt;\Microsoft.Practices.ESB.PipelineComponents.config&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN style="COLOR: red; FONT-FAMILY: 'Arial','sans-serif'; mso-ansi-language: EN"&gt;&lt;FONT size=3&gt;&amp;lt;/ConfigurationFile&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;You’ll notice that I had put line breaks before and after the path and filename. It was these dam line break that were causing the problem. I took them out and and used this:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN style="COLOR: red; mso-ansi-language: EN"&gt;&lt;BR&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;SPAN lang=EN style="COLOR: red; FONT-FAMILY: 'Arial','sans-serif'; mso-ansi-language: EN"&gt;&amp;lt;ConfigurationFile&amp;gt;C:\Projects\Microsoft.Practices.ESB\source\code\core\config&lt;/SPAN&gt;&lt;EM&gt;&lt;SPAN style="COLOR: red; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-weight: bold"&gt;\Microsoft.Practices.ESB.PipelineComponents.config&lt;/SPAN&gt;&lt;/EM&gt;&lt;SPAN lang=EN style="COLOR: red; FONT-FAMILY: 'Arial','sans-serif'; mso-ansi-language: EN"&gt;&amp;lt;/ConfigurationFile&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Everything worked fine and the issues are gone.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;I’ve seen a number of people asking about this on codeplex and other locations, so double check your settings and avoid the headaches.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;FONT face=Calibri size=3&gt;Cheers and keep on BizTalking...&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;FONT face=Calibri size=3&gt;Peter&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 7.5pt; COLOR: navy; FONT-FAMILY: 'Tahoma','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-fareast; mso-fareast-language: EN-CA; mso-no-proof: yes"&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-bidi-font-family: 'Times New Roman'; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-fareast-language: EN-CA; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7368753" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/pkelcey/archive/tags/BizTalk+2006/default.aspx">BizTalk 2006</category><category domain="http://blogs.msdn.com/pkelcey/archive/tags/BizTalk+Howto_2700_s/default.aspx">BizTalk Howto's</category><category domain="http://blogs.msdn.com/pkelcey/archive/tags/BizTalk+2006+R2/default.aspx">BizTalk 2006 R2</category><category domain="http://blogs.msdn.com/pkelcey/archive/tags/ESB/default.aspx">ESB</category></item><item><title>ESB Exception Management fails with Canadian Regional Settings</title><link>http://blogs.msdn.com/pkelcey/archive/2008/01/24/esb-exception-management-fails-with-canadian-regional-settings.aspx</link><pubDate>Thu, 24 Jan 2008 22:28:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7225923</guid><dc:creator>pkelcey</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/pkelcey/comments/7225923.aspx</comments><wfw:commentRss>http://blogs.msdn.com/pkelcey/commentrss.aspx?PostID=7225923</wfw:commentRss><description>&lt;P&gt;I spent an hour or so this morning working with a college to debug a strange error he was getting when he tried to use on of the Exception Management Framework samples that are in the ESB guidance for BizTalk.&amp;nbsp; He was intentionally creating exceptions and he expected to see them routed into the ESB exception database. However, every time the&amp;nbsp; ALL.Exception SQL Send port tried to route the message to the SQL Server, he got the following error. &lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;The adapter failed to transmit message going to send port "ALL.Exceptions" with URL "SQL://VBROKERSERVER7/EsbExceptionDb/". It will be retransmitted after the retry interval specified for this Send Port. Details:"HRESULT="0x80040e07" Description="Error converting data type nvarchar to datetime."&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Now we both expected that he had made a mistake during the installation and configuration phase, but after we spent a fair bit of time comparing his installation to my installation (which worked by the way!) we realized that we had identical configurations.&amp;nbsp; We finally realized that the only difference between the environments was that I had configured my Windows server to work with a regional setting of "English (United States)" while he was using "English (Canada)". The problem was occurring because the two countries store the day/month data in reversed order.&amp;nbsp; Once we changed his system so that the user account that BizTalk ran under used "English (United States)" his system was fine. &lt;/P&gt;
&lt;P&gt;I've since seen someone with a near similar problem using the Dutch regional settings. He found a code level work around that can be used to fix the problem and allow any country's setting to be used. Details are at &lt;A title=http://www.codeplex.com/esb/workitem/view.aspx?workitemid=4430 href="http://www.codeplex.com/esb/workitem/view.aspx?workitemid=4430" mce_href="http://www.codeplex.com/esb/workitem/view.aspx?workitemid=4430"&gt;http://www.codeplex.com/esb/workitem/view.aspx?workitemid=4430&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Cheers and keep on BizTalk&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7225923" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/pkelcey/archive/tags/BizTalk+2006/default.aspx">BizTalk 2006</category><category domain="http://blogs.msdn.com/pkelcey/archive/tags/SOA/default.aspx">SOA</category><category domain="http://blogs.msdn.com/pkelcey/archive/tags/BizTalk+2006+R2/default.aspx">BizTalk 2006 R2</category></item><item><title>Using the ESB Guidance - Installation Process and Checklists</title><link>http://blogs.msdn.com/pkelcey/archive/2008/01/22/esb-guidance-installation-process-and-checklists.aspx</link><pubDate>Wed, 23 Jan 2008 07:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7204921</guid><dc:creator>pkelcey</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/pkelcey/comments/7204921.aspx</comments><wfw:commentRss>http://blogs.msdn.com/pkelcey/commentrss.aspx?PostID=7204921</wfw:commentRss><description>&lt;P&gt;Many people are eager to get their hands on the new Microsoft ESB Guidance for BizTalk and to start exploring all of the great stuff it contains. However, we’re seeing that a lot of people are struggling with the installation process. Therefore, I thought I’d put together some documentation on the process I followed and I also figured that it would be useful to create some simple checklists that outline all of the tasks, actions and software you need to complete.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Based on my experiences (and backed up by my college Jim Bowyer’s experiences) most of your time will be spent installing the prerequisites that the ESB guidance requires. The guidance does include some fairly comprehensive help files that do outline all of the service packs, hot fixes etc that you need, however I’ve found that most people rush through this section a bit and miss one of two of the required components or required tasks. I myself spent several hours trying to debug the sample applications only to realize that I had missed one key hot fix and one key step in the configuration process. My strongest recommendation is to really take your time when setting up your environment and make sure you’ve got everything install and configured properly before you try and install the ESB guidance. A little care taken at early will save you massive amount of time later when you’re trying to debug malfunctioning components and sample applications.&lt;/P&gt;
&lt;P&gt;After running through this process a couple of times, I’d estimate that I could do a complete installation in a little less than ½ a day. It took me almost two days the first time I did this due to fact that I rushed through the process and missing a couple of steps. The ½ day estimate is also based on the fact that I have a base Virtual PC image that I can start from. Without this image (I.e. if you’re building a machine from the O/S up), you’ll obviously need more time (perhaps even up to 2 days). &lt;INS cite=mailto:Jim%20Bowyer dateTime=2008-01-22T15:03&gt;Finally, p&lt;A&gt;lease note documentation is not my day job; these are merely supplementary notes to help folks get started with the ESB Guidance. I hope you find &lt;/A&gt;&lt;/INS&gt;&lt;INS cite=mailto:pkelcey dateTime=2008-01-22T21:52&gt;this &lt;/INS&gt;&lt;INS cite=mailto:Jim%20Bowyer dateTime=2008-01-22T15:03&gt;valuable and &lt;/INS&gt;&lt;INS cite=mailto:pkelcey dateTime=2008-01-22T21:52&gt;I &lt;/INS&gt;&lt;INS cite=mailto:Jim%20Bowyer dateTime=2008-01-22T15:03&gt;welcome your feedback.&lt;/INS&gt;&lt;/P&gt;
&lt;P&gt;&lt;INS cite=mailto:Jim%20Bowyer dateTime=2008-01-22T15:03&gt;&lt;/INS&gt;I've attached a PDF document containing the process overview and checklists. &lt;/P&gt;
&lt;P&gt;Update: For those of you that are reading this through an RSS feed or from a syndicated blog site, you might not be able to see the attachment. Here's a link you can use to download the file. &lt;A href="http://www.peterkelcey.com/downloads/ESBInstallProcess_V1.pdf"&gt;http://www.peterkelcey.com/downloads/ESBInstallProcess_V1.pdf&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Cheers and keep on BizTalking..&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7204921" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/pkelcey/attachment/7204921.ashx" length="935882" type="application/pdf" /><category domain="http://blogs.msdn.com/pkelcey/archive/tags/BizTalk+2006/default.aspx">BizTalk 2006</category><category domain="http://blogs.msdn.com/pkelcey/archive/tags/BizTalk+Howto_2700_s/default.aspx">BizTalk Howto's</category><category domain="http://blogs.msdn.com/pkelcey/archive/tags/SOA/default.aspx">SOA</category></item><item><title>Awesome new BizTalk Database Optimization Whitepaper</title><link>http://blogs.msdn.com/pkelcey/archive/2007/09/06/awesome-new-biztalk-database-optimization-whitepaper.aspx</link><pubDate>Fri, 07 Sep 2007 04:48:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4798197</guid><dc:creator>pkelcey</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/pkelcey/comments/4798197.aspx</comments><wfw:commentRss>http://blogs.msdn.com/pkelcey/commentrss.aspx?PostID=4798197</wfw:commentRss><description>&lt;P&gt;One of the most tricky aspects of developing BizTalk applications can be the performance tuning and optimization phase. A great new whitepaper has just been released to MSDN that has extremely deep and thorough coverage on how to configure, install and tune the a BizTalk database tier. This is a must have paper for anyone dealing with high load, high performance&amp;nbsp;BizTalk applications&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;A href="http://msdn2.microsoft.com/en-us/library/bb743398.aspx"&gt;http://msdn2.microsoft.com/en-us/library/bb743398.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Great work done by John B. Brockmeyer and team.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Cheers and keep on BizTalking&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4798197" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/pkelcey/archive/tags/BizTalk+2006/default.aspx">BizTalk 2006</category><category domain="http://blogs.msdn.com/pkelcey/archive/tags/BizTalk+Howto_2700_s/default.aspx">BizTalk Howto's</category><category domain="http://blogs.msdn.com/pkelcey/archive/tags/BizTalk+2006+R2/default.aspx">BizTalk 2006 R2</category></item><item><title>Using the ESB Guidance: Dynamic Transformation and Routing</title><link>http://blogs.msdn.com/pkelcey/archive/2007/01/20/using-the-esb-guidance-dynamic-transformation-and-routing.aspx</link><pubDate>Sat, 20 Jan 2007 10:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1497450</guid><dc:creator>pkelcey</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/pkelcey/comments/1497450.aspx</comments><wfw:commentRss>http://blogs.msdn.com/pkelcey/commentrss.aspx?PostID=1497450</wfw:commentRss><description>&amp;nbsp; 
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;In my&lt;A href="http://blogs.msdn.com/pkelcey/archive/2007/01/02/using-the-microsof-esb-guidance-uddi.aspx" mce_href="http://blogs.msdn.com/pkelcey/archive/2007/01/02/using-the-microsof-esb-guidance-uddi.aspx"&gt; last entry&lt;/A&gt;, I showed how developers could use our new ESB guidance to submit generic messages into BizTalk and have that message routed to a Service Endpoint based on a UDDI entry.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Today, I thought I'd expand on that example and add in another common scenario that occurs within an ESB architecture, namely "Dynamic Transformations". (If you haven't seen the last post, its probably best to check it out first as I'll be building on the concepts introduced there)&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-WEIGHT: bold; FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri; TEXT-DECORATION: underline"&gt;The Goal&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;Submit a generic message to the ESB and have it dynamically transformed and then have the new message dynamically routed to a Service Endpoint that is defined in a UDDI entry. The client application needs to be able to specific the transformation map to use as well as the name of the Service.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-WEIGHT: bold; FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri; TEXT-DECORATION: underline"&gt;The Solution&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri; TEXT-DECORATION: underline" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;The first thing I did was to build out a test client that I could use to submit message to the ESB.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I needed to be able to specify the body of my message, the map I want to use for the transformation and the name of the Service that I want the message submitted to.&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;IMG src="http://www.peterkelcey.com/images/blog/client.JPG" width="75%"&gt; 
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;&amp;nbsp;In my &lt;A href="http://blogs.msdn.com/pkelcey/archive/2007/01/02/using-the-microsof-esb-guidance-uddi.aspx" mce_href="http://blogs.msdn.com/pkelcey/archive/2007/01/02/using-the-microsof-esb-guidance-uddi.aspx"&gt;last post&lt;/A&gt; I spoke about the ESB On Ramp Web Service and show how you could submit generic XML message to it. I also outlined about how to submit message processing instructions to the ESB by using SOAP headers attached to that SOAP message.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;To achieve dynamic transformation and routing, we'll again need to use the this On Ramp and we'll again attach message processing instructions via the SOAP Headers.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Therefore, the first thing I did after creating my test client was to add a Web Reference to the ESB On Ramp Web Service.&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;IMG src="http://www.peterkelcey.com/images/blog/uddi.JPG"&gt; 
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;Next, I created a function that would handle all interaction with the OnRamp Web Service.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;To achieve both dynamic transformation followed by dynamic routing, I needed to use four of the SOAP headers. &lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL style="MARGIN-TOP: 0in; FONT-SIZE: 11pt; MARGIN-BOTTOM: 0in; MARGIN-LEFT: 0.75in; DIRECTION: ltr; FONT-FAMILY: Calibri; unicode-bidi: embed" type=1&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle" value=1&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;ProcessingInstruction - (Allows me to specify the first processing task for the ESB to perform)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle" value=2&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;Itinerary - (I'll talk more about this in a minute)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle" value=3&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;MapType - (Allows me to specify the fully qualified name of the map I want BizTalk to use in the transformation)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle" value=4&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;EndpoingUddiLabel - (Allows me to specify the name of the Service that I want message routed to)&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"&gt;private string Submit_Transform_Route(string strService, string strMessage, string strMap)&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"&gt;{&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;// Get an instance of the On Ramp Service&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;ESB.OnRamp ramp = new ESB.OnRamp();&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;// Assign security credentials&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;ramp.Credentials = new System.Net.NetworkCredential("username", "password");&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;// Assign values to the headers we need to perform the UDDI based routing &lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;ramp.EsbSoapHeadersValue = new ESB.EsbSoapHeaders();&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;//Tell the ESB that the first task is to "Transform" the message&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;ramp.EsbSoapHeadersValue.ProcessingInstruction = "TRANSFORM";&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;//Let the ESB know what all of the steps I want performed are&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;ramp.EsbSoapHeadersValue.Itinerary = "TRANSFORM,ROUTE";&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;//Tell the ESB which Map to use in the transform&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;ramp.EsbSoapHeadersValue.MapType = strMap;&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;ramp.EsbSoapHeadersValue.EndpointUddiLabel = strService;&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;// Get the message to send&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;XmlDocument doc = new XmlDocument();&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;doc.LoadXml(strMessage);&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;try&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;{&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.75in; FONT-FAMILY: 'Courier New'"&gt;//Send the message to the OnRamp and return the result&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.75in; FONT-FAMILY: 'Courier New'"&gt;ramp.Receive(doc);&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.75in; FONT-FAMILY: 'Courier New'"&gt;return "Message Submitted Successfully.";&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;}&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;catch (System.Exception ex)&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;{&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.75in; FONT-FAMILY: 'Courier New'"&gt;return "Error: " + ex.Message;&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;}&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"&gt;}&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;You'll notice that its almost identical to the function I developed for my last post. In that function I had to set three of the EsbSoapHeaders to achieve UDDI based routing for my message.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I had to set the ProcessingInstruction = "ROUTE", the Itineray to "ROUTE" and the EndPointUddiLabel to the name of the Service I wanted the message routed to. &lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;For this example, I actually wanted the ESB to perform multiple and sequential tasks on my message. (i.e. transform it first and then route it).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Since the "ProcessingInstruction" header only allows me to specify a single task for the&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;ESB to perform,&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I needed to find some header that would let me submit a list of instructions.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;This is where the "Itinerary" header comes into play. It is this header that allows me to pass in a comma delimited list of tasks which the ESB will perform one after the other. &lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;Once I had this function built, all I had to do was call it from the onClick where I passed in the Map name and the Service name.&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;private void button1_Click(object sender, EventArgs e)&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;{&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Cursor.Current = Cursors.WaitCursor;&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;btnSubmit.Enabled = false;&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;string result = Submit_Transform_Route(txtServiceName.Text, txtOriginalMessage.Text, txtMapName.Text);&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;btnSubmit.Enabled = true;&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Cursor.Current = Cursors.Default;&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;MessageBox.Show(result, "Result", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly);&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;}&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;Its important to understand that you can only use a Map that has already been deployed into your BizTalk server.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;So you do need to pre-develop the Map before you can use it. For my example here, I just used one of the prebuilt samples that comes with the SB guidance.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Also, you have to provide the fully qualified name of the map.&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;IMG src="http://www.peterkelcey.com/images/blog/clientInvoke.JPG"&gt; 
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-WEIGHT: bold; FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri; TEXT-DECORATION: underline"&gt;How it Works&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;The way this scenario works is very similar to the Dynamic Routing scenario I explained in my last post.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Our message is submitted to the OnRamp Web Service, it promotes all of the SOAP headers that we provided up into the standard BizTalk Message Context.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Within BizTalk, we then have our "Agents" (i.e. Orchestrations) that are setup to subscribe to our message. Each Agent subscribes to a message based on the "ProcessingInstruction" property.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In my example, I set the ProcessingInstruction equal to " TRANSFORM". This resulted in my message being picked up by the DynamicTransformation.odx orchestration. (Found in the Microsoft.BizTalk.ESB.Agents.Transform project). It is this orchestration that will perform the transformation for us. &lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;This transformation orchestration does a couple of things for us.&lt;/P&gt;
&lt;OL style="MARGIN-TOP: 0in; FONT-SIZE: 11pt; MARGIN-BOTTOM: 0in; MARGIN-LEFT: 0.75in; DIRECTION: ltr; FONT-FAMILY: Calibri; unicode-bidi: embed" type=1&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle" value=1&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;It checks to see if we have specified a map for us. If we haven't it attempts to determine the map name based on information sent in the SOAP headers.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle" value=2&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;Once a map name is determined, the transformation is performed for us. &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle" value=3&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;Advance the itinerary for us.&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in 0in 0in 0.75in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;"Advance the itinerary"??? What's that mean? We'll lets take a look ...&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in 0in 0in 0.75in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri; TEXT-DECORATION: underline"&gt;Itineraries&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri; TEXT-DECORATION: underline" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;Things to understand:&lt;/P&gt;
&lt;OL style="MARGIN-TOP: 0in; FONT-SIZE: 11pt; MARGIN-BOTTOM: 0in; MARGIN-LEFT: 0.75in; DIRECTION: ltr; FONT-FAMILY: Calibri; unicode-bidi: embed" type=1&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle" value=1&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;Message processing tasks are performed by "Agents" which are really just BizTalk Orchestrations&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle" value=2&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;Agents subscribe to messages based on the "ProcessingInstruction" property.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;I.e. The Transform agent only picks up messages with a ProcessingInstruction set to "TRANSFORM". The delivery agent only to messages with "ROUTE"&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle" value=3&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;Itineraries are comma delimited list of processing instructions that will eventually be moved up into the ProcessingInstruction property as each step is completed.&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;After an agent picks up a message from the messageBox and completes its core task, it is required to examine the current message itinerary. If there are additional steps that need to be completed, the agent is responsible for extracting the next step out of the itinerary and moving it up into the ProcessingInstruction property. The message is then published into the messageBox where another agent can potentially pick it up based on the new processing instruction.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It is this mechanism that allows us to "chain" together our agents and complete multiple tasks on our message as it moves through the ESB. &lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;Lets take a look at a portion of the Transform agent orchestration.&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;IMG src="http://www.peterkelcey.com/images/blog/AdvanceItineray.JPG"&gt; 
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;In this image, we can see the 2 key tasks that the agent is performing. In the "MessageAssignment" step, the actual transformation is performed. The code that performs the dynamic transform is:&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;tMapType = System.Type.GetType(FullyQualifiedMapType);&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;transform (OutboundMessage) = tMapType(InboundMessage); &lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;The second key box is the "Advance Itinerary"&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;one. It contains the following code:&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;OutboundMessage(*) = InboundMessage(*);&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;itineraryStep = Microsoft.BizTalk.ESB.Helpers.ItineraryHelper.Advance(OutboundMessage(Microsoft.BizTalk.ESB.Itinerary));&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;OutboundMessage(Microsoft.BizTalk.ESB.Itinerary) = itineraryStep.Itinerary;&lt;/P&gt;
&lt;P style="FONT-SIZE: 9pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;OutboundMessage(Microsoft.BizTalk.ESB.ProcessingInstruction) = itineraryStep.NextStep;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;As you can see, this code advances the itinerary forward one step by calling the ItineraryHelper class. The ProcessingInstruction property is then updated to contain this next step.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;For our example, the "TRANSFORM" instruction I manually assigned to the ProcessingInstruction is replaced with the second Itinerary task "ROUTE".&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Once this code runs, a new message is published back to the messageBox where our Routing agent picks it up and perform the dynamic routing. (If you want details on how that agent will run, check out the previous post)&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This is one way in which Dynamic Transformation and Dynamic Routing can be achieved using the ESB guidance.&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-WEIGHT: bold; FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri; TEXT-DECORATION: underline"&gt;Extending Beyond this Example:&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;The ESB guidance currently ships with two default agents, the Transform agent and the Delivery agent. It's important to understand that you can extend your ESB beyond this basic functionality by creating you own Agent orchestrations that subscribe to your own custom ProcessingInstructions.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The guidance contains a set of guidelines on how to develop your own agents so that you can develop your own custom and potentially complex ESB tasks.&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;Now, if you are interested in leveraging the ESB guidance for your organization, we have currently released it to a core set of Microsoft Partners. You can find a list of these partners at &lt;A href="http://www.microsoft.com/biztalk/solutions/soa/esbpartners.mspx" mce_href="http://www.microsoft.com/biztalk/solutions/soa/esbpartners.mspx"&gt;http://www.microsoft.com/biztalk/solutions/soa/esbpartners.mspx&lt;/A&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1497450" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/pkelcey/archive/tags/BizTalk+2006/default.aspx">BizTalk 2006</category><category domain="http://blogs.msdn.com/pkelcey/archive/tags/BizTalk+Howto_2700_s/default.aspx">BizTalk Howto's</category><category domain="http://blogs.msdn.com/pkelcey/archive/tags/SOA/default.aspx">SOA</category></item><item><title>Using the Microsoft ESB Guidance: UDDI</title><link>http://blogs.msdn.com/pkelcey/archive/2007/01/02/using-the-microsof-esb-guidance-uddi.aspx</link><pubDate>Tue, 02 Jan 2007 22:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1400023</guid><dc:creator>pkelcey</dc:creator><slash:comments>10</slash:comments><comments>http://blogs.msdn.com/pkelcey/comments/1400023.aspx</comments><wfw:commentRss>http://blogs.msdn.com/pkelcey/commentrss.aspx?PostID=1400023</wfw:commentRss><description>&lt;P&gt;Some of you may have heard by now that we are in the process of releasing the Microsoft Enterprise Service Bus (ESB) guidance. This guidance contains pre-built components, use cases, documentation and sales material that our Business Process Integration partners can use to rapidly deploy ESBs on top of BizTalk, Windows, SharePoint and SQL Servers.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Over the holidays I spent some time digging into the code and thought I'd share a bit of what I've been seen.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;/SPAN&gt;I thought that I'd first talk about the standard ESB concept of "EndPoint Resolution" and how our guidance allows you to achieve this.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Endpoint resolution is core requirement in any ESB as a Service may not always reside at the same address or endpoint. Therefore we need to be able to locate our services at runtime (wherever they may be).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;The Microsoft ESB guidance comes prebuilt with this capability, so I thought I post a small "How-To" blurb about how you can do it. &lt;/P&gt;
&lt;P&gt;&lt;U&gt;The Task&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;The basic task I thought I'd tackle is to submit a generic message from a basic client application into the ESB and have it routed it to a Service based on a entry in a local UDDI server.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The following image show the Services that exist in my UDDI server.&lt;/P&gt;
&lt;OL style="MARGIN-TOP: 0in; FONT-SIZE: 11pt; MARGIN-BOTTOM: 0in; MARGIN-LEFT: 0.247in; DIRECTION: ltr; FONT-FAMILY: Arial; unicode-bidi: embed"&gt;
&lt;P style="MARGIN: 0in"&gt;&lt;IMG src="http://blogs.msdn.com/photos/pkelcey/images/1400002/original.aspx" mce_src="http://blogs.msdn.com/photos/pkelcey/images/1400002/original.aspx"&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;The service that I'll wanted to submit the message to is "ENDPOINT: PostOrderMessage".&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You can see from the screen image that this Service has been setup with a File Folder as its endpoint. &lt;SPAN style="FONT-STYLE: italic"&gt;"C:\projects\Microsoft BizTalk ESB\Tests\Common\Filedrop\Output\Order %MessageID%.xml"&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If the solution works properly, I should be able to find my messages sitting in this folder. &lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-WEIGHT: bold; FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri; TEXT-DECORATION: underline"&gt;ESB Concept: The "On Ramp"&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;As you dig into the guidance you'll quickly learn that one of the key components within it is the "On Ramp".&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The On Ramp acts as a central entry point into the ESB engine and it allows client applications to submit generic messages that contain processing, routing and transformation instructions. The On Ramp is a key concept to understand in order use the ESB guidance and if you're planning on using it, you'll need to have a good understanding it. &lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;To keep things simple, the On Ramp is a Web Service that applications can use to submit XML based messages into BizTalk. On top of this, the On Ramp allow us to specify a number of processing, routing and transformation instructions that the BizTalk will follow when processing the message.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;To send these processing instructions, we use specific SOAP headers that are attached to our message when we submit to the On Ramp . If you've got the ESB guidance already, you can view all of the possible headers by opening the "EsbEnvGeneric.xsd" property schema file in the Microsoft.BizTalk.Esb.Schema project.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This XSD file is a standard BizTalk property schema and denotes the properties that our SOAP headers will eventually be promoted into.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;For those of you that don't have the guidance, here a quick list of the parameters you can use when submitting your messages.&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL style="MARGIN-TOP: 0in; MARGIN-BOTTOM: 0in; MARGIN-LEFT: 0.75in; DIRECTION: ltr; unicode-bidi: embed" type=disc&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;ProcessingInstruction&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;Itinerary&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;MapRulesPolicy&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;MapSelAssemblyName&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;MapSelMethodCall&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;MapSelTypeName&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;MapType&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;MapUddiLabel&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;MapXPath&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;EndpointAddress&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;EndpointConfigurationString&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;EndpointConfigurationRulesPolicy&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;EndpointConfigurationUddiLabel&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;EndpointConfigurationXPath&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;EndpointDeliveryAgent&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;EndpointMessagePattern&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;EndpointRulesPolicy&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;EndpointSelectAssembly&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;EndpointSelectMethod&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;EndpointSelectType&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;EndpointUddiLabel&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;EndpointXpath&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;For most projects, you'll ending have to work with most these headers in order to achieve full ESB capabilities, but for our simple task we'll just need to use three:&lt;/P&gt;
&lt;OL style="MARGIN-TOP: 0in; FONT-SIZE: 11pt; MARGIN-BOTTOM: 0in; MARGIN-LEFT: 0.75in; DIRECTION: ltr; FONT-FAMILY: Calibri; unicode-bidi: embed" type=1&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle" value=1&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;EndPointUddiLabel - We use this to tell the ESB the name of the Service to lookup in the UDDI&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle" value=2&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;ProcessingInstruction - We use this to tell the ESB that the message needs to be routed.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle" value=3&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;Itinerary - Where we'll tell the ESB that this message needs to following a routing itinerary&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in 0in 0in 0.75in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-WEIGHT: bold; FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri; TEXT-DECORATION: underline"&gt;Building the Solution&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;The first thing I did was to deploy and configure the ESB guidance as per the installation instructions it ships with. I won't cover those steps here, so I'll just jump to what I did once that process was complete.&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;The first thing I did was to build out a client app that I could use to submit my messages to the ESB.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I used a very basic Windows Forms application as my client. All I needed was a form that would let me to define my message and specify the name of the Service I wanted to route the message to.&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in"&gt;&lt;IMG src="http://blogs.msdn.com/photos/pkelcey/images/1400003/original.aspx"&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;Once I had my basic form built out, the next step I needed to take was to add a web reference to the ESB On Ramp.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in"&gt;&lt;IMG src="http://blogs.msdn.com/photos/pkelcey/images/1400013/original.aspx"&gt;&lt;/P&gt;
&lt;P style="FONT-WEIGHT: bold; FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;Once I'd added the web reference, I had everything I needed to submit messages into the ESB. For my project,&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I created a function to handle all interaction with the On Ramp web service. It creates my message, assigns the three SOAP headers I need and submits the message it to the On Ramp Web Service. Here's the code: &lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;/// &amp;lt;summary&amp;gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;/// This function prepares a message and submits it to the ESB on ramp&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;/// &amp;lt;/summary&amp;gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;/// &amp;lt;param name="strMessageBody"&amp;gt;The core content of the message&amp;lt;/param&amp;gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;/// &amp;lt;param name="strServiceName"&amp;gt;The name of the service in the UDDI that we want to send the message to&amp;lt;/param&amp;gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;private string SubmitMessage(string strMessageBody, string strServiceName)&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;{&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.75in; FONT-FAMILY: 'Courier New'"&gt;// Get an instance of the On Ramp Service&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;ESB.OnRamp ramp = new ESB.OnRamp();&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.75in; FONT-FAMILY: 'Courier New'"&gt;// Assign security credentials&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.75in; FONT-FAMILY: 'Courier New'"&gt;ramp.Credentials = new System.Net.NetworkCredential("username", "password");&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.75in; FONT-FAMILY: 'Courier New'"&gt;// Assign values to the headers we need to perform the UDDI based routing &lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.75in; FONT-FAMILY: 'Courier New'"&gt;ramp.EsbSoapHeadersValue = new ESB.EsbSoapHeaders();&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.75in; FONT-FAMILY: 'Courier New'"&gt;ramp.EsbSoapHeadersValue.EndpointUddiLabel = strServiceName;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.75in; FONT-FAMILY: 'Courier New'"&gt;ramp.EsbSoapHeadersValue.ProcessingInstruction = "ROUTE";&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.75in; FONT-FAMILY: 'Courier New'"&gt;ramp.EsbSoapHeadersValue.Itinerary = "ROUTE";&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.75in; FONT-FAMILY: 'Courier New'"&gt;// Get the message to send&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.75in; FONT-FAMILY: 'Courier New'"&gt;XmlDocument doc = new XmlDocument();&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.75in; FONT-FAMILY: 'Courier New'"&gt;doc.LoadXml(strMessageBody);&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.75in; FONT-FAMILY: 'Courier New'"&gt;try&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;//Send the message and return the result&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;ramp.Receive(doc);&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return "Message Submitted Successfully.";&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.75in; FONT-FAMILY: 'Courier New'"&gt;catch (System.Exception ex)&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.75in; FONT-FAMILY: 'Courier New'"&gt;{&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 1.125in; FONT-FAMILY: 'Courier New'"&gt;return "Error: " + ex.Message;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.75in; FONT-FAMILY: 'Courier New'"&gt;}&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'"&gt;}&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;As you can see, the ESB class that was created when we added our Web Reference, contains a 2 classes. The "ESB.OnRamp" class which is our proxy to the actual Web Service and the "ESB.EsbSoapHeadersValue" class. This second class contains all of the properties that relate to SOAP headers that the ESB On Ramp will use. &lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;I setup the OnClick event of my Submit button to call this function and I passed in the values of my two textboxes.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;As easy as that, I had built an application that was able to send a message into my ESB architecture.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Once I'd done that, the ESB engine took care of everything else.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It only took me ~10 minutes to build out my app and start routing my messages to Services.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Its really is pretty simple and easy to get going with this.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I've included a screen cam video at the end of this entry that shows me running the solution. (Its set for 1024x768 resolution)&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri"&gt;Now that you've seen how to route message using UDDI, some of you might wonder what exactly is going on under the BizTalk covers. So lets take a look.&lt;/P&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-WEIGHT: bold; FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri; TEXT-DECORATION: underline"&gt;The Inner Workings&lt;/P&gt;
&lt;P style="FONT-WEIGHT: bold; FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri; TEXT-DECORATION: underline" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;/OL&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;The first thing to look at is obviously the On Ramp. The On Ramp is essentially&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;a Web Service and a BizTalk receive port. The receive location within the port uses the SOAP adapter to interact with the Web Service and also uses a custom pipeline "ReceiveForESBGeneric".&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;&lt;/SPAN&gt;&lt;IMG src="http://blogs.msdn.com/photos/pkelcey/images/1400019/original.aspx"&gt;&lt;/P&gt;
&lt;OL style="MARGIN-TOP: 0in; FONT-SIZE: 11pt; MARGIN-BOTTOM: 0in; MARGIN-LEFT: 0.247in; DIRECTION: ltr; FONT-FAMILY: Arial; unicode-bidi: embed"&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;/OL&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;The SOAP adapter is configured to use the same Web Service that we made a web reference to in our client application. The custom pipeline is responsible for promoting the SOAP headers into BizTalk message properties so that other elements within BizTalk can access our instructions. Once the receive location processes the incoming message, the message (along with its promoted properties) is published into the standard BizTalk MessageBox and the On Ramp is done its work.&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL style="MARGIN-TOP: 0in; FONT-SIZE: 11pt; MARGIN-BOTTOM: 0in; MARGIN-LEFT: 0.247in; DIRECTION: ltr; FONT-FAMILY: Arial; unicode-bidi: embed"&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;/OL&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;At this point, another BizTalk artifact takes over, the "Generic.odx" orchestration. This orchestration comes as part of the guidance and can be found int the Microsoft.BizTalk.ESB.Agents.Delivery project. The messages received from our On Ramp receive port are sent to this orchestration using BizTalk's standard publish/subscribe mechanism. This orchestration handles all incoming messages that need to be routed.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;&lt;/SPAN&gt;&lt;IMG src="http://blogs.msdn.com/photos/pkelcey/images/1400020/original.aspx"&gt;&lt;/P&gt;
&lt;OL style="MARGIN-TOP: 0in; FONT-SIZE: 11pt; MARGIN-BOTTOM: 0in; MARGIN-LEFT: 0.247in; DIRECTION: ltr; FONT-FAMILY: Arial; unicode-bidi: embed"&gt;
&lt;P style="FONT-SIZE: 11pt; MARGIN: 0in; FONT-FAMILY: Calibri" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;/OL&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;The orchestration has a direct bound receive port based on specific filter expressions. The receive shape that has a filter setup to receive all messages that have their "ProcessingInstruction" property set to "ROUTE". Hence why I had to set that that SOAP header to use a value of "ROUTE" in my client application.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"&gt;&lt;/SPAN&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc"&gt;&lt;IMG src="http://blogs.msdn.com/photos/pkelcey/images/1400021/original.aspx"&gt;&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc"&gt;Once receiving the message, the orchestration checks to see if an proper endpoint has already been assigned to this message. If it hasn't, then the orchestration will begin the process of resolving it. This is done in the "Call Resolution Class" expression box in the "Resolve EndPoint" scope.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In this expression box, a call is made to a function call "Microsoft.BizTalk.ESB.Helpers.Resolver.Resolve".&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This function is a part of a custom library that ships with the ESB guidance and it handles the lower level steps required to resolve the endpoint.&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc"&gt;In our example, we specified a UDDI service name in the EndPointUddiLabelField SOAP header.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Because we did this, the Resolve function will attempt to resolve the endpoint by making a call to the UDDI server.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If it finds the requested service in the directory, then the endpoint is returned (as a string) to the orchestration.&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc"&gt;This endpoint is then used to configure the "GenericDeliveryAgentSend" dynamic port .&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The configuration of the port is done in the "Set Endpoint" expression shape.&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc"&gt;&lt;IMG src="http://blogs.msdn.com/photos/pkelcey/images/1400021/original.aspx"&gt;&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc"&gt;Once configured, the port is able to transmits our message to the Service endpoint. &lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc"&gt;As you can see, the orchestration also contains number of exception handling steps which all tie into the central exception management framework that the guidance contains. The orchestration also contains a number of "Tracing" steps which allow for easier debugging of the process.&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc"&gt;&lt;STRONG&gt;&lt;U&gt;More than just UDDI and more than just Routing&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc"&gt;I've quickly shown how to submit a message to the ESB engine that ends up being routed based on a UDDI entry. However I must add that you aren't limited to UDDI lookups for your address resolution.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Using the SOAP headers, you can tell the ESB engine to use the Business Rules Engine or you can pass in the End Point directly with your message and there are also options for using XPath.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The code contained in the guidance is incredibly flexible with regards to how you want to handle your endpoint resolution.&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc"&gt;Also, message Routing is just one feature of the guidance. It also provides some great capabilities around dynamic message transformation, centralized exception management for services, linked itineraries and more.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;There are more than a few projects I've worked on where I wish I had this functionality prebuilt for me!&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; LIST-STYLE-TYPE: disc"&gt;Cheers and Keep on BizTalking...&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1400023" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/pkelcey/attachment/1400023.ashx" length="849240" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/pkelcey/archive/tags/BizTalk+2006/default.aspx">BizTalk 2006</category><category domain="http://blogs.msdn.com/pkelcey/archive/tags/Integration/default.aspx">Integration</category><category domain="http://blogs.msdn.com/pkelcey/archive/tags/BizTalk+Howto_2700_s/default.aspx">BizTalk Howto's</category><category domain="http://blogs.msdn.com/pkelcey/archive/tags/SOA/default.aspx">SOA</category></item><item><title>Installing, setting up and using the BizTalk SAP adapter</title><link>http://blogs.msdn.com/pkelcey/archive/2006/11/28/Installing_2C00_-Configuring-and-Using-the-BizTalk-Sap-adapter.aspx</link><pubDate>Tue, 28 Nov 2006 17:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:881101</guid><dc:creator>pkelcey</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/pkelcey/comments/881101.aspx</comments><wfw:commentRss>http://blogs.msdn.com/pkelcey/commentrss.aspx?PostID=881101</wfw:commentRss><description>&lt;P&gt;Wow, its been a busy&amp;nbsp;couple of months here. &lt;/P&gt;
&lt;P&gt;I was looking forward to getting to the&amp;nbsp;Microsoft SOA conference in Seattle back at the start of October, but I ended up being pulled back to Toronto for a pressing BizTalk opportunity we had&amp;nbsp;going. That opportunity pretty much took all of my time&amp;nbsp;for the first couple of weeks of October. The team here was pretty busy running the Canadian BizTalk Partner Roadshow (outlined in my last post).&amp;nbsp; I had a chance to meet some great partners during the roadshow, but I'll save that discussion for a future post.&lt;/P&gt;
&lt;P&gt;For now, I wanted to&amp;nbsp;some of the work we had to do for the that opportunity that kept me from getting to the Microsoft SOA conference. One of the things that we had to show was how the BizTalk SAP adapter could be installed, configured and used. Since the process can be a bit confusing and tricky, I thought I'd post the steps I followed.&lt;/P&gt;
&lt;P&gt;Step 1 - The obvious first step is to install and configure BizTalk 2006. I won't go into the details of this as there are already a&amp;nbsp;bunch of detailed documents out there that outline this process. Once this is done, you'll likely wonder where the SAP adapter is. It isn't installed as part of the core BizTalk Server installation process.&amp;nbsp; The adapter comes in&amp;nbsp;a separate installation package and you'll need to make sure you have this before you proceed further.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Step 2 - The SAP.NET Connector is a prerequisite for the BizTalk SAP adapter and must be installed before you try installing the adapter. This is the trickiest step for most people and is often the most frustrating part of the process.&amp;nbsp;The&amp;nbsp;frustration&amp;nbsp;comes&amp;nbsp;from trying to figure out what version&amp;nbsp;of the connector you need to install for your BTS 2006 environment.&amp;nbsp;There are multiple versions of the connector and if you don't&amp;nbsp;have the correct one, then nothing is going to work for you. One of the most common errors people hit&amp;nbsp;when&amp;nbsp;installing connector is that the it has a dependancy on Visual Studio 2003. Since BizTalk 2006 is dependant on Visual Studio 2005, the installation fails and you're stuck. Beyond this specific error, there are a number of other errors that you can run into if you aren't using the correct version. The key to getting past these issue is to install the SAP.NET Connector &lt;STRONG&gt;Runtime&lt;/STRONG&gt; version &lt;STRONG&gt;1.0.3.&lt;/STRONG&gt; The runtime version does not have the VS 2003 dependancy and you'll be able to install it in your BizTalk 2006 environment.&amp;nbsp; A key note, the Connector is not provided by Microsoft and you will have to obtain this from SAP. &lt;/P&gt;
&lt;P&gt;Step&amp;nbsp;3 -Before you get too far into this process, you'll want to contact your SAP administrator to get your hands on the connection/username/password information. You'll obviously need this information when we set about configuring the adapter. From my experience, getting connection information and username/password info can often take a few days. Therefore, I recommend asking for this as soon as you find out you'll need to use the adapter.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;In all honesty, getting your hands on the connector and getting the proper connection information will take the majority of your time (It did for me).&amp;nbsp;Once you're past these steps, the remaining steps can be completed quite quickly.&amp;nbsp;In fact, I've attached a short AVI file that shows the remaining steps. Feel free to download it and use it however you need&amp;nbsp; (training, client demos etc) as it really shows how simple it is to configure and use the adapter. The entire movie is only 4 minutes long and its about 1.5 megs zipped.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Step&amp;nbsp;5 - You'll need to&amp;nbsp;install the SAP adapter. It's a pretty simple install and when its done, you'll be able to see the new SAP adapter&amp;nbsp;using the Biztalk Admistration Console.&amp;nbsp;(This is shown in the AVI)&lt;/P&gt;
&lt;P&gt;Step 6 - Once the adapter is installed, we'll need to configure it and setup a send port that we can use to connect to the live environment and generate our message schemas. (Shown in the AVI) Note, that we want to configure the adapter before we do anything else in Visual Studio. &lt;/P&gt;
&lt;P&gt;Step 7 - Now that the adapter is installed, we can use it to generate our schemas. To generate the SAP schemas, right click on your project, select "Add-&amp;gt;Add Generated Item". From the pop-up window, select the "Add Adapter Metadata" option and the Adapter Metadata wizard will launch. One the wizard's first screen, select&amp;nbsp;the SAP option. You'll need to provide the name of the SQL Server and the database where your SAP Adapter is configured.&amp;nbsp; Once you have entered this info, the adapter you already created will show in the third drop down.&amp;nbsp; You'll then be presented with a search screen that will allow you to search against the IDOCs and RFC functions in your SAP environment. (Note, you can use the * wildcard when searching). Once you select the IDOC or RFC you want to generate the schema for, select the next button and the schemas will be generated for you.&lt;/P&gt;
&lt;P&gt;Setp 8 - You're done, go ahead and develop the rest of the BizTalk project as you normally would.&lt;/P&gt;
&lt;P&gt;The&amp;nbsp;AVI file will show as a link at the&amp;nbsp;end of this post.&amp;nbsp;I filmed it at 1024x768 so set your resolution to this before running.&lt;/P&gt;
&lt;P&gt;Cheers and keep on BizTalking.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Peter&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=881101" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/pkelcey/attachment/881101.ashx" length="1550029" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/pkelcey/archive/tags/BizTalk+2006/default.aspx">BizTalk 2006</category><category domain="http://blogs.msdn.com/pkelcey/archive/tags/Integration/default.aspx">Integration</category><category domain="http://blogs.msdn.com/pkelcey/archive/tags/BizTalk+Howto_2700_s/default.aspx">BizTalk Howto's</category></item><item><title>The parallel shape DOES NOT give you concurrent parallel processing - a common mistake</title><link>http://blogs.msdn.com/pkelcey/archive/2006/08/22/705171.aspx</link><pubDate>Tue, 22 Aug 2006 20:45:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:705171</guid><dc:creator>pkelcey</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/pkelcey/comments/705171.aspx</comments><wfw:commentRss>http://blogs.msdn.com/pkelcey/commentrss.aspx?PostID=705171</wfw:commentRss><description>&lt;P&gt;After running across this topic several times (and in several different places) over the past few weeks, I thought it&amp;nbsp;would be&amp;nbsp;worth writing up a quick blurb about it.&amp;nbsp; This topic I've run into revolves around the parallel shape in BizTalk orchestrations and whether or not it actually provides you with parallel processing.&lt;/P&gt;
&lt;P&gt;The answer is &lt;STRONG&gt;NO!&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;It's a common (and understandable) misconception that the parallel shape in BizTalk orchestrations is there to allow you to setup and run concurrent processes. After all, one would think that that if we have a parallel shape, then we'd be able to setup parallel processing. I've seen several clients and partners try and use this shape to increase performance by processing large messages using parallel activities. This is NOT what the shape is intended for as it does not result in your activities being performed in parallel. Activities that you put in parallel branches will still execute one at a time, however they will not have to execute in any specific order. I.e. a process involving steps A, B, C could execute as BCA or CAB or ABC. &lt;/P&gt;
&lt;P&gt;Now it is understandable if this seems odd. It would seem obvious that a parallel shape should result in parallel processing. The trick here is to understand that what the parallel shape is referring to is a parallel activity in a &lt;EM&gt;&lt;B&gt;business process&lt;/B&gt;&lt;/EM&gt;&amp;nbsp;and not a&amp;nbsp;parallel activity in&amp;nbsp;your computer program. The parallel shape isn't designed to instruct the system to run&amp;nbsp;multiple threads, it is&amp;nbsp;designed to&amp;nbsp;allow&amp;nbsp;multiple&amp;nbsp;&lt;STRONG&gt;business&lt;/STRONG&gt;&amp;nbsp;&lt;STRONG&gt;activities&lt;/STRONG&gt; to occur independently of each other without one having to wait for the other to complete. &lt;/P&gt;
&lt;P&gt;A great example of this&amp;nbsp;would be&amp;nbsp;something like an online insurance quotation website.&amp;nbsp;&amp;nbsp;This site would likely want to use BizTalk to implement a scatter-gather pattern. Following this pattern, our online web application would submit a single message to BizTalk. This message would contain all of the information required to generate a quote for our end user. A BTS orchestration would be required to broadcast this message out to multiple external insurance companies and then wait for a message to come back from each one.&amp;nbsp; (Example shown below).&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /&gt;&lt;v:shapetype id=_x0000_t75 stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;/v:stroke&gt;&lt;v:formulas&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"&gt;&lt;/v:path&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:lock aspectratio="t" v:ext="edit"&gt;&lt;IMG src="http://www.enterpriseintegrationpatterns.com/img/BroadcastAggregate.gif"&gt;&lt;/o:lock&gt;&lt;/v:shapetype&gt;&lt;/P&gt;
&lt;P&gt;(Note: I've borrowed this picture from &lt;A href="http://www.enterpriseintegrationpatterns.com/"&gt;&lt;FONT color=#800080&gt;www.enterpriseintegrationpatterns.com&lt;/FONT&gt;&lt;/A&gt; a great site)&lt;/P&gt;
&lt;P&gt;Now because our orchestration will be waiting for external systems to respond, we won't have any control over the order in which each of these vendors will respond.&amp;nbsp;You wouldn't want to create an orchestration that laid our your three receive shapes in sequence. Instead we'll&amp;nbsp;use a parallel shape&amp;nbsp;and put each of our receive&amp;nbsp;functions in a separate branch.&amp;nbsp; This will allow the orchestration to receive the return messages in whatever order they occur. We will still be receiving the messages one at a time, but we will be able to receive them in any order. &lt;/P&gt;
&lt;P&gt;So keep this example in mind when using the parallel shape. You can't think of it as a low level instruction to BizTalk to launch two processing threads. You need to be thinking at a higher level in the processes stack and remember that the parallel shape is referring to the activities happening with the business process.&lt;/P&gt;
&lt;P&gt;It is an important concept to understand as it can have performance impacts. In my next post,&amp;nbsp;I'll look at a scenario where improperly using the parallel shape will actual decrease your performance instead of increasing it!&lt;/P&gt;
&lt;P&gt;Cheers and keep on BizTalk.&lt;/P&gt;
&lt;P&gt;Peter&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=705171" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/pkelcey/archive/tags/BizTalk+2006/default.aspx">BizTalk 2006</category></item><item><title>BizTalk and Database Mirror: Supported or Not?</title><link>http://blogs.msdn.com/pkelcey/archive/2006/07/14/666059.aspx</link><pubDate>Fri, 14 Jul 2006 23:08:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:666059</guid><dc:creator>pkelcey</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/pkelcey/comments/666059.aspx</comments><wfw:commentRss>http://blogs.msdn.com/pkelcey/commentrss.aspx?PostID=666059</wfw:commentRss><description>&lt;P&gt;Lots of BizTalk developers and architects have been looking at the SQL Server 2005 database mirror option and are wondering if they can use this to implement a low cost disaster recovery solution for their BTS environments.&amp;nbsp; It certainly is a tempting solution and it sure seems to be viable from technical point of view. Unfortunetly, our product team has stated that this is &lt;STRONG&gt;NOT&lt;/STRONG&gt; a supported configuration. The reason for this is that there are key issues surrounding DTC and SQL Server before this configuraion will be viable in production systems.&amp;nbsp;&amp;nbsp; We've seen some clients try and implement this on their own and they have encountered issues around BizTalk continuing to look for the primary server after the failover has occured.&lt;/P&gt;
&lt;P&gt;Personally, I'm hoping we might see these issues worked out in time for the R2 release, however that is just my own personal hope and can't be taken as an&amp;nbsp;official timeline in any way.&lt;/P&gt;
&lt;P&gt;Cheers and keep on BizTalking&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=666059" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/pkelcey/archive/tags/BizTalk+2006/default.aspx">BizTalk 2006</category></item><item><title>New Interesting BizTalk Adapters from our Partners</title><link>http://blogs.msdn.com/pkelcey/archive/2006/06/26/647576.aspx</link><pubDate>Mon, 26 Jun 2006 20:12:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:647576</guid><dc:creator>pkelcey</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/pkelcey/comments/647576.aspx</comments><wfw:commentRss>http://blogs.msdn.com/pkelcey/commentrss.aspx?PostID=647576</wfw:commentRss><description>&lt;P&gt;I &amp;nbsp;just wanted to point out a couple of interesting adapters that our partners are providing for BizTalk 2006.&lt;/P&gt;
&lt;P&gt;Zouak consulting is&amp;nbsp;providing a&amp;nbsp;beta version&amp;nbsp;of an adapter for integrating with&amp;nbsp;RIM's&amp;nbsp;Blackberry. You can find info about it at.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.zouak.com/Products.aspx"&gt;http://www.zouak.com/Products.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Another partner, TwoConnect, has put together a full feature adapter for Salesforce.com's CRM solution. You can find info for it at.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.twoconnect.com/pages/product_solutions/salesforce.aspx"&gt;http://www.twoconnect.com/pages/product_solutions/salesforce.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Now I was fortunate enough to be able to&amp;nbsp;talk with someone in our services division that has already used the salesforce adapter. He was in a great position to speak about the value of the adapter as he had also used the standard salesforce.com web services.&amp;nbsp; He felt that using the adapter saved him&amp;nbsp;about 2-3 weeks of development time over using the base web services interface. Now 2-3 weeks is a fair bit of time, so it seems like TwoConnect is providing a fairly valuable and affordable adapter here.&lt;/P&gt;
&lt;P&gt;Cheers and keep on BizTalking&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=647576" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/pkelcey/archive/tags/BizTalk+2006/default.aspx">BizTalk 2006</category><category domain="http://blogs.msdn.com/pkelcey/archive/tags/Integration/default.aspx">Integration</category></item><item><title>BizTalk and WinFX (oh, I mean .NET 3.0!)</title><link>http://blogs.msdn.com/pkelcey/archive/2006/06/18/636242.aspx</link><pubDate>Sun, 18 Jun 2006 23:04:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:636242</guid><dc:creator>pkelcey</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/pkelcey/comments/636242.aspx</comments><wfw:commentRss>http://blogs.msdn.com/pkelcey/commentrss.aspx?PostID=636242</wfw:commentRss><description>&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;There certainly been a lot going on around here. We've renamed WinFX to .NET 3.0, we've&amp;nbsp;announced the R2 version of BizTalk 2006 and we've had one of our founders announce plans to transition out of his fulltime role.&amp;nbsp; I had planned to drill down a bit into the first two items. With regards to the last&amp;nbsp;item, I'll&amp;nbsp;simply wish Bill all the luck in the world with a very&amp;nbsp;noble cause.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;So, WinFX is from now on going to be known as .NET 3.0. There's been a small firestorm of debate around this to a certain extent and I can understand why. However, I really believe that it's just a name and our time will be better spent in by trying to understand who the technologies contained within .NET 3.0 are going to be able to help development teams&amp;nbsp;businesses.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;So with that in mind, what is .NET 3.0 going to mean to BizTalk and BizTalk developers? Well,&amp;nbsp;this question&amp;nbsp;allows me to segway nicely into the recent release&amp;nbsp;about BizTalk 2006 R2.&amp;nbsp;&amp;nbsp;The major changes that you're going to be seeing with R2 (slated for the first half of 2007!) are:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL type=1&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;New capabilities for addressing concerns in the manufacturing and retail verticals. I'll talk about this in a later&amp;nbsp;post.&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;Close alignment with Office 2007 and &lt;EM&gt;&lt;B&gt;.NET 3.0.&lt;/B&gt;&lt;/EM&gt; Let’s take a closer look at this one.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;You'll need to be aware of three key areas of BizTalk that are going to be affected by this "alignment"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;The&amp;nbsp;thing is that R2 is going to be shipping with a Windows Communication Foundation (WCF) adapter included out of the box. This will allow BizTalk to connect to any WCF enabled application.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;The second thing you should be aware of is that&amp;nbsp;we're going to be releasing an extension to the WCF called the WinFX Adapter Framework (AF). This is a new framework that&amp;nbsp;will allow for easier and simpler developer of WCF based adapters.&amp;nbsp;&amp;nbsp;You're probably asking, "What's the different between this and the BizTalk Adapter Framework". We'll, adapters built using the BAF can only be used by BizTalk whereas adapters built using AF can be used by any Windows application. Your adapters are no longer going to be limited to a single product.&amp;nbsp; Some of you might now be asking, "If BizTalk has it's own adapter framework, how will it be able to use these new AF based adapters?" We'll that new WCF adapter that I spoke of in the last paragraph is going to let you tie these new adapters into your BizTalk project.&amp;nbsp; &lt;EM&gt;Please note, these new AF adapters aren't there to replace BizTalk, they will only provide simple point to point connectivity. You're still going to need&amp;nbsp;BizTalk for&amp;nbsp;handling complex scenarios like process orchestration, long running transactions,&amp;nbsp;business activity monitoring, business rules deployment etc...&lt;/EM&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;The third thing that you should be aware of is Windows Workflow Foundation (WF) and its impact on BizTalk.&amp;nbsp; WF is our new technology for creating and running any and all types of workflow. Human level workflow, document-centric workflow, user interface page flow and even workflow across a Service Oriented Architecture can all be developed using WF. The key thing for you to understand is that WF is certainly not here to kill or replace BizTalk!&amp;nbsp;&amp;nbsp; In fact, it will allow BizTalk developers to create even richer applications as they will be able to integrate their enterprise level orchestrations with workflow contained in other Microsoft products such as Office 2007 and SharePoint.&amp;nbsp; BizTalk will still be the tool for implementing workflows and orchestrations &lt;EM&gt;across&lt;/EM&gt; applications while WF will be for creating workflows &lt;EM&gt;within &lt;/EM&gt;applications.&amp;nbsp; You might be wondering if BizTalk is going to use WF to power its orchestrations. For the short term, no, BizTalk 2006 R2 is going to continue to use the architecture unveiled with BizTalk 2004. The next version (not R2, the next full release) will introduce WF as its workflow technology.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;I know there are going to be an insane number of questions out there from developers, architects and&amp;nbsp;business decision makers. We'll do&amp;nbsp;our best to answer&amp;nbsp;them and I'm planning on addressing as many as I can here. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;We’ll likely be seeing the usual questions about whether or not WCF + WF can be used to replace BizTalk, but we’ll deal with those as they come. The key things to focus on right now is that .NET 3.0 is going to be delivery new features and capabilities for BizTalk developers. Lets dive into these and make sure we can get the most from them.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;Cheers for now&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;Peter&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=636242" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/pkelcey/archive/tags/BizTalk+2006/default.aspx">BizTalk 2006</category><category domain="http://blogs.msdn.com/pkelcey/archive/tags/General+Microsoft+Topics/default.aspx">General Microsoft Topics</category></item><item><title>Consolidate to a single BizTalk database? Yes you can!</title><link>http://blogs.msdn.com/pkelcey/archive/2006/05/01/587862.aspx</link><pubDate>Mon, 01 May 2006 23:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:587862</guid><dc:creator>pkelcey</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/pkelcey/comments/587862.aspx</comments><wfw:commentRss>http://blogs.msdn.com/pkelcey/commentrss.aspx?PostID=587862</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;I ran into a interesting and undocumented feature of BizTalk 2006 a couple weeks ago that I thought I'd share. &amp;nbsp;A colleague of mine, Jim Bowyer, had found out that&amp;nbsp;with BizTalk 2006, you&amp;nbsp;can consolidate most of your BizTalk database into a single one.&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&amp;nbsp;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;For those of you that aren't completely familiar with the internals of BizTalk, the following SQL Server databases are used to power a BizTalk environment (Note: some may not appear in your&amp;nbsp;environment if you chose not to install all available BizTalk features)&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;OL type=1&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l2 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;MessageBox Databases &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l2 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;SSO Credential Database &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l2 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;BizTalk Analysis Database &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l2 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;BizTalk Configuration Database &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l2 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;Human Workflow Services Admin Database &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l2 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;BizTalk Rules Engine Database &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l2 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;BizTalk Base EDI Database &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l2 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;BizTalk Tracking Database &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l2 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;Notification Service &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l2 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;Windows SharePoint Services Configuration &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l2 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;Windows SharePoint Services Content &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l2 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;BAM Star Schema &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l2 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;BAM Primary Import &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l2 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;BAM Archive &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l2 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;BAM Analysis (OLAP) &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l2 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;BAM Notification&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;I&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;&amp;nbsp;(For a more complete outline of these DB's (and what they are used for) check out &lt;/SPAN&gt;&lt;/I&gt;&lt;I&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/deploying/htm/ebiz_depl_config_hhwa.asp"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"&gt;this page &lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;I&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;)&lt;/SPAN&gt;&lt;/I&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;I&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;Now that's quite a number of databases to maintain and manage, so&amp;nbsp;it's natural that smaller organizations might be slightly intimidated about having to install, manage and support so many.&amp;nbsp;&amp;nbsp;I found out last week that a new feature has been introduced to BTS 2006 that will allow smaller customers&amp;nbsp;to consolidate nearly&amp;nbsp;all of these databases into single one. (The exceptions being the BAM Notification and EDI DBs).&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;Now since this feature was introduced post Beta 2, the documentation surrounding it is pretty weak.&amp;nbsp; Additionally, the guidance around this concept is still almost non-existent. So here's what I've been able to find out from our product team.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;U&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;Reasons for:&lt;/SPAN&gt;&lt;/U&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL type=disc&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo2; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;You are looking for a simplified install&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo2; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;You are looking for simplified management post install&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo2; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;You are looking for new variations of disaster recovery beyond the standard ones recommended with&amp;nbsp;a multi-DB installation (i.e. you might be able to use database mirroring instead of having to rely on log shipping. Note: our product team has fully tested this and therefore doesn't support it yet)&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;U&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;Reason against:&lt;/SPAN&gt;&lt;/U&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL type=disc&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l1 level1 lfo3; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;You are really going to limit your ability to scale out your DB tier. Under a normal install, you would be able to place different DBs on different machines. You lose that ability under this type of set&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l1 level1 lfo3; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;The testing that has been done for this type of install is admittedly very small. I haven't seen any real numbers around potential performance impacts that this might have.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l1 level1 lfo3; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;The lack of documentation, testing and formal support&amp;nbsp;for this feature&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;It should be noted that this feature is included for small BTS installations and shouldn't be considered for larger enterprises.&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;If you do decide that you do want to go ahead with this, here's how:&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;During the configuration stage of your install,&amp;nbsp;you can specify that you would like to install all features into the same database.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;(All except for the EDI and BAMAlertsNSMain databases - as stated above).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;nbsp;When you fire up the BizTalk Server Configuration tool, and you're at the stage where you can select the&amp;nbsp;features you want to install. This is where you can specific the consolidation. You'll need to specify the same database name for each feature (except EDI and BAM Alerts). After&amp;nbsp;you do this, remember to adjust the&amp;nbsp;connection settings when you use the BizTalk Server 2006 Administration MMC Snap-in.&amp;nbsp; By default, it will&amp;nbsp;want to connect to a database called BizTalkMgmtDb.&amp;nbsp; If you consolidate your databases into a one new&amp;nbsp;database then you need&amp;nbsp;to specify that new one in the MMC.&amp;nbsp; You do this by right-clicking the BizTalk Server 2006 Administration node and selecting “Connect To Existing Group“.&amp;nbsp; This gives you the option to select a&amp;nbsp;SQL Server and Database that the management db lives on.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"&gt;Hope that helps and keep on BizTalking...&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=587862" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/pkelcey/archive/tags/BizTalk+2006/default.aspx">BizTalk 2006</category><category domain="http://blogs.msdn.com/pkelcey/archive/tags/General+Microsoft+Topics/default.aspx">General Microsoft Topics</category></item></channel></rss>