<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>BizTalk Messages</title>
	<atom:link href="http://biztalkmessages.vansplunteren.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://biztalkmessages.vansplunteren.net</link>
	<description>Randal van Splunteren&#039;s experiences with BizTalk Server and other MS technologies.</description>
	<lastBuildDate>Fri, 05 Mar 2010 08:59:59 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='biztalkmessages.vansplunteren.net' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/50e2a3c4778fcfb28176193dbf388723?s=96&#038;d=http://s2.wp.com/i/buttonw-com.png</url>
		<title>BizTalk Messages</title>
		<link>http://biztalkmessages.vansplunteren.net</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://biztalkmessages.vansplunteren.net/osd.xml" title="BizTalk Messages" />
	<atom:link rel='hub' href='http://biztalkmessages.vansplunteren.net/?pushpress=hub'/>
		<item>
		<title>PowerShell provider supports BRE deployments</title>
		<link>http://biztalkmessages.vansplunteren.net/2010/03/05/powershell-provider-supports-bre-deployments/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2010/03/05/powershell-provider-supports-bre-deployments/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 08:59:59 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[BizTalk Management]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/2010/03/05/powershell-provider-supports-bre-deployments/</guid>
		<description><![CDATA[Just a quick link to a post on Maxime’s blog:
http://maxime-labelle.spaces.live.com/Blog/cns!D8D9369449D177DA!236.entry
Maxime added support for deploying vocabularies and policies to the PowerShell provider for BizTalk. In our opinion this is the easiest way to deploy BRE artefacts.
For now it is only available when you grab and build the latest sources. It will be included in the final [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=653&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Just a quick link to a post on Maxime’s blog:</p>
<p><a title="http://maxime-labelle.spaces.live.com/Blog/cns!D8D9369449D177DA!236.entry" href="http://maxime-labelle.spaces.live.com/Blog/cns!D8D9369449D177DA!236.entry">http://maxime-labelle.spaces.live.com/Blog/cns!D8D9369449D177DA!236.entry</a></p>
<p>Maxime added support for deploying vocabularies and policies to the <a href="http://psbiztalk.codeplex.com/" target="_blank">PowerShell provider for BizTalk</a>. In our opinion this is the easiest way to deploy BRE artefacts.</p>
<p>For now it is only available when you grab and build the latest sources. It will be included in the final 1.0 release of course.</p>
<p>Great work Maxime!</p>
<br /> Tagged: <a href='http://biztalkmessages.vansplunteren.net/tag/biztalk/'>BizTalk</a>, <a href='http://biztalkmessages.vansplunteren.net/tag/biztalk-management/'>BizTalk Management</a>, <a href='http://biztalkmessages.vansplunteren.net/tag/powershell/'>PowerShell</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/653/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/653/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/653/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/653/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/653/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/653/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/653/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/653/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/653/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/653/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=653&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2010/03/05/powershell-provider-supports-bre-deployments/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>
	</item>
		<item>
		<title>More on untyped messages and Business Rules Engine</title>
		<link>http://biztalkmessages.vansplunteren.net/2010/03/04/more-on-untyped-messages-and-business-rules-engine/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2010/03/04/more-on-untyped-messages-and-business-rules-engine/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 13:19:05 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[Business Rules Engine]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=642</guid>
		<description><![CDATA[I a previous post I described a way to deal with untyped messages in the Business Rule Engine. This allows for flexibility in scenarios where you want to use a single set of rules (lets call it an “untyped policy”) on multiple types of messages.
Untyped policies work great when tested directly in the Business Rules [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=642&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I a previous <a href="http://biztalkmessages.vansplunteren.net/2009/12/22/untyped-messages-and-business-rules-engine/" target="_blank">post</a> I described a way to deal with untyped messages in the Business Rule Engine. This allows for flexibility in scenarios where you want to use a single set of rules (lets call it an “untyped policy”) on multiple types of messages.</p>
<p>Untyped policies work great when tested directly in the Business Rules Composer interface or when executed from .Net code. Unfortunately I stumbled across a nice issue when I wanted to call the rules from an orchestration using the call rules shape.</p>
<p>In my first design of the orchestration I received a message of type System.Xml.XmlDocument. After that I used a call rules shape to execute the policy. Because this is an untyped policy it will only accept a message of System.Xml.XmlDocument as input.</p>
<p> <a href="http://biztalkmessages.files.wordpress.com/2010/03/image9.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb9.png?w=260&#038;h=253" border="0" alt="image" width="260" height="253" /></a></p>
<p><a href="http://biztalkmessages.files.wordpress.com/2010/03/image10.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb10.png?w=260&#038;h=198" border="0" alt="image" width="260" height="198" /></a></p>
<p>Easy! Well, not exactly. While testing this orchestration I did not encounter an exception but found out my rule also did not fire. I enabled rule tracking and saw that my message was not asserted as a fact into the BRE. The tracked information was ‘fact not recognized’.</p>
<p>I tried some things to fix this without success. I ended up viewing the generated C# code for the orchestration and noticed a difference in the code generated for the call rules shape when using untyped and typed policies. For typed policies a new instance of Microsoft.RuleEngine.TypedXmlDocument is created  as a fact wrapper around the orchestration message. This TypedXmlDocument is then passed on to the BRE. For untyped policies this is different. There is no TypedXmlDocument created and the XmlDocument message is passed directly on to the BRE.</p>
<p>So in pseudo C# code, for a typed policy:</p>
<pre class="brush: csharp;">
typedXDoc = new Microsoft.RuleEngine.TypedXmlDocument(&quot;MessageType”, (System.Xml.XmlDocument)orchestrationMessage);
policy.Execute(typedXDoc);
</pre>
<p>for an untyped policy the code looks like this:</p>
<pre class="brush: csharp;">
policy.Execute((System.Xml.XmlDocument)orchestrationMessage);
</pre>
<p>The obvious difference between the two is that the first uses a ‘TypedXmlDocument’ instance to wrap the message. I expected the XLANG code generator to do the same for the untyped version but that is not the case. So what does this mean? Does this mean untyped policies are not supported? Or at least not in orchestrations? Is the only option to use code in an expression shape or helper class to execute untyped policies from within an orchestration?</p>
<p>Because I was completely stuck here I decided to ask BRE (and BizTalk) guru Charles Young for help. </p>
<p>It turned out that I had to use the special ‘Any’ schema to solve this. As Charles explained to me there are two ways of working with untyped messages in BizTalk. One is the famous XmlDocument approach, the other one is the (undocumented) ‘Any’ schema.</p>
<p>One of the differences between the XmlDocument and ‘Any’ schema is that the latter is treated as a schema type by BizTalk. This means the XLANG code generator will wrap it inside a TypedXmlDocument for a rules call. This exactly like the way it works for a typed policy.</p>
<p>The only two things I had to do was change were the message type from ‘XmlDocument’ to ‘Any’ and accordingly the policy.</p>
<p>This is a picture of the revised orchestration.</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2010/03/image11.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb11.png?w=260&#038;h=253" border="0" alt="image" width="260" height="253" /></a></p>
<p><a href="http://biztalkmessages.files.wordpress.com/2010/03/image12.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb12.png?w=260&#038;h=198" border="0" alt="image" width="260" height="198" /></a></p>
<p>The changes needed in the policy are described in a rewritten version of <a href="http://biztalkmessages.vansplunteren.net/2009/12/22/untyped-messages-and-business-rules-engine/" target="_blank">the original post</a>. You can find it <a href="http://biztalkmessages.vansplunteren.net/2010/03/04/untyped-messages-and-business-rules-engine-part-2/" target="_blank">here</a>.</p>
<p>A demo solution around this can be downloaded from <a href="http://cid-2b880e94db699632.skydrive.live.com/self.aspx/Public/BizTalk%20Samples/UntypedBRE.zip" target="_blank">here</a>. It contains two orchestrations. One which uses the XMLDocument approach without the rules getting fired. The other using the Any approch with the rules getting fired. Remember to change to paths in the binding file before deploying.</p>
<p>Full credits for this solution go to <a href="http://geekswithblogs.net/cyoung/Default.aspx" target="_blank">Charles Young</a>. Charles thanks for helping me out.</p>
<br /> Tagged: <a href='http://biztalkmessages.vansplunteren.net/tag/biztalk/'>BizTalk</a>, <a href='http://biztalkmessages.vansplunteren.net/tag/business-rules-engine/'>Business Rules Engine</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/642/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/642/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/642/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/642/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/642/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/642/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/642/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/642/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/642/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/642/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=642&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2010/03/04/more-on-untyped-messages-and-business-rules-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb9.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb10.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb11.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb12.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Untyped messages and Business Rules Engine (part 2)</title>
		<link>http://biztalkmessages.vansplunteren.net/2010/03/04/untyped-messages-and-business-rules-engine-part-2/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2010/03/04/untyped-messages-and-business-rules-engine-part-2/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 11:14:41 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[Business Rules Engine]]></category>
		<category><![CDATA[Orchestrations]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=612</guid>
		<description><![CDATA[This is a follow up post to my previous post on this topic. The method described in that post doesn’t seem to work when the policy is called from an orchestration. For more background information see this blogpost.
I this post I will use the exact same sample as in the previous post. These are the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=612&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>This is a follow up post to <a href="http://biztalkmessages.vansplunteren.net/2009/12/22/untyped-messages-and-business-rules-engine/" target="_blank">my previous post on this topic</a>. The method described in that post doesn’t seem to work when the policy is called from an orchestration. For more background information see <a href="http://biztalkmessages.vansplunteren.net/2010/03/04/more-on-untyped-messages-and-business-rules-engine/" target="_blank">this blogpost</a>.</p>
<p>I this post I will use the exact same sample as in the previous post. These are the schemas used:</p>
<pre class="brush: xml; auto-links: false;">

&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;
&lt;xs:schema xmlns:b=&quot;http://schemas.microsoft.com/BizTalk/2003&quot;

xmlns=&quot;http://UntypedBRE.FirstSchema&quot;
targetNamespace='http://UntypedBRE.FirstSchema'

xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
  &lt;xs:element name=&quot;FirstSchema&quot;&gt;
    &lt;xs:complexType&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name=&quot;FirstName&quot; type=&quot;xs:string&quot; /&gt;
        &lt;xs:element name=&quot;LastName&quot; type=&quot;xs:string&quot; /&gt;
        &lt;xs:element name=&quot;IsJohn&quot; type=&quot;xs:string&quot; /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
  &lt;/xs:element&gt;
&lt;/xs:schema&gt;
</pre>
<p> </p>
<pre class="brush: xml; auto-links: false;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;
&lt;xs:schema xmlns:b=&quot;http://schemas.microsoft.com/BizTalk/2003&quot;
xmlns=&quot;http://UntypedBRE.SecondSchema&quot;
targetNamespace='http://UntypedBRE.SecondSchema'
xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
  &lt;xs:element name=&quot;SecondSchema&quot;&gt;
    &lt;xs:complexType&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name=&quot;FirstName&quot; type=&quot;xs:string&quot; /&gt;
        &lt;xs:element name=&quot;LastName&quot; type=&quot;xs:string&quot; /&gt;
        &lt;xs:element name=&quot;IsJohn&quot; type=&quot;xs:string&quot; /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
  &lt;/xs:element&gt;
&lt;/xs:schema&gt;
</pre>
<p> </p>
<pre class="brush: xml; auto-links: false;">

&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;
&lt;xs:schema xmlns:b=&quot;http://schemas.microsoft.com/BizTalk/2003&quot;

xmlns=&quot;http://UntypedBRE.ThirdSchema&quot;
targetNamespace='http://UntypedBRE.ThirdSchema'

xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
  &lt;xs:element name=&quot;ThirdSchema&quot;&gt;
    &lt;xs:complexType&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name=&quot;FirstName&quot; type=&quot;xs:string&quot; /&gt;
        &lt;xs:element name=&quot;LastName&quot; type=&quot;xs:string&quot; /&gt;
        &lt;xs:element name=&quot;IsJohn&quot; type=&quot;xs:string&quot; /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
  &lt;/xs:element&gt;
&lt;/xs:schema&gt;
</pre>
<p>In my sample policy I want to check the ‘FirstName’ element. If the value is equal to ‘John’ I want to fill the ‘IsJohn’ element with value ‘yes’. The policy (and single rule) should work for all the above schemas.</p>
<p>The problem is that mentioned schemas belong to a different namespace and have a different rood node, hence in BizTalk terms have a different message type. Because XML schemas facts in the BRE are by default tightly coupled to a specific schema the consequence is that those facts can only operate on a single type of message.</p>
<p>In order to make this generic you have to do the following:</p>
<p><strong><span style="text-decoration:underline;">1. Add one of the schemas to the Facts Explorer in the BRE</span></strong></p>
<p><a href="http://biztalkmessages.files.wordpress.com/2010/03/image.png" target="_blank"><img style="display:inline;border-width:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb.png?w=260&#038;h=230" border="0" alt="image" width="260" height="230" /></a></p>
<p><strong><span style="text-decoration:underline;">2. Make the schema general</span></strong></p>
<p>As you can see the Document Type resembles the type of the schema I added. To make this generic I change this value to ‘Microsoft.XLANGs.BaseTypes.Any’. This will make sure that if I use a fact from this schema in a rule it will not be typed to this schema but will be generic:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2010/03/image1.png" target="_blank"><img style="display:inline;border-width:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb1.png?w=260&#038;h=229" border="0" alt="image" width="260" height="229" /></a></p>
<p><strong><span style="text-decoration:underline;">3. Create the rule</span></strong></p>
<p>In this step I create the rule. The facts will be filled in later.</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2010/03/image2.png" target="_blank"><img style="display:inline;border-width:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb2.png?w=260&#038;h=164" border="0" alt="image" width="260" height="164" /></a></p>
<p><strong><span style="text-decoration:underline;">4. Modify the XML facts</span></strong></p>
<p>In the rule I need to evaluate the ‘FirstName’ fact and optionally set the ‘IsJohn’ fact. Because I want this to work on all schemas I need to define the facts in a generic way. If I click on the ‘FirstName’ fact I can see the xpath statements that point to this fact in the property pane:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2010/03/image3.png" target="_blank"><img style="display:inline;border-width:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb3.png?w=260&#038;h=202" border="0" alt="image" width="260" height="202" /></a></p>
<p>The ‘Xpath Field’ and ‘Xpath Selector’ properties are directly referring to ‘FirstSchema’ root node and namespace. I change the values to make them generic also:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2010/03/image4.png" target="_blank"><img style="display:inline;border-width:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb4.png?w=260&#038;h=197" border="0" alt="image" width="260" height="197" /></a></p>
<p>Note that I’m using ‘self::node()’ here. I described this trick before <a href="http://biztalkmessages.vansplunteren.net/2008/06/11/updating-multiple-nodes-with-different-parents-and-hierarchical-levels-using-the-biztalk-bre/">here</a>.</p>
<p>Now the XML fact is no longer pointing to a specific namespace or root node. It just points to a ‘FirstName’ node somewhere in Xml message.</p>
<p>There are of course other possible values for ‘Xpath selector’ and ‘Xpath Field’ to solve this. It all depends on the schemas. If for example the facts you need all have the same parent node you can make the ‘Xpath selector’ select the parent node and the ‘Xpath Field’ select the ‘FirstName’ element.</p>
<p>I do the same for the fact I want to update in the action of the rule:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2010/03/image5.png" target="_blank"><img style="display:inline;border-width:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb5.png?w=260&#038;h=210" border="0" alt="image" width="260" height="210" /></a></p>
<p><strong><span style="text-decoration:underline;">5. Complete the rule by adding the facts</span></strong></p>
<p>Finally I can drag the XML facts from the Facts Explorer to my rule to complete the condition and create a new action. Like this:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2010/03/image6.png" target="_blank"><img style="display:inline;border-width:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb6.png?w=260&#038;h=115" border="0" alt="image" width="260" height="115" /></a></p>
<p>You can see that the both the condition and the action are not referring (anymore) to any specific schema  but instead to any schema that has ‘FirstName’  and ‘IsJohn’  elements.</p>
<p>Testing the rule with instances from two different schemas shows that this works:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2010/03/image7.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb7.png?w=260&#038;h=125" border="0" alt="image" width="260" height="125" /></a></p>
<p><a href="http://biztalkmessages.files.wordpress.com/2010/03/image8.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb8.png?w=260&#038;h=128" border="0" alt="image" width="260" height="128" /></a></p>
<p>One thing to note about this is that the way I changed the xpath statements for the Xml facts comes with a performance penalty. Using things like ‘//*…….’.  will make the engine go through the whole xml tree which is less efficient then using the original full xpath statement. So if performance is a strict requirement be careful using techniques like these.</p>
<p>Another thing is that I do not check for the existence of the nodes first. The policy will crash when an message is processed that does not contain on of the nodes used in the rule.</p>
<br /> Tagged: <a href='http://biztalkmessages.vansplunteren.net/tag/biztalk/'>BizTalk</a>, <a href='http://biztalkmessages.vansplunteren.net/tag/business-rules-engine/'>Business Rules Engine</a>, <a href='http://biztalkmessages.vansplunteren.net/tag/orchestrations/'>Orchestrations</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/612/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/612/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/612/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/612/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/612/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=612&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2010/03/04/untyped-messages-and-business-rules-engine-part-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb5.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb6.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb7.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb8.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>BizTalk 2006 R2 version number not updated after applying SP 1</title>
		<link>http://biztalkmessages.vansplunteren.net/2010/03/04/biztalk-2006-r2-version-number-not-updated-after-applying-sp-1/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2010/03/04/biztalk-2006-r2-version-number-not-updated-after-applying-sp-1/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 09:59:30 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[BizTalk 2006 R2]]></category>
		<category><![CDATA[BizTalk Management]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=580</guid>
		<description><![CDATA[In the past I have published overview tables of BizTalk version numbers. I used to publish a new table whenever a new version or service pack of BizTalk server was released.
I wanted to do the same after the release of SP1 for BizTalk server 2006 R2. Unfortunately it appears that the version number is not [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=580&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>In the past I have published overview tables of BizTalk version numbers. I used to publish a new table whenever a new version or service pack of BizTalk server was released.</p>
<p>I wanted to do the same after the release of SP1 for BizTalk server 2006 R2. Unfortunately it appears that the version number is not updated after applying the service pack. I double checked with some other people but they faced the same issue.</p>
<p>I already reported this issue to Microsoft and <a href="http://biztalkmessages.vansplunteren.net/2009/10/27/biztalk-server-2006-r2-sp1-beta/" target="_blank">blogged about it</a> for the beta release of the SP but it seems they did not fix it for the final release. It think it is a bad thing as you cannot easily determine which version and sp level is running based on the version number.</p>
<p>Anyway the latest version number table looks like this:</p>
<table border="0" cellspacing="0" cellpadding="2" width="400">
<tbody>
<tr>
<td width="172" valign="top"><strong>Product name</strong></td>
<td width="105" valign="top"><strong>Service pack</strong></td>
<td width="122" valign="top"><strong>Version number</strong></td>
</tr>
<tr>
<td width="172" valign="top">BizTalk Server 2004</td>
<td width="105" valign="top"> </td>
<td width="122" valign="top">3.0.4902.0</td>
</tr>
<tr>
<td width="172" valign="top">BizTalk Server 2004</td>
<td width="105" valign="top">SP1</td>
<td width="122" valign="top">3.0.6070.0</td>
</tr>
<tr>
<td width="172" valign="top">BizTalk Server 2004</td>
<td width="105" valign="top">SP2</td>
<td width="122" valign="top">3.0.7405.0</td>
</tr>
<tr>
<td width="172" valign="top">BizTalk Server 2006</td>
<td width="105" valign="top"> </td>
<td width="122" valign="top">3.5.1602.0</td>
</tr>
<tr>
<td width="172" valign="top">BizTalk Server 2006 R2</td>
<td width="105" valign="top"> </td>
<td width="122" valign="top"><span style="color:#008000;"><strong>3.6.1404.0</strong></span></td>
</tr>
<tr>
<td width="172" valign="top">BizTalk Server 2006 R2</td>
<td width="105" valign="top">SP1</td>
<td width="122" valign="top"><span style="color:#008000;"><strong>3.6.1404.0</strong></span></td>
</tr>
<tr>
<td width="172" valign="top">BizTalk Server 2009</td>
<td width="105" valign="top"> </td>
<td width="122" valign="top">3.8.368.0</td>
</tr>
</tbody>
</table>
<p>I will report the issue to Microsoft again. Although I double checked with some people I might be wrong here. Please let me know if you see different behavior.</p>
<p>In order to still be able to determine the version number in an easy way I wrote a PowerShell script. I have a post about it <a href="http://biztalkmessages.vansplunteren.net/2010/03/04/determine-biztalk-version-using-powershell/" target="_blank">here</a>.</p>
<br /> Tagged: <a href='http://biztalkmessages.vansplunteren.net/tag/biztalk/'>BizTalk</a>, <a href='http://biztalkmessages.vansplunteren.net/tag/biztalk-2006-r2/'>BizTalk 2006 R2</a>, <a href='http://biztalkmessages.vansplunteren.net/tag/biztalk-management/'>BizTalk Management</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/580/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/580/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/580/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/580/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/580/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/580/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/580/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/580/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/580/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/580/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=580&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2010/03/04/biztalk-2006-r2-version-number-not-updated-after-applying-sp-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>
	</item>
		<item>
		<title>Determine BizTalk version using PowerShell</title>
		<link>http://biztalkmessages.vansplunteren.net/2010/03/04/determine-biztalk-version-using-powershell/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2010/03/04/determine-biztalk-version-using-powershell/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 09:59:04 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[BizTalk 2006 R2]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=579</guid>
		<description><![CDATA[I wrote a very simple PowerShell script which allows you to easily determine the installed BizTalk version and service pack level.
You cannot just look at the version number anymore because it seems SP1 of BizTalk Server 2006 R2 does not update the version number. This means the version numbers for BizTalk 2006 R2 without and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=579&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I wrote a very simple PowerShell script which allows you to easily determine the installed BizTalk version and service pack level.</p>
<p>You cannot just look at the version number anymore because it seems SP1 of BizTalk Server 2006 R2 does not update the version number. This means the version numbers for BizTalk 2006 R2 without and with service pack 1 applied are the same. See also my blog post here.</p>
<p>The script will detect any BizTalk version and service pack from 2004 and later. I have tested it on different environments with different BizTalk versions. Please let me know if it is not working <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
<p>Below is the source, but you can also download it from <a href="http://cid-2b880e94db699632.skydrive.live.com/self.aspx/Public/BizTalk%20PowerShell%20Scripts/ShowBTSVersion.ps1" target="_blank">here</a>.</p>
<pre class="brush: powershell;">
# Initialization of helper variables
# BizTalk version numbers
$versionBTS2004 = &quot;3.0.4902.0&quot;
$versionBTS2004SP1 = &quot;3.0.6070.0&quot;
$versionBTS2004SP2 = &quot;3.0.7405.0&quot;
$versionBTS2006 = &quot;3.5.1602.0&quot;
$versionBTS2006R2 = &quot;3.6.1404.0&quot;
$versionBTS2009 = &quot;3.8.368.0&quot;

# BizTalk version description
$descriptionBTS2004 = &quot;BizTalk Server 2004&quot;
$descriptionBTS2004SP1 = &quot;BizTalk Server 2004 with service pack 1&quot;
$descriptionBTS2004SP2 = &quot;BizTalk Server 2004 with service pack 2&quot;
$descriptionBTS2006 = &quot;BizTalk Server 2006&quot;
$descriptionBTS2006R2 = &quot;BizTalk Server 2006 R2&quot;
$descriptionBTS2006R2SP1 = &quot;BizTalk Server 2006 R2 with service pack 1&quot;
$descriptionBTS2009 = &quot;BizTalk Server 2009&quot;

# Registry paths
$bizTalkRegistryPath = &quot;HKLM:\SOFTWARE\Microsoft\BizTalk Server&quot;
$biztalk2006SP1UninstallRegistryPath = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft Biztalk Server 2006 R2 Service Pack 1 `[KB 974563`]'

$installedVersion = $null

# Check if BizTalk is installed:
if ((Test-Path $bizTalkRegistryPath) -eq $true)
{

# Set location to BizTalk registry key
Set-Location $bizTalkRegistryPath
$key = Get-ChildItem

# Get version number
$productVersion = $key.GetValue(&quot;ProductVersion&quot;)

switch ($productVersion)
{

$versionBTS2004 { $installedVersion = $descriptionBTS2004 }
$versionBTS2004SP1 { $installedVersion = $descriptionBTS2004SP1 }
$versionBTS2004SP2 { $installedVersion = $descriptionBTS2004SP2 }
$versionBTS2006 { $installedVersion = $versionBTS2006 }
$versionBTS2006R2
{
if ((Test-Path $biztalk2006SP1UninstallRegistryPath) -eq $false)
{
$installedVersion = $descriptionBTS2006R2
}
else
{
$installedVersion = $descriptionBTS2006R2SP1
}
}
$versionBTS2009 { $installedVersion = $descriptionBTS2009 }
}
}

if ($installedVersion -eq $null)
{
Write-Host &quot;BizTalk Server is not installed on this machine.&quot;
Exit
}

Write-Host &quot;BizTalk Server installation found on this machine.&quot;
Write-Host &quot;Product version number: $productVersion&quot;
Write-Host &quot;Installed version: $installedVersion&quot;
</pre>
<br /> Tagged: <a href='http://biztalkmessages.vansplunteren.net/tag/biztalk/'>BizTalk</a>, <a href='http://biztalkmessages.vansplunteren.net/tag/biztalk-2006-r2/'>BizTalk 2006 R2</a>, <a href='http://biztalkmessages.vansplunteren.net/tag/powershell/'>PowerShell</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/579/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/579/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/579/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/579/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/579/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/579/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/579/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/579/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/579/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/579/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=579&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2010/03/04/determine-biztalk-version-using-powershell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>
	</item>
		<item>
		<title>PowerShell Provider 1.0 Beta (hotfix)</title>
		<link>http://biztalkmessages.vansplunteren.net/2010/02/25/powershell-provider-1-0-beta-hotfix/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2010/02/25/powershell-provider-1-0-beta-hotfix/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 20:09:37 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[BizTalk Management]]></category>
		<category><![CDATA[BizTalk tools]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/2010/02/25/powershell-provider-1-0-beta-hotfix/</guid>
		<description><![CDATA[A couple of people have reported a nasty bug in the PowerShell Provider version 1.0 Beta. The provider doesn’t seem to work when SQL Server (hosting the BizTalk management database) is on a remote SQL Server.
Although we will have this fixed in the 1.0 final release I decided to provide a hotfix right now for [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=578&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>A couple of people have reported a nasty bug in the <a href="http://psbiztalk.codeplex.com/releases/view/35524#DownloadId=91313" target="_blank">PowerShell Provider version 1.0 Beta</a>. The provider doesn’t seem to work when SQL Server (hosting the BizTalk management database) is on a remote SQL Server.</p>
<p>Although we will have this fixed in the 1.0 final release I decided to provide a hotfix right now for those who want to play with the beta and have a remote SQL server. This is major show stopper.</p>
<p>If you want to receive the hotfix please drop me an e-mail (see about page of my blog) and I will send you the fix and instructions a.s.a.p.</p>
<p>As an alternative you can download the latest sources from codeplex and compile them yourself.</p>
<p>The hotfix will also fix other reported <a href="http://psbiztalk.codeplex.com/WorkItem/List.aspx" target="_blank">issues</a>:</p>
<p>- #3042   <br />- #3170    <br />- #3280    <br />- #3390    <br />- #3391    <br />- #3393</p>
<br /> Tagged: <a href='http://biztalkmessages.vansplunteren.net/tag/biztalk/'>BizTalk</a>, <a href='http://biztalkmessages.vansplunteren.net/tag/biztalk-management/'>BizTalk Management</a>, <a href='http://biztalkmessages.vansplunteren.net/tag/biztalk-tools/'>BizTalk tools</a>, <a href='http://biztalkmessages.vansplunteren.net/tag/powershell/'>PowerShell</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/578/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/578/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/578/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/578/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/578/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/578/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/578/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/578/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/578/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/578/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=578&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2010/02/25/powershell-provider-1-0-beta-hotfix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>
	</item>
		<item>
		<title>Retrieve the BTSNTSvc.exe PID with PowerShell</title>
		<link>http://biztalkmessages.vansplunteren.net/2010/01/05/retrieve-the-btsntsvc-exe-pid-with-powershell/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2010/01/05/retrieve-the-btsntsvc-exe-pid-with-powershell/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 15:30:06 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[BizTalk 2009]]></category>
		<category><![CDATA[BizTalk Management]]></category>
		<category><![CDATA[BizTalk tools]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=571</guid>
		<description><![CDATA[Again another post in the series of more advanced things you can do with the PowerShell provider for BizTalk.
When debugging BizTalk solutions you find yourself many times in a situation where you need to attach the Visual Studio debugger to the running BizTalk host instance. This is very easy to do. In Visual Studio you [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=571&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Again another post in the series of more advanced things you can do with the PowerShell provider for BizTalk.</p>
<p>When debugging BizTalk solutions you find yourself many times in a situation where you need to attach the Visual Studio debugger to the running BizTalk host instance. This is very easy to do. In Visual Studio you simply select ‘Debug’ then ‘Attach to Process’. From the dialog you select the ‘BTSNTSvc.exe’ process and finally click the ‘Attach’ button.</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2010/01/image.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/01/image_thumb.png?w=260&#038;h=186" border="0" alt="image" width="260" height="186" /></a></p>
<p>It gets a little more tricky when you have multiple host instances running on your development box. The dialog now shows all host instances and you need to pick the one running the artifact (pipeline component, orchestration, etc.) that you want to debug. The bad thing is that there is no readable name displayed and the only property that distinguishes between the instances is the PID (column: ID). So how do you know how to pick the correct one and go on debugging?</p>
<p>There are basically two approaches:</p>
<p>- You select all the ‘BTSNTSvc.exe’ process in order to attach the debugger to all of them.</p>
<p>- You use some tooling to find out the PID.</p>
<p>Although the first option works, it is not the best solution. Attaching to all processes takes more time and resources so it is better to just pick the right one.</p>
<p>Now this is nothing new and there have been a number of smart people that blogged about methods to find out the PID for a host instance. Samples are <a href="http://blogical.se/blogs/johan/archive/2008/01/25/how-to-find-the-host-that-btsntsvc-exe-belongs-to.aspx" target="_blank">here</a> and <a href="http://blogs.msdn.com/skaufman/archive/2008/03/20/matching-the-biztalk-service-name-with-its-pid.aspx" target="_blank">here</a>.</p>
<p>In this post I want to show the PowerShell way of doing this.</p>
<p>When I use the ‘Get-ChildItems’ cmdlet on the host instances container PowerShell shows a list of ‘BTSHostInstance’ objects in the console:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2010/01/image1.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/01/image_thumb1.png?w=260&#038;h=173" border="0" alt="image" width="260" height="173" /></a></p>
<p>Since the process id is not a property of the ‘BTSHostInstance’ object it is not shown in the list.</p>
<p>Fortunately the nice thing about PowerShell is that you can extend properties with extra members using the Add-Member cmdlet. In the script below I create a function that adds a a property containing the process id to every non isolated host.</p>
<pre class="brush: powershell;">
function GetHostPID
{
    Get-ChildItem -Path 'Biztalk:\Platform Settings\Host Instances' | ForEach-Object {

        if ($_.HostType -ne 'Isolated')
        {
            [string]$a = (Get-WmiObject Win32_Process -filter &quot;CommandLine Like '%$($_.HostName)%'&quot;).ProcessId
       
            $_ | Add-Member -MemberType NoteProperty -Name PID -Value $a
       
            Write-Output $_
              
        }
    } | Format-Table PID, Name, HostName, NTGroupName, RunningServer, HostType, ServiceState
}
</pre>
<p>When I execute the function I get a nice list similar to the list above but with the PID added to every row:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2010/01/image2.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/01/image_thumb2.png?w=260&#038;h=170" border="0" alt="image" width="260" height="170" /></a></p>
<p>I can add this function to my function library so it loads automatically on startup and is always available in my PowerShell console.</p>
<p>Of course you can do this without the PowerShell provider for BizTalk and use WMI only. In that case it would be hard and require far more lines of code to get a nice formatted list like show above.</p>
<br /> Tagged: BizTalk, BizTalk 2009, BizTalk Management, BizTalk tools <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/571/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/571/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/571/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/571/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/571/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/571/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/571/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/571/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/571/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/571/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=571&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2010/01/05/retrieve-the-btsntsvc-exe-pid-with-powershell/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/01/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/01/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/01/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Awarded MVP BizTalk Server 2010</title>
		<link>http://biztalkmessages.vansplunteren.net/2010/01/05/awarded-mvp-biztalk-server-2010/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2010/01/05/awarded-mvp-biztalk-server-2010/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 11:13:50 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[MVP]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/2010/01/05/awarded-mvp-biztalk-server-2010/</guid>
		<description><![CDATA[I had a great start of this new year. On January, 1st I received the ‘Congratulations 2010 Microsoft MVP!’ email from Microsoft. I almost missed it because it was delivered to the junk mail folder. I do not check that folder too often  
I&#8217;m really honored and excited. I would like to thank the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=564&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I had a great start of this new year. On January, 1st I received the ‘<strong>Congratulations 2010 Microsoft MVP!</strong>’ email from Microsoft. I almost missed it because it was delivered to the junk mail folder. I do not check that folder too often <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>I&#8217;m really honored and excited. I would like to thank the people at Microsoft, community members and other people involved. Special thanks to fellow MVP <a href="http://blog.eliasen.dk/" target="_blank">Jan Eliasen</a> (IMHO: the book will be great <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ) and <a href="http://psbiztalk.codeplex.com/" target="_blank">codeplex powershell team members</a>: <a href="http://maxime-labelle.spaces.live.com/" target="_blank">Maxime</a> and <a href="http://michelhubert.spaces.live.com/" target="_blank">Michel</a>.</p>
<p>No MVP logo? Well, I’m waiting for access to the MVP logo kit <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<br /> Tagged: BizTalk, MVP <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/564/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/564/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/564/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/564/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/564/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/564/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/564/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/564/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/564/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/564/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=564&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2010/01/05/awarded-mvp-biztalk-server-2010/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>
	</item>
		<item>
		<title>Empowering BizTalk in HotRod Magazine</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/12/24/empowering-biztalk-in-hotrod-magazine/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/12/24/empowering-biztalk-in-hotrod-magazine/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 08:19:06 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[PowerShell]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=561</guid>
		<description><![CDATA[Yesterday the new issue of BizTalk HotRod Magazine was published. Besides other nice content it contains an article on our PowerShell Provider for BizTalk.

 Tagged: BizTalk, PowerShell      <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=561&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Yesterday the <a href="http://biztalkhotrod.com/Documents/Issue8_Q4_2009.pdf" target="_blank">new issue</a> of <a href="http://biztalkhotrod.com/default.aspx" target="_blank">BizTalk HotRod Magazine</a> was published. Besides other nice content it contains an article on our <a href="http://psbiztalk.codeplex.com/" target="_blank">PowerShell Provider for BizTalk</a>.</p>
<p><a href="http://biztalkhotrod.com/default.aspx" target="_blank"><img style="border-bottom:0;border-left:0;border-top:0;border-right:0;" border="0" align="left" src="http://biztalkhotrod.com/Images/BizTalkHotrodHeader.JPG" width="319" height="91" /></a></p>
<br /> Tagged: BizTalk, PowerShell <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/561/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/561/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/561/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/561/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/561/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/561/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/561/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/561/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/561/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/561/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=561&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/12/24/empowering-biztalk-in-hotrod-magazine/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkhotrod.com/Images/BizTalkHotrodHeader.JPG" medium="image" />
	</item>
		<item>
		<title>Copying your host configuration</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/12/22/copying-your-host-configuration/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/12/22/copying-your-host-configuration/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 14:44:54 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[BizTalk Management]]></category>
		<category><![CDATA[BizTalk tools]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=548</guid>
		<description><![CDATA[Moving your host configuration from one server to another can be daunting and time consuming task. This usually needs to be done when you hand over stuff from development to test, or from test to production. On those environments you mostly want to have the exact same host configuration as you have on your development [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=548&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Moving your host configuration from one server to another can be daunting and time consuming task. This usually needs to be done when you hand over stuff from development to test, or from test to production. On those environments you mostly want to have the exact same host configuration as you have on your development box.</p>
<p>Another option is that a new development team member has just started on a fresh development box and you want him to use the same host configuration that you have. There are a lot of other scenarios where you want to copy the configuration of your hosts and host instances to another machine.</p>
<p>A lot of great BizTalk people have already showed how this can be done in an automated way. Some samples are:</p>
<p>- <a href="http://soa-thoughts.blogspot.com/2009/08/creating-hosts-in-biztalk-script.html" target="_blank">VBScript and WMI</a><br />
- <a href="http://www.biztalkgurus.com/blogs/biztalk/archive/2008/04/30/biztalk-host-creation-and-adapter-assignment-tool-available-for-download.aspx" target="_blank">Custom tool 1</a><br />
- <a href="http://www.codeplex.com/BizTalkAppHostConfig" target="_blank">Custom tool 2</a></p>
<p>In this post I want to show you how this can be done using PowerShell and the <a href="http://psbiztalk.codeplex.com" target="_blank">PowerShell provider for BizTalk</a>. So this is actually the next post in my series on more advanced things you can do with the provider.</p>
<p>I use a slightly different approach compared to the existing tools. I use a PowerShell script that can be executed on the source server. This is the server that already has the host configuration set up, for example a development server. The output of running this script is actually another PowerShell script that you can run on the destination server. This output scripts contains all necessary statements to create the hosts, corresponding host instances and settings.</p>
<p>This is how it works:</p>
<p>- execute the script<br />
- the script prompts for the name and path of the output file:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/12/image9.png" target="_blank"><img style="display:inline;border-width:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb9.png?w=260&#038;h=77" border="0" alt="image" width="260" height="77" /></a></p>
<p>- after a short while the script is finished and a PowerShell script is created. You can run this script on the destination server or send it to an administrator who will run it on another server.</p>
<p>This is the created script:</p>
<pre class="brush: powershell;">

#Determine BizTalk root and switch to host container.
$BizTalkRoot = (get-psdrive -PsProvider BizTalk).Root
Join-Path $BizTalkRoot 'Platform Settings\Hosts' | Set-Location

$RunningServer = $Env:ComputerName
#Create hosts
#Create host 'ReceiveHost' and set properties.
New-Item -Path 'ReceiveHost' -HostType 'InProcess' -NtGroupName 'BizTalk Application Users' -AuthTrusted:$False
Set-ItemProperty -Path 'ReceiveHost' -Name HostTracking -Value False
Set-ItemProperty -Path 'ReceiveHost' -Name Is32BitOnly -Value True

#Create host 'ProcessingHost' and set properties.
New-Item -Path 'ProcessingHost' -HostType 'InProcess' -NtGroupName 'BizTalk Application Users' -AuthTrusted:$False
Set-ItemProperty -Path 'ProcessingHost' -Name HostTracking -Value False
Set-ItemProperty -Path 'ProcessingHost' -Name Is32BitOnly -Value True

#Create host 'SendHost' and set properties.
New-Item -Path 'SendHost' -HostType 'InProcess' -NtGroupName 'BizTalk Application Users' -AuthTrusted:$False
Set-ItemProperty -Path 'SendHost' -Name HostTracking -Value False
Set-ItemProperty -Path 'SendHost' -Name Is32BitOnly -Value False

#Create host 'TrackingHost' and set properties.
New-Item -Path 'TrackingHost' -HostType 'InProcess' -NtGroupName 'BizTalk Application Users' -AuthTrusted:$False
Set-ItemProperty -Path 'TrackingHost' -Name HostTracking -Value True
Set-ItemProperty -Path 'TrackingHost' -Name Is32BitOnly -Value False

#Switch to host instances container.
Join-Path $BizTalkRoot 'Platform Settings\Host Instances' | Set-Location

#Create host instances
#Create host instance 'Microsoft BizTalk Server ReceiveHost BTS2K9-DEV' and set properties.
$Credential = $Host.UI.PromptForCredential('Host Instance user credentials', 'Please enter credentials for host instance ''ReceiveHost''', '', '')
New-Item -Path 'hostinstance' -HostName 'ReceiveHost' -RunningServer $RunningServer -Credentials $Credential
Set-ItemProperty -Path 'Microsoft BizTalk Server ReceiveHost BTS2K9-DEV' -Name IsDisabled -Value False

#Create host instance 'Microsoft BizTalk Server ProcessingHost BTS2K9-DEV' and set properties.
$Credential = $Host.UI.PromptForCredential('Host Instance user credentials', 'Please enter credentials for host instance ''ProcessingHost''', '', '')
New-Item -Path 'hostinstance' -HostName 'ProcessingHost' -RunningServer $RunningServer -Credentials $Credential
Set-ItemProperty -Path 'Microsoft BizTalk Server ProcessingHost BTS2K9-DEV' -Name IsDisabled -Value False

#Create host instance 'Microsoft BizTalk Server SendHost BTS2K9-DEV' and set properties.
$Credential = $Host.UI.PromptForCredential('Host Instance user credentials', 'Please enter credentials for host instance ''SendHost''', '', '')
New-Item -Path 'hostinstance' -HostName 'SendHost' -RunningServer $RunningServer -Credentials $Credential
Set-ItemProperty -Path 'Microsoft BizTalk Server SendHost BTS2K9-DEV' -Name IsDisabled -Value False

#Create host instance 'Microsoft BizTalk Server TrackingHost BTS2K9-DEV' and set properties.
$Credential = $Host.UI.PromptForCredential('Host Instance user credentials', 'Please enter credentials for host instance ''TrackingHost''', '', '')
New-Item -Path 'hostinstance' -HostName 'TrackingHost' -RunningServer $RunningServer -Credentials $Credential
Set-ItemProperty -Path 'Microsoft BizTalk Server TrackingHost BTS2K9-DEV' -Name IsDisabled -Value False
</pre>
<p>There are a couple of things to mention about the generated script:</p>
<p>- This is by no means a script applicable for all situations and environments. The purpose is just to show the output script as a result of running the source script. The source script will probably need some modification to make it apply to your environment. For example the script does not take into account multi server configurations, etc.<br />
- The output script will prompt for credentials for each host instance it will create. There are also ways to script this from source to destination. See for example <a href="http://www.leeholmes.com/blog/ImportingAndExportingCredentialsInPowerShell.aspx" target="_blank">here</a>. In most cases hosts in different environments will run under different accounts which is why I choose to show a prompt each time.<br />
- Also in this script the windows group for the host is kept the same for the destination environment. This might not be the case in your particular situation.</p>
<p>After running this script on the destination server I have a exact copy of my host environment on the source server.</p>
<p>The source script looks like this:</p>
<pre class="brush: powershell;">
$ScriptFile = Read-Host 'Enter full path of script file:'&lt;/pre&gt;
'#Determine BizTalk root and switch to host container.' | Out-File $ScriptFile
'$BizTalkRoot = (get-psdrive -PsProvider BizTalk).Root' | Out-File $ScriptFile -Append
'Join-Path $BizTalkRoot ''Platform Settings\Hosts'' | Set-Location' | Out-File $ScriptFile -Append
'' | Out-File $ScriptFile -Append

'$RunningServer = $Env:ComputerName' | Out-File $ScriptFile -Append

$BizTalkRoot = (get-psdrive -PsProvider BizTalk).Root
Join-Path $BizTalkRoot 'Platform Settings\Hosts' | Set-Location

'#Create hosts' | Out-File $ScriptFile -Append
$HostArray = @()
Get-ChildItem -Path . |  Foreach-Object {
    if (!$_.IsDefault -and $_.HostType -ne 'Isolated') {
   
        $HostArray += $_.Name
   
        &quot;#Create host '$($_.Name)' and set properties.&quot; | Out-File $ScriptFile -Append
        &quot;New-Item -Path '$($_.Name)' -HostType '$($_.HostType)' -NtGroupName '$($_.NtGroupName)' -AuthTrusted:`$$($_.AuthTrusted)&quot; | Out-File $ScriptFile -Append
        &quot;Set-ItemProperty -Path '$($_.Name)' -Name HostTracking -Value $($_.HostTracking)&quot; | Out-File $ScriptFile -Append
        &quot;Set-ItemProperty -Path '$($_.Name)' -Name Is32BitOnly -Value $($_.Is32BitOnly)&quot; | Out-File $ScriptFile -Append
        '' | Out-File $ScriptFile -Append
                   
    }
}

'#Switch to host instances container.' | Out-File $ScriptFile -Append
'Join-Path $BizTalkRoot ''Platform Settings\Host Instances'' | Set-Location' | Out-File $ScriptFile -Append
'' | Out-File $ScriptFile -Append

Join-Path $BizTalkRoot 'Platform Settings\Host Instances' | Set-Location

'#Create host instances' | Out-File $ScriptFile -Append
Get-ChildItem -Path . |  Foreach-Object {
    if ($HostArray -contains $_.HostName) {
      
        &quot;#Create host instance '$($_.Name)' and set properties.&quot; | Out-File $ScriptFile -Append
        &quot;`$Credential = `$Host.UI.PromptForCredential('Host Instance user credentials', 'Please enter credentials for host instance ''$($_.HostName)''', '', '')&quot; | Out-File $ScriptFile -Append
        &quot;New-Item -Path 'hostinstance' -HostName '$($_.HostName)' -RunningServer `$RunningServer -Credentials `$Credential&quot; | Out-File $ScriptFile -Append
        &quot;Set-ItemProperty -Path '$($_.Name)' -Name IsDisabled -Value $($_.IsDisabled)&quot; | Out-File $ScriptFile -Append
         '' | Out-File $ScriptFile -Append
       
    }
}
</pre>
<p>In the script I skip the default and isolated host. As with the generated output script this is just a sample and might not apply to your specific situation. The source script should be modified to confirm to your requirements and environment.</p>
<p>You can download the source script from <a href="http://cid-2b880e94db699632.skydrive.live.com/self.aspx/PowerShell.BizTalk/v1.0.0/Sample%20scripts/Generate-HostScript.ps1" target="_blank">here</a>.</p>
<br /> Tagged: BizTalk, BizTalk Management, BizTalk tools, PowerShell <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/548/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/548/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/548/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/548/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/548/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/548/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/548/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/548/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/548/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/548/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=548&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/12/22/copying-your-host-configuration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb9.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Untyped messages and Business Rules Engine</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/12/22/untyped-messages-and-business-rules-engine/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/12/22/untyped-messages-and-business-rules-engine/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 09:54:09 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[Business Rules Engine]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=540</guid>
		<description><![CDATA[This blogpost has been superseded by a new version. See: http://biztalkmessages.vansplunteren.net/2010/03/04/untyped-messages-and-business-rules-engine-part-2/
The other day one of my BizTalk buddies asked me if I knew a way to process different messages by the same policy in the Business Rules Engine (BRE). In other words is it possible to create some sort of generic policy that can process [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=540&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p><em><span style="color:#ff0000;">This blogpost has been superseded by a new version. See: </span><a href="http://biztalkmessages.vansplunteren.net/2010/03/04/untyped-messages-and-business-rules-engine-part-2/"><span style="color:#ff0000;">http://biztalkmessages.vansplunteren.net/2010/03/04/untyped-messages-and-business-rules-engine-part-2/</span></a></em></p>
<p>The other day one of my BizTalk buddies asked me if I knew a way to process different messages by the same policy in the Business Rules Engine (BRE). In other words is it possible to create some sort of generic policy that can process different types of messages?</p>
<p>In his scenario the schemas had some fields in common and he needed those fields to be evaluated and optionally set in a single BRE policy.</p>
<p>Of course you can make a policy that depends on different schemas and add rules for each schema. The bad thing about that is that you will get multiple copies of almost the same rule which might lead to a maintenance nightmare.</p>
<p>I created a small sample to show how this can be achieved in a single policy and single rule. Below are three very basic schemas I used in this sample:</p>
<pre class="brush: xml;">

&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;
&lt;xs:schema xmlns:b=&quot;&lt;a href=&quot;http://schemas.microsoft.com/BizTalk/2003&quot;&gt;http://schemas.microsoft.com/BizTalk/2003&lt;/a&gt;&quot; xmlns=&quot;&lt;a href=&quot;http://UntypedBRE.FirstSchema&quot;&gt;http://UntypedBRE.FirstSchema&lt;/a&gt;&quot; targetNamespace=&quot;&lt;a href=&quot;http://UntypedBRE.FirstSchema&quot;&gt;http://UntypedBRE.FirstSchema&lt;/a&gt;&quot; xmlns:xs=&quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;http://www.w3.org/2001/XMLSchema&lt;/a&gt;&quot;&gt;
  &lt;xs:element name=&quot;FirstSchema&quot;&gt;
    &lt;xs:complexType&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name=&quot;FirstName&quot; type=&quot;xs:string&quot; /&gt;
        &lt;xs:element name=&quot;LastName&quot; type=&quot;xs:string&quot; /&gt;
        &lt;xs:element name=&quot;IsJohn&quot; type=&quot;xs:string&quot; /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
  &lt;/xs:element&gt;
&lt;/xs:schema&gt;
</pre>
<p> </p>
<pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;
&lt;xs:schema xmlns:b=&quot;&lt;a href=&quot;http://schemas.microsoft.com/BizTalk/2003&quot;&gt;http://schemas.microsoft.com/BizTalk/2003&lt;/a&gt;&quot; xmlns=&quot;&lt;a href=&quot;http://UntypedBRE.SecondSchema&quot;&gt;http://UntypedBRE.SecondSchema&lt;/a&gt;&quot; targetNamespace=&quot;&lt;a href=&quot;http://UntypedBRE.SecondSchema&quot;&gt;http://UntypedBRE.SecondSchema&lt;/a&gt;&quot; xmlns:xs=&quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;http://www.w3.org/2001/XMLSchema&lt;/a&gt;&quot;&gt;
  &lt;xs:element name=&quot;SecondSchema&quot;&gt;
    &lt;xs:complexType&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name=&quot;FirstName&quot; type=&quot;xs:string&quot; /&gt;
        &lt;xs:element name=&quot;LastName&quot; type=&quot;xs:string&quot; /&gt;
        &lt;xs:element name=&quot;IsJohn&quot; type=&quot;xs:string&quot; /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
  &lt;/xs:element&gt;
&lt;/xs:schema&gt;
</pre>
<p> </p>
<pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;
&lt;xs:schema xmlns:b=&quot;&lt;a href=&quot;http://schemas.microsoft.com/BizTalk/2003&quot;&gt;http://schemas.microsoft.com/BizTalk/2003&lt;/a&gt;&quot; xmlns=&quot;&lt;a href=&quot;http://UntypedBRE.ThirdSchema&quot;&gt;http://UntypedBRE.ThirdSchema&lt;/a&gt;&quot; targetNamespace=&quot;&lt;a href=&quot;http://UntypedBRE.ThirdSchema&quot;&gt;http://UntypedBRE.ThirdSchema&lt;/a&gt;&quot; xmlns:xs=&quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;http://www.w3.org/2001/XMLSchema&lt;/a&gt;&quot;&gt;
  &lt;xs:element name=&quot;ThirdSchema&quot;&gt;
    &lt;xs:complexType&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name=&quot;FirstName&quot; type=&quot;xs:string&quot; /&gt;
        &lt;xs:element name=&quot;LastName&quot; type=&quot;xs:string&quot; /&gt;
        &lt;xs:element name=&quot;IsJohn&quot; type=&quot;xs:string&quot; /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
  &lt;/xs:element&gt;
&lt;/xs:schema&gt;
</pre>
<p>I my sample policy I want to check the ‘FirstName’ element. If the value is equal to ‘John’ I want to fill the ‘IsJohn’ element with value ‘yes’. The policy (and single rule) should work for all of the above schemas.</p>
<p>The problem is that mentioned schemas belong to a different namespace and have a different root node, hence in BizTalk terms have a different message type. Because XML schema facts in the BRE are by default tightly coupled to a specific schema the consequence is that those facts can only operate on single type of message.</p>
<p>In order to make this generic you have to do the following:</p>
<p><strong><span style="text-decoration:underline;">1. Add one of the schemas to the Facts Explorer in the BRE.</span></strong></p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/12/image.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb.png?w=260&#038;h=233" border="0" alt="image" width="260" height="233" /></a></p>
<p><strong><span style="text-decoration:underline;">2. Make the schema ‘general’</span></strong></p>
<p>As you can see the Document Type resembles the type of the schema I added. To make this generic I change this value to ‘System.Xml.XmlDocument’. This will make sure that if I use a fact from this schema in a rule it will not be typed to this schema but will be generic.</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/12/image1.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb1.png?w=260&#038;h=232" border="0" alt="image" width="260" height="232" /></a></p>
<p><strong><span style="text-decoration:underline;">3. Create the rule</span></strong></p>
<p>In this step I create rule. The facts will be filled in later.</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/12/image2.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb2.png?w=260&#038;h=164" border="0" alt="image" width="260" height="164" /></a></p>
<p><strong><span style="text-decoration:underline;">4. Modify the XML facts.</span></strong></p>
<p>In the rule I need to evaluate the ‘FirstName’ fact and optionally set the ‘IsJohn’ fact. Because I want this to work on all schemas I need to define the facts in a generic way. If I click on the ‘FirstName’ fact I can see the xpath statements that point to this fact in the property pane:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/12/image3.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb3.png?w=260&#038;h=227" border="0" alt="image" width="260" height="227" /></a></p>
<p>The ‘Xpath Field’ and ‘Xpath Selector’ properties are directly referring to ‘FirstSchema’ root node and namespace. I change the values to make them generic also:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/12/image4.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb4.png?w=260&#038;h=228" border="0" alt="image" width="260" height="228" /></a></p>
<p>Note that I’m using ‘self::node()’ here. I described this trick before <a href="http://biztalkmessages.vansplunteren.net/2008/06/11/updating-multiple-nodes-with-different-parents-and-hierarchical-levels-using-the-biztalk-bre/" target="_blank">here</a>.</p>
<p>Now the XML fact is no longer pointing to a specific namespace or root node. It just points to a ‘FirstName’ node somewhere in a Xml document.</p>
<p>There are of course other possible values for ‘XPath Selector’ and ‘XPath Field’ to solve this. It all depends on the schemas. If for example the facts you need all have the same parent node you can make the ‘XPath selector’ select the parent node and the ‘XPath Field’ select the ‘FirstName’ element.</p>
<p>I do the same for the fact I want to update in the action of the rule:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/12/image5.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb5.png?w=260&#038;h=229" border="0" alt="image" width="260" height="229" /></a></p>
<p><strong><span style="text-decoration:underline;">5. Complete the rule by adding the facts.</span></strong></p>
<p>Finally I can drag the XML facts from the Facts Explorer to my rule to complete the condition and create a new action. Like this:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/12/image6.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb6.png?w=260&#038;h=121" border="0" alt="image" width="260" height="121" /></a></p>
<p>You can see that the both the condition and the action are not referring (anymore) to any specific schema  but instead to any schema that has ‘FirstName’  and ‘IsJohn’  elements.</p>
<p>Testing the rule with instances from two different schemas shows that this works:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/12/image7.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb7.png?w=260&#038;h=132" border="0" alt="image" width="260" height="132" /></a></p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/12/image8.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb8.png?w=260&#038;h=138" border="0" alt="image" width="260" height="138" /></a></p>
<p>One thing to note about this is that the way I changed the xpath statements for the Xml facts comes with a performance penalty. Using things like ‘//*…….’.  will make the engine go through the whole xml tree which is less efficient then using the original full xpath statement. So if performance is a strict requirement be careful using techniques like these.</p>
<p>Another thing is that I do not check for the existence of the nodes first. The policy will crash when an message is processed that does not contain on of the nodes used in the rule.</p>
<br /> Tagged: BizTalk, Business Rules Engine <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/540/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/540/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/540/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/540/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/540/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/540/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/540/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/540/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/540/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/540/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=540&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/12/22/untyped-messages-and-business-rules-engine/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb5.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb6.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb7.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb8.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>BizTalk remote administration</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/11/24/biztalk-remote-administration/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/11/24/biztalk-remote-administration/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 13:45:35 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[BizTalk Management]]></category>
		<category><![CDATA[BizTalk tools]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/2009/11/24/biztalk-remote-administration/</guid>
		<description><![CDATA[Every application needs management. Ideally an application should provide two ways of management. First an administrator needs a (graphical) console to be able to do single or ad-hoc actions like changing configuration, responding to error conditions, etc. Second there should be a way for an administrator to create and run scripts. Scripts allow administrators to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=521&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Every application needs management. Ideally an application should provide two ways of management. First an administrator needs a (graphical) console to be able to do single or ad-hoc actions like changing configuration, responding to error conditions, etc. Second there should be a way for an administrator to create and run scripts. Scripts allow administrators to store a set of repetitive tasks in a container (called a script) in order to be able to easily do the same action over and over again. This is also called automation.</p>
<p>The best way to for any application to support management and automation is to implement such functionality on top of Windows PowerShell. Windows PowerShell contains a comprehensive API which enables the implementation of Cmdlets or a Cmdlet provider and the implementation of custom hosts.</p>
<p><strong><u>Cmdlets or a cmdlet provider        <br /></u></strong>PowerShell has uniform syntax for working with commands working and container hierarchies. This is a great advantage for administrators as they only need to learn a single way of working to manage it all. By implementing cmdlets we can “translate” this PowerShell way of working in calls to an applications native management API. </p>
<p>This is exactly what we have done in the provider for BizTalk. Internally we call BizTalk management APIs like ExplorerOM to perform things like starting applications, exporting MSIs, etc.</p>
<p><strong><u>A custom host        <br /></u></strong>Besides implementing custom cmdlets you can also implement a custom PowerShell host. The host can be any sort of application as long as it implements the PowerShell host interfaces. It can be a Win32 app, a web app or a text console for example.</p>
<p>This is exactly what Microsoft has done in the most recent versions of Exchange server (2007 &amp; 2010). Management is done using PowerShell. The graphical management console is a PowerShell host. Exchange can be managed using this GUI or for example using scripts or commands running in the command shell console that comes out of the box with PowerShell.</p>
<p>The diagram below shows this architecture:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/11/powershellarchitecturelocal.png" target="_blank"><img style="display:inline;border-width:0;" title="PowerShell architecture local" border="0" alt="PowerShell architecture local" src="http://biztalkmessages.files.wordpress.com/2009/11/powershellarchitecturelocal_thumb.png?w=158&#038;h=260" width="158" height="260" /></a> </p>
<p>Things get even more interesting since we have PowerShell 2.0. It has a new feature called remoting which allows for remote administration and automation. Remoting uses WinRm (Microsofts implementation of the WS-Management standard). Goods news is that WinRM is firewall friendly. It only uses http(s) for communication. Now the diagram looks like this:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/11/powershellarchitectureremote.png" target="_blank"><img style="display:inline;border-width:0;" title="PowerShell architecture remote" border="0" alt="PowerShell architecture remote" src="http://biztalkmessages.files.wordpress.com/2009/11/powershellarchitectureremote_thumb.png?w=115&#038;h=260" width="115" height="260" /></a> </p>
<p>Is this secure? Yes it is, both PowerShell and WinRM have been designed with focus on security. Both come out of the box with security enabled. Of course you still need to pay attention especially when exposing things outside the enterprise.</p>
<p><strong><u>Back to BizTalk       <br /></u></strong>For BizTalk we have a couple of options to remotely administer a BizTalk server. We can choose between: Remote Desktop, client installation of Admin console, custom web services for management tasks, etc. Of course all have their pros and cons. With PowerShell remoting we have a new additional option.</p>
<p>Below I’ll show a couple of screens to see how this works.</p>
<p>I used two virtual machines in this demo. I installed the following software on those machines:</p>
<p><u>Virtual machine 1 (name: BTS2K9-dev):</u></p>
<p>- Windows Server 2008 R2 (I know not supported for hosting BizTalk)   <br />- SQL Server 2008    <br />- BizTalk Server 2009    <br />- PowerShell 2.0    <br />- PowerShell provider for BizTalk 1.0 (beta)</p>
<p><u>Virtual machine 2 (name: Client):</u></p>
<p>- Windows Server 2008 R2   <br />- PowerShell 2.0    <br />- PowerShell provider for BizTalk 1.0 (beta)</p>
<p><em>The obvious but important thing to note here is that the only thing that I have installed on virtual machine 2 that is related to BizTalk is the provider. In other words I did NOT NEED ANYTHING from the BizTalk installation CD on this machine.</em></p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/11/image.png" target="_blank"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="http://biztalkmessages.files.wordpress.com/2009/11/image_thumb.png?w=260&#038;h=170" width="260" height="170" /></a> </p>
<p>The first thing I needed to was to enable remoting in PowerShell. This very simple and only requires the execution of a single command &#8216;Enable-PSRemoting’.</p>
<p>&#160;<a href="http://biztalkmessages.files.wordpress.com/2009/11/image1.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="http://biztalkmessages.files.wordpress.com/2009/11/image_thumb1.png?w=260&#038;h=221" width="260" height="221" /></a> </p>
</p>
<p>Second thing I needed to do was to add the client to the list of trusted computers on the BizTalk box. This mainly needs to be done because I just wanted to communicate over http instead of https for this demo.</p>
<p>On the BizTalk Box the management console is shown. Note that the default host instance is stopped:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/11/image2.png" target="_blank"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="http://biztalkmessages.files.wordpress.com/2009/11/image_thumb2.png?w=260&#038;h=170" width="260" height="170" /></a> </p>
<p>Back to the PowerShell console on the Client to do the following:</p>
<p>- Create a new remote session on the BizTalk Box.   <br />- Add the PowerShell provider snap in to the session.    <br />- Switch to the default BizTalk drive.    <br />- Switch the location to the host instances.    <br />- Start the default host instance.</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/11/image3.png" target="_blank"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="http://biztalkmessages.files.wordpress.com/2009/11/image_thumb3.png?w=260&#038;h=170" width="260" height="170" /></a> </p>
<p>Finally a check on the other box to see if the host instance is running to verify this has worked (need to refresh the admin console first):</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/11/image4.png" target="_blank"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="http://biztalkmessages.files.wordpress.com/2009/11/image_thumb4.png?w=260&#038;h=170" width="260" height="170" /></a> </p>
<p>As you can see in the screen shots this is really easy to do. In my opinion it is a great new, location transparent, firewall friendly, client only way of managing BizTalk Server.</p>
<p>The only thing left to be done is to rebuild the BizTalk Administration Console on top of Windows PowerShell. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  </p>
<br /> Tagged: BizTalk, BizTalk Management, BizTalk tools, PowerShell <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/521/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/521/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/521/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/521/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/521/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/521/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/521/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/521/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/521/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/521/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=521&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/11/24/biztalk-remote-administration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/11/powershellarchitecturelocal_thumb.png" medium="image">
			<media:title type="html">PowerShell architecture local</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/11/powershellarchitectureremote_thumb.png" medium="image">
			<media:title type="html">PowerShell architecture remote</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/11/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/11/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/11/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/11/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/11/image_thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Cleaning your BizTalk development box with PowerShell</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/11/12/cleaning-your-biztalk-development-box-with-powershell/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/11/12/cleaning-your-biztalk-development-box-with-powershell/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 22:02:34 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[BizTalk Management]]></category>
		<category><![CDATA[BizTalk tools]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/2009/11/12/cleaning-your-biztalk-development-box-with-powershell/</guid>
		<description><![CDATA[This is the first in a series of posts where I want to show some more advanced scripts and things you can do with the PowerShell provider for BizTalk.
I usually do a lot of tryouts and proof of concepts on my development box. In my urge to get things working I never spend too much [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=504&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>This is the first in a series of posts where I want to show some more advanced scripts and things you can do with the <a href="http://psbiztalk.codeplex.com/" target="_blank">PowerShell provider for BizTalk</a>.</p>
<p>I usually do a lot of tryouts and proof of concepts on my development box. In my urge to get things working I never spend too much time on descriptive application names. I also never clean up things after I’m done.</p>
<p>This will in inevitably lead to the following mess after a couple of weeks:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/11/applications.png" target="_blank"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="applications" border="0" alt="applications" src="http://biztalkmessages.files.wordpress.com/2009/11/applications_thumb.png?w=210&#038;h=260" width="210" height="260" /></a> </p>
<p>From time to time I feel the need to clean up this mess. I used to do this with the BizTalk Administration Console. I start on top of the list right click the application to first stop and then delete it. Then I go to the second, etc.</p>
<p>The problems start to arise when there are references between applications. If I delete an application that is referenced from another application I get the following warning:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/11/warning.png" target="_blank"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="warning" border="0" alt="warning" src="http://biztalkmessages.files.wordpress.com/2009/11/warning_thumb.png?w=260&#038;h=74" width="260" height="74" /></a> </p>
<p>I can still delete the application but the warning is annoying and takes time. The last thing I want is to lose too much time cleaning up <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Things get even worse when there are assembly resources inside the application which are referred to by assembly resources in other applications. This time it is not a warning but a serious error preventing me from deleting the application.</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/11/error.png" target="_blank"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="error" border="0" alt="error" src="http://biztalkmessages.files.wordpress.com/2009/11/error_thumb.png?w=260&#038;h=219" width="260" height="219" /></a> </p>
<p>This means I need to take this reference dependency tree into account and delete the “child” applications before their “parents”.</p>
<p>This all makes cleaning up my development box very annoying and time consuming which is probably why I keep postponing it in the first place.</p>
<p>You can nicely automate this procedure using a generic application removal script that uses the <a href="http://psbiztalk.codeplex.com/" target="_blank">PowerShell provider for BizTalk</a>. In the script I take advantage of the exception handling possibilities of PowerShell. I sort of do a “on error resume next”.</p>
<p>This is how the script works:</p>
<ul>
<li>- Build a list of all the applications and put them in a array variable.</li>
<li>- Loop through the list and try to delete the application on top of the list.</li>
<li>- When the deletion fails because of dependencies we catch, in PowerShell terms “trap”, the exception and shuffle the array a little bit so that the application that failed is moved to the bottom of the list.</li>
<li>- We then continue with the application that is now on top of the list.</li>
<li>- The loop will end when all the applications are removed.</li>
</ul>
<p>This is the script:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/11/script.png" target="_blank"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="script" border="0" alt="script" src="http://biztalkmessages.files.wordpress.com/2009/11/script_thumb.png?w=260&#038;h=253" width="260" height="253" /></a> </p>
<p>Some details about the script:</p>
<p>In the fragment below we use the provider to get a list of all applications. We make sure exclude the system and default application because they cannot be deleted.</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/11/detail1.png" target="_blank"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="detail1" border="0" alt="detail1" src="http://biztalkmessages.files.wordpress.com/2009/11/detail1_thumb.png?w=260&#038;h=37" width="260" height="37" /></a> </p>
<p>The second thing to show in detail is the error handling routine. The provider (or actually the BizTalk Management Classes library) throws an exception of type BtsException since the application is referenced and cannot be deleted. We catch this exception by using a trap statement. In the exception handler we do two things. First we make sure to set a variable in the main scope so that we know what to do with the array later. Either move the top item to the bottom or remove the top item. Second we use “continue;” to have the main routine continue with the next statement.</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/11/detail2.png" target="_blank"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="detail2" border="0" alt="detail2" src="http://biztalkmessages.files.wordpress.com/2009/11/detail2_thumb.png?w=260&#038;h=87" width="260" height="87" /></a> </p>
<p>After running the script this is what the admin console shows:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/11/applications_clean.png" target="_blank"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="applications_clean" border="0" alt="applications_clean" src="http://biztalkmessages.files.wordpress.com/2009/11/applications_clean_thumb.png?w=260&#038;h=144" width="260" height="144" /></a> </p>
<p>Nice!!!!</p>
<p>The script can be downloaded from <a href="http://cid-2b880e94db699632.skydrive.live.com/self.aspx/PowerShell.BizTalk/v1.0.0/Sample%20scripts/Remove-Items.ps1" target="_blank">here</a></p>
<br /> Tagged: BizTalk, BizTalk Management, BizTalk tools, PowerShell <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/504/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/504/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/504/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/504/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/504/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/504/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/504/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/504/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/504/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/504/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=504&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/11/12/cleaning-your-biztalk-development-box-with-powershell/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/11/applications_thumb.png" medium="image">
			<media:title type="html">applications</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/11/warning_thumb.png" medium="image">
			<media:title type="html">warning</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/11/error_thumb.png" medium="image">
			<media:title type="html">error</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/11/script_thumb.png" medium="image">
			<media:title type="html">script</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/11/detail1_thumb.png" medium="image">
			<media:title type="html">detail1</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/11/detail2_thumb.png" medium="image">
			<media:title type="html">detail2</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/11/applications_clean_thumb.png" medium="image">
			<media:title type="html">applications_clean</media:title>
		</media:content>
	</item>
		<item>
		<title>PowerShell provider for BizTalk getting started guide</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/11/10/powershell-provider-for-biztalk-getting-started-guide/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/11/10/powershell-provider-for-biztalk-getting-started-guide/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 20:22:48 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[BizTalk Management]]></category>
		<category><![CDATA[BizTalk tools]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/2009/11/10/powershell-provider-for-biztalk-getting-started-guide/</guid>
		<description><![CDATA[For people interested in both PowerShell and BizTalk, I just finished a getting started guide to introduce the basics of the PowerShell provider for BizTalk (version 1.0 beta). The guide can be downloaded from here.
 Tagged: BizTalk, BizTalk Management, BizTalk tools, PowerShell      <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=489&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>For people interested in both PowerShell and BizTalk, I just finished a <em>getting started guide</em> to introduce the basics of the <a href="http://psbiztalk.codeplex.com/" target="_blank">PowerShell provider for BizTalk</a> (version 1.0 beta). The guide can be downloaded from <a href="http://cid-2b880e94db699632.skydrive.live.com/self.aspx/PowerShell.BizTalk/v1.0.0/PSBizTalk%20getting%20started%20guide.pdf" target="_blank">here</a>.</p>
<br /> Tagged: BizTalk, BizTalk Management, BizTalk tools, PowerShell <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/489/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/489/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/489/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/489/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/489/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/489/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/489/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/489/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/489/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/489/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=489&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/11/10/powershell-provider-for-biztalk-getting-started-guide/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>
	</item>
		<item>
		<title>PowerShell Provider 1.0 (Beta) released</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/11/06/powershell-provider-1-0-beta-released/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/11/06/powershell-provider-1-0-beta-released/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 15:25:38 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[BizTalk Management]]></category>
		<category><![CDATA[BizTalk tools]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/2009/11/06/powershell-provider-1-0-beta-released/</guid>
		<description><![CDATA[After a couple of months of hard work (mainly in the evenings  ) we are very proud to announce the beta release of the PowerShell provider for BizTalk.
The setup (and source) can be downloaded from codeplex.
I hope BizTalk developers and administrators will find this a useful addition to their toolbox.
In the coming weeks we [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=487&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>After a couple of months of hard work (mainly in the evenings <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> ) <a href="http://psbiztalk.codeplex.com/team/view" target="_blank">we</a> are very proud to announce the beta release of the PowerShell provider for BizTalk.</p>
<p>The <a href="http://psbiztalk.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=35524" target="_blank">setup</a> (and <a href="http://psbiztalk.codeplex.com/SourceControl/ListDownloadableCommits.aspx" target="_blank">source</a>) can be downloaded from codeplex.</p>
<p>I hope BizTalk developers and administrators will find this a useful addition to their toolbox.</p>
<p>In the coming weeks we will provide more information on usage and show some tips.</p>
<br /> Tagged: BizTalk, BizTalk Management, BizTalk tools, PowerShell <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/487/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/487/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/487/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/487/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/487/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/487/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/487/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/487/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/487/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/487/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=487&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/11/06/powershell-provider-1-0-beta-released/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>
	</item>
		<item>
		<title>ExpressionMaximizer</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/10/30/expressionmaximizer/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/10/30/expressionmaximizer/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 15:16:15 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[BizTalk tools]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Orchestrations]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/2009/10/30/expressionmaximizer/</guid>
		<description><![CDATA[A bigger expression shape window is a feature that almost always appears on “next version of BizTalk wish lists”.
Every time Microsoft releases a new version of BizTalk we are all very disappointed that they did not make the expression window resizable or at least bigger.
There are rumors that this is done to discourage developers to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=479&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>A bigger expression shape window is a feature that almost always appears on “<a href="http://geekswithblogs.net/LeonidGaneline/archive/2009/04/01/biztalk-what-features-we-would-like-to-see-in-future.aspx" target="_blank">next version of BizTalk wish lists</a>”.</p>
<p>Every time Microsoft releases a new version of BizTalk we are all very disappointed that they did not make the expression window resizable or at least bigger.</p>
<p>There are rumors that this is done to discourage developers to write a lot of code in those windows and move to external assemblies with helper classes instead.</p>
<p>Although I agree with that I still think it would be very nice to have a bigger window occasionally.</p>
<p>Like the “<a href="http://biztalkmessages.vansplunteren.net/2009/04/05/orchestration-variable-retriever-functoid-and-why-you-should-not-use-it/" target="_blank">Orchestration Variable Retriever Functoid</a>” this was on my “experimental things to do list” for a long time. I never had or took the chance to try it until BizTalk king <a href="http://www.biztalkgurus.com/blogs/biztalk/default.aspx" target="_blank">Stephen W. Thomas</a> announced <a href="http://www.biztalkgurus.com/blogs/biztalk/archive/2009/10/28/got-a-great-biztalk-tip-or-trick-and-you-could-win-richard-seroter-s-soa-patterns-book.aspx" target="_blank">his competition</a> for the best BizTalk tip or trick.</p>
<p>Of course I want to join this competition so I started coding. Now that it is finished I must admit it has become quite a hack but it seems to work <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p>
<p>Anyway the “ExpressionMaximizer” will be my entry for the competition.</p>
<p><strong><span style="text-decoration:underline;">A quick walkthrough:</span></strong></p>
<p>I have an orchestration with an expression shape containing a lot of code:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/10/orchestration.png" target="_blank"><img style="display:inline;border-width:0;" title="orchestration" src="http://biztalkmessages.files.wordpress.com/2009/10/orchestration_thumb.png?w=260&#038;h=131" border="0" alt="orchestration" width="260" height="131" /></a></p>
<p>I double click the expression shape to open it (in normal mode):</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/10/normal_expressionwindow.png" target="_blank"><img style="display:inline;border-width:0;" title="normal_expressionwindow" src="http://biztalkmessages.files.wordpress.com/2009/10/normal_expressionwindow_thumb.png?w=260&#038;h=204" border="0" alt="normal_expressionwindow" width="260" height="204" /></a></p>
<p>With expression window still open I press CTRL+SHIFT+ALT+M (nice key combination <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ) and ……:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/10/maximized_expressionwindow.png" target="_blank"><img style="display:inline;border-width:0;" title="maximized_expressionwindow" src="http://biztalkmessages.files.wordpress.com/2009/10/maximized_expressionwindow_thumb.png?w=260&#038;h=204" border="0" alt="maximized_expressionwindow" width="260" height="204" /></a></p>
<p>I have a big expression window where I can type many long lines of code!!!!</p>
<p>Everything is back to normal when you close the window and open it again.</p>
<p>Note that you first have to open the expression shape before pressing the key combination.</p>
<p><span style="text-decoration:underline;"><strong>Want to try it yourself?<br />
</strong></span><span style="font-size:xx-small;">(description below is based on Visual Studio 2008)</span></p>
<p>- Download <a href="http://cid-2b880e94db699632.skydrive.live.com/self.aspx/ExpressionMaximizer/ExpressionMaximizer.zip" target="_blank">this zip file</a> and extract it somewhere.<br />
- Click ‘Tools’ –&gt; ‘External Tools…’<br />
- Press the &#8216;Add&#8217; button<br />
- Type a title, e.g. &#8216;Expression Window Maximizer&#8217;<br />
- Fill in the command text box by browsing to the extracted ‘ExpressionMaximizer.exe&#8217;</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/10/externaltools.png" target="_blank"><img style="display:inline;border-width:0;" title="ExternalTools" src="http://biztalkmessages.files.wordpress.com/2009/10/externaltools_thumb.png?w=260&#038;h=257" border="0" alt="ExternalTools" width="260" height="257" /></a></p>
<p>- Press the &#8216;OK&#8217; button<br />
- Select ‘Tools’ –&gt; ‘Customize&#8230;’<br />
- Press the &#8216;Keyboard&#8230;&#8217; button<br />
- In the &#8216;Show commands containing:&#8217; text box type &#8216;Tools.External&#8217;<br />
- Select the correct &#8216;Tools.ExternalCommandX&#8217; from the list. <span style="font-size:xx-small;">(You need to find out the correct entry by counting the external tools in the Tools menu).</span><br />
- Click in the text box &#8216;Press shortcut keys:&#8217; to set the focus to it.<br />
- Press CTRL+ALT+SHIFT+M<br />
- Click the &#8216;Assign&#8217; button.</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/10/customize.png" target="_blank"><img style="display:inline;border-width:0;" title="Customize" src="http://biztalkmessages.files.wordpress.com/2009/10/customize_thumb.png?w=260&#038;h=160" border="0" alt="Customize" width="260" height="160" /></a></p>
<p>- Press the &#8216;Ok&#8217; button.<br />
- Press the &#8216;Close&#8217; button.</p>
<p>I tried this on ‘Windows Server 2008 R2/VS2008&#8242; and ‘Windows Server 2003 R2/VS2005’ without problems but I still take no responsibility for malformed windows or other disasters <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  After all it is a big hack!</p>
<p>If you’re interested you can find the (VS2008) source code <a href="http://cid-2b880e94db699632.skydrive.live.com/self.aspx/ExpressionMaximizer/ExpressionMaximizer.Source.zip" target="_blank">here</a>.</p>
<br /> Tagged: BizTalk, BizTalk tools, Development, Orchestrations <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/479/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/479/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/479/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/479/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/479/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/479/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/479/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/479/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/479/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/479/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=479&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/10/30/expressionmaximizer/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/10/orchestration_thumb.png" medium="image">
			<media:title type="html">orchestration</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/10/normal_expressionwindow_thumb.png" medium="image">
			<media:title type="html">normal_expressionwindow</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/10/maximized_expressionwindow_thumb.png" medium="image">
			<media:title type="html">maximized_expressionwindow</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/10/externaltools_thumb.png" medium="image">
			<media:title type="html">ExternalTools</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/10/customize_thumb.png" medium="image">
			<media:title type="html">Customize</media:title>
		</media:content>
	</item>
		<item>
		<title>Introducing the BizTalk PowerShell Provider</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/10/29/introducing-the-biztalk-powershell-provider/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/10/29/introducing-the-biztalk-powershell-provider/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 09:15:21 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[PowerShell]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/2009/10/29/introducing-the-biztalk-powershell-provider/</guid>
		<description><![CDATA[Maxime wrote a nice post to introduce our PowerShell Provider for BizTalk. You can find it here.
There is also a link to a great presentation that they (Michel and Maxime) did at the French BizTalk User Group. The presentation is in the French language. For me that means I had to use the translation dictionary [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=468&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Maxime wrote a nice post to introduce our PowerShell Provider for BizTalk. You can find it <a href="http://maxime-labelle.spaces.live.com/blog/cns!D8D9369449D177DA!145.entry" target="_blank">here</a>.</p>
<p>There is also a link to a great presentation that they (Michel and Maxime) did at the French BizTalk User Group. The presentation is in the French language. For me that means I had to use the translation dictionary a lot <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p>
<br /> Tagged: BizTalk, PowerShell <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/468/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=468&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/10/29/introducing-the-biztalk-powershell-provider/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>
	</item>
		<item>
		<title>Updated sample for my article &#8216;Dealing with base64 encoded XML documents in BizTalk&#8217;</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/10/28/updated-sample-for-my-article-dealing-with-base64-encoded-xml-documents-in-biztalk/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/10/28/updated-sample-for-my-article-dealing-with-base64-encoded-xml-documents-in-biztalk/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 18:00:57 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[Pipelines]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=465</guid>
		<description><![CDATA[Almost a year ago I published my article on a possible way to deal with base64 embedded documents in XML messages.
Since then I received a lot of emails and comments from people that where unable to get the sample up and running. I must admit there are quite a lot manual steps to get from [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=465&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Almost a year ago I published my <a href="http://biztalkmessages.vansplunteren.net/articles/dealing-with-base64/" target="_blank">article</a> on a possible way to deal with base64 embedded documents in XML messages.</p>
<p>Since then I received a lot of emails and comments from people that where unable to get the sample up and running. I must admit there are quite a lot manual steps to get from the downloadable source to a running BizTalk application.</p>
<p>This is why I updated the article. It has links to three downloads now:</p>
<ul>
<li>- <a href="http://cid-2b880e94db699632.skydrive.live.com/self.aspx/Sample.Pipelines/Sample.Pipelines.zip" target="_blank">the sources</a></li>
<li>- <a href="http://cid-2b880e94db699632.skydrive.live.com/self.aspx/Sample.Pipelines/Sample.Pipelines.msi" target="_blank">installable MSI file</a></li>
<li>- <a href="http://cid-2b880e94db699632.skydrive.live.com/self.aspx/Sample.Pipelines/Setup%20Sample.Pipelines.txt" target="_blank">detailed setup instructions for the MSI file.</a></li>
</ul>
<p>I hope this will make life easier for people who want to try it out.</p>
<br /> Tagged: BizTalk, Pipelines <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/465/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/465/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/465/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/465/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/465/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/465/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/465/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/465/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/465/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/465/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=465&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/10/28/updated-sample-for-my-article-dealing-with-base64-encoded-xml-documents-in-biztalk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>
	</item>
		<item>
		<title>BizTalk Server 2006 R2 SP1 Beta version number not updated</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/10/27/biztalk-server-2006-r2-sp1-beta/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/10/27/biztalk-server-2006-r2-sp1-beta/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 22:00:59 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/2009/10/27/biztalk-server-2006-r2-sp1-beta/</guid>
		<description><![CDATA[I just noticed that the BizTalk version number is not updated when you install service pack 1 (Beta) for BizTalk Server 2006 R2.
To bad as I use the version number to quickly lookup what version of BizTalk is installed on a certain (virtual)box. I mainly use the following powershell command to get the version info [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=461&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I just noticed that the BizTalk version number is not updated when you install service pack 1 (Beta) for BizTalk Server 2006 R2.</p>
<p>To bad as I use the version number to quickly lookup what version of BizTalk is installed on a certain (virtual)box. I mainly use the following powershell command to get the version info from the registry:</p>
<p><span style="font-family:Courier New;">get-itemproperty -path &#8216;HKLM:\SOFTWARE\Microsoft\BizTalk Server\3.0&#8242; -name ProductVersion</span></p>
<p>I have published a version number overview table in the past each time a new version or SP was released:</p>
<p><a href="http://biztalkmessages.vansplunteren.net/2009/04/10/biztalk-server-version-number-overview-updated-for-bts2k9/" target="_blank">BizTalk Server version number overview (updated for BTS2K9)</a><br />
<a href="http://biztalkmessages.vansplunteren.net/2008/12/10/biztalk-server-version-number-overview-updated/" target="_blank">BizTalk Server version number overview (updated)</a><br />
<a href="http://biztalkmessages.vansplunteren.net/2008/06/13/biztalk-server-version-number-overview/" target="_blank">BizTalk Server version number overview</a></p>
<p>The table ‘BizTalkDBVersion’ in the BizTalk management database also holds version information for the product and the database. This table is also not affected by the SP installation.</p>
<p>I’m sure this will be fixed in the final version. For now my table looks like this:</p>
<table border="0" cellspacing="0" cellpadding="2" width="402">
<tbody>
<tr>
<td width="193" valign="top"><strong>Product name</strong></td>
<td width="96" valign="top"><strong>Service pack</strong></td>
<td width="111" valign="top"><strong>Version number</strong></td>
</tr>
<tr>
<td width="193" valign="top">BizTalk Server 2004</td>
<td width="96" valign="top"> </td>
<td width="111" valign="top">3.0.4902.0</td>
</tr>
<tr>
<td width="193" valign="top">BizTalk Server 2004</td>
<td width="96" valign="top">SP1</td>
<td width="111" valign="top">3.0.6070.0</td>
</tr>
<tr>
<td width="193" valign="top">BizTalk Server 2004</td>
<td width="96" valign="top">SP2</td>
<td width="111" valign="top">3.0.7405.0</td>
</tr>
<tr>
<td width="193" valign="top">BizTalk Server 2006</td>
<td width="96" valign="top"> </td>
<td width="111" valign="top">3.5.1602.0</td>
</tr>
<tr>
<td width="193" valign="top">BizTalk Server 2006 R2</td>
<td width="96" valign="top"> </td>
<td width="111" valign="top">3.6.1404.0</td>
</tr>
<tr>
<td width="193" valign="top"><em><span style="color:#008000;">BizTalk Server 2006 R2</span></em></td>
<td width="96" valign="top"><em><span style="color:#008000;">SP1 (beta)</span></em></td>
<td width="111" valign="top"><em><span style="color:#008000;">3.6.1404.0</span></em></td>
</tr>
<tr>
<td width="193" valign="top">BizTalk Server 2009 (beta1)</td>
<td width="96" valign="top"> </td>
<td width="111" valign="top">3.8.104.5</td>
</tr>
<tr>
<td width="193" valign="top">BizTalk Server 2009</td>
<td width="96" valign="top"> </td>
<td width="111" valign="top">3.8.368.0</td>
</tr>
<tr>
<td width="193" valign="top"> </td>
<td width="96" valign="top"> </td>
<td width="111" valign="top"> </td>
</tr>
</tbody>
</table>
<br /> Tagged: BizTalk <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/461/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=461&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/10/27/biztalk-server-2006-r2-sp1-beta/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>
	</item>
		<item>
		<title>BizTalk Management Classes Sample</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/10/18/biztalk-management-classes-sample/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/10/18/biztalk-management-classes-sample/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 20:46:30 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[BizTalk 2009]]></category>
		<category><![CDATA[BizTalk Management]]></category>
		<category><![CDATA[BizTalk tools]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/2009/10/18/biztalk-management-classes-sample/</guid>
		<description><![CDATA[In my previous post I wrote about the beta of the BizTalk management classes. 
Every now and then you need to do some BizTalk management things in code. This is where the classes come in very handy.
Last week I wrote a small sample to show and explain the use of the classes to a co-BizTalker. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=460&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>In my previous <a href="http://biztalkmessages.vansplunteren.net/2009/10/01/biztalk-management-classes/" target="_blank">post</a> I wrote about the beta of the <a href="http://psbiztalk.codeplex.com/" target="_blank">BizTalk management classes</a>. </p>
<p>Every now and then you need to do some BizTalk management things in code. This is where the classes come in very handy.</p>
<p>Last week I wrote a small sample to show and explain the use of the classes to a co-BizTalker. He was excited about this but told me it would be a good thing if we provide some more sample code. I’m sure we (me and the <a href="http://psbiztalk.codeplex.com/team/view" target="_blank">great people</a> I work with on this project) will come up with a lot more information when we release the final version. For now I will only post this small sample.</p>
<p>It shows that a lot of “BizTalk management work” can be done using only a couple lines of code. Also this is done in a uniform way (using a single API). </p>
<p>This is what the sample does:</p>
<ul>
<li>connect to a BizTalk group (management database).</li>
<li>create an application.</li>
<li>add a BizTalk assembly (resource) to the application.</li>
<li>import a binding file.</li>
<li>creates and exports an MSI file from the new application.</li>
<li>Starts the application.</li>
<li>Resets the BizTalk Host.</li>
</ul>
<p>Here is the code:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/10/btsmgmtclasses_sample.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="BTSMgmtClasses_sample" border="0" alt="BTSMgmtClasses_sample" src="http://biztalkmessages.files.wordpress.com/2009/10/btsmgmtclasses_sample_thumb.png?w=260&#038;h=71" width="260" height="71" /></a> </p>
<p>As you can see below I only need 8 lines of code to accomplish it. I don’t know how much code this would take when it was done using the “regular” API’s but I’m very sure many more lines are needed.</p>
<p>If you like this please download the beta from codeplex and start using the classes.</p>
<br /> Tagged: BizTalk, BizTalk 2009, BizTalk Management, BizTalk tools <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/460/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/460/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/460/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/460/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/460/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/460/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/460/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/460/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/460/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/460/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=460&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/10/18/biztalk-management-classes-sample/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/10/btsmgmtclasses_sample_thumb.png" medium="image">
			<media:title type="html">BTSMgmtClasses_sample</media:title>
		</media:content>
	</item>
		<item>
		<title>BizTalk management classes</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/10/01/biztalk-management-classes/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/10/01/biztalk-management-classes/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 01:00:14 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[BizTalk Management]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=454</guid>
		<description><![CDATA[A couple of months ago I joined with Michel Hubert and Maxime Labelle to build the next version of the Powershell provider for BizTalk. (Also see my earlier posts here and here).
We´re currently very close to releasing the first beta of this new version.
The provider now uses a separate object layer for BizTalk management tasks. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=454&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>A couple of months ago I joined with Michel Hubert and Maxime Labelle to build the next version of the <a href="http://psbiztalk.codeplex.com/" target="_blank">Powershell provider for BizTalk</a>. (Also see my earlier posts <a href="http://biztalkmessages.vansplunteren.net/2009/05/15/a-new-life-for-my-powershell-provider-for-biztalk/" target="_blank">here</a> and <a href="http://biztalkmessages.vansplunteren.net/powershell-provider-for-biztalk/" target="_blank">here</a>).</p>
<p>We´re currently very close to releasing the first beta of this new version.</p>
<p>The provider now uses a separate object layer for BizTalk management tasks. The layer is called ‘BizTalk Factory Management Automation’. This new architecture allows us to focus on provider functionality in the provider codebase and delegate all BizTalk related stuff to the object layer.</p>
<p>Nice things:</p>
<ul>
<li>The object layer hides us from all the different technologies and API’s (WMI, OMExplorer, etc.) that you can come across when doing BizTalk management from code. The object layer is a wrapper around all this stuff and provides a <strong>uniform </strong>way to do BizTalk management from .Net code.</li>
<li>It is not solely aimed and meant for the provider but can be used stand alone or from your own projects.</li>
</ul>
<p>The object layer is already in Beta and can be downloaded from <a href="http://psbiztalk.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=33070" target="_blank">here</a>. Samples and instructions on how to use this will be provided later.</p>
<p>A big compliment to Maxime who is mainly responsible for the object layer and did almost all of the coding!</p>
<br /> Tagged: BizTalk, BizTalk Management, PowerShell <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/454/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/454/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/454/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/454/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/454/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/454/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/454/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/454/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/454/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/454/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=454&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/10/01/biztalk-management-classes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>
	</item>
		<item>
		<title>BizTalk development on Server 2008 R2</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/09/30/biztalk-development-on-server-2008-r2/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/09/30/biztalk-development-on-server-2008-r2/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 18:00:50 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[BizTalk 2009]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=443</guid>
		<description><![CDATA[Microsoft recently RTM-ed a new release of their server operation system ‘Windows Server 2008 R2’. Although debatable I think they did the right thing when they decided to only release a 64 bit version.
From a developer perspective however there is a nasty side effect that you should be aware of. This is caused by the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=443&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Microsoft recently RTM-ed a new release of their server operation system ‘Windows Server 2008 R2’. Although debatable I think they did the right thing when they decided to <a href="http://www.microsoft.com/windowsserver2008/en/us/R2-scalability-reliability.aspx#CPU">only release a 64 bit version</a>.</p>
<p>From a developer perspective however there is a nasty side effect that you should be aware of. This is caused by the fact that there is no MS virtualization tool running on a client OS that supports 64 bit guests.</p>
<p>Most developers follow the best practice to do development in a virtual environment and use their host for e-mail, word processing, etc.</p>
<p>In my case the host was Windows 7. I used my server running hyper-v to initially build the a new virtual BizTalk 2009 development box running on Windows Server 2008 R2. After that was done I wanted to transfer the .vhd to my laptop and run it from there.</p>
<p>As far as I know the MS options for running the VM are:</p>
<ul>
<li>Microsoft Virtual PC 2007</li>
<li>Microsoft Virtual Server 2005 R2</li>
<li>Microsoft Windows Virtual PC (currently RC)</li>
</ul>
<p>As none of these options support 64 bit guest meaning I can’t use a Microsoft Virtualization tool to run my new Windows Server 2008 R2 development environment. Hyper-V supports 64 bit guest OS but doesn’t run on Windows 7.</p>
<p>The “not so nice” solutions left for me were:</p>
<ul>
<li>Use a non MS virtualization tool (like sun virtual box or VMware) that support 64 bit guests.</li>
<li>Replace Windows 7 on my host with windows server 2008 hyper-V.</li>
<li>Rebuild the virtual machine and use another 32 bit OS.</li>
</ul>
<br /> Tagged: BizTalk, BizTalk 2009, Development, Visual Studio <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/443/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/443/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/443/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/443/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/443/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/443/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/443/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/443/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/443/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/443/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=443&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/09/30/biztalk-development-on-server-2008-r2/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>
	</item>
		<item>
		<title>Missing orchestration template</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/09/30/missing-orchestration-template/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/09/30/missing-orchestration-template/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 18:00:10 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[BizTalk 2009]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=451</guid>
		<description><![CDATA[Recently I had some trouble when I wanted to create a new orchestration in Visual Studio 2008. The template for the orchestration was gone while the other templates (schemas, maps, etc.) where visible:

I could easily fix this by repairing the BizTalk installation but I must say I do encounter more strange problems with BizTalk 2009 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=451&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Recently I had some trouble when I wanted to create a new orchestration in Visual Studio 2008. The template for the orchestration was gone while the other templates (schemas, maps, etc.) where visible:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/09/noorchestration.png" target="_blank"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="no orchestration" src="http://biztalkmessages.files.wordpress.com/2009/09/noorchestration_thumb.png?w=260&#038;h=166" border="0" alt="no orchestration" width="260" height="166" /></a></p>
<p>I could easily fix this by repairing the BizTalk installation but I must say I do encounter more strange problems with BizTalk 2009 and Visual Studio 2008. It looks like fixes and patches to VS mess up the BizTalk 2009 functionality.</p>
<p>This is probably related to the problem (and solution) described in <a href="http://www.pluralsight.com/community/blogs/matt/archive/2009/09/22/biztalk-project-creation-fails-or-why-did-biztalk-in-vs-2008-break.aspx">Matt Milners post</a>. I didn’t try it but I think Matt’s registry solution would have also fixed the issue above.</p>
<br /> Tagged: BizTalk, BizTalk 2009, Visual Studio <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/451/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/451/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/451/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/451/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/451/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=451&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/09/30/missing-orchestration-template/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/09/noorchestration_thumb.png" medium="image">
			<media:title type="html">no orchestration</media:title>
		</media:content>
	</item>
		<item>
		<title>Useful command line tools while performance testing</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/08/11/useful-command-line-tools-while-performance-testing/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/08/11/useful-command-line-tools-while-performance-testing/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 18:00:03 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Test]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=438</guid>
		<description><![CDATA[Finding the optimal performance for a BizTalk configuration can be hard and time consuming. There are a lot of possible configurations and adaptable settings. Performance testing is a matter of starting tests over and over again using different sets of parameters. Before a new test is started the servers should be reinitialized to make sure [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=438&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Finding the optimal performance for a BizTalk configuration can be hard and time consuming. There are a lot of possible configurations and adaptable settings. Performance testing is a matter of starting tests over and over again using different sets of parameters. Before a new test is started the servers should be reinitialized to make sure every test will have the same starting point. I found the below command line tools and commands very useful when doing this. I created a script to automate this initialization process so that boring manual work before each test is minimal.</p>
<p><strong><span style="text-decoration:underline;">First some obvious commands:</span></strong></p>
<p><span style="font-family:Courier New;color:#808080;font-size:xx-small;">net stop &#8220;BizTalk Service BizTalk Group : BizTalkServerApplication&#8221;</span></p>
<p><span style="font-family:Courier New;color:#808080;font-size:xx-small;">net start &#8220;BizTalk Service BizTalk Group : BizTalkServerApplication&#8221;</span></p>
<p><span style="font-family:Courier New;color:#808080;font-size:xx-small;">iisreset /stop</span></p>
<p><span style="font-family:Courier New;color:#808080;font-size:xx-small;">iisreset /start</span></p>
<p>Use these commands to respectively:</p>
<ul>
<li>stop host instance</li>
<li>start host instance</li>
<li>stop IIS</li>
<li>start IIS</li>
</ul>
<p><strong><span style="text-decoration:underline;">PSService</span></strong></p>
<p>PSService.exe makes it easy to start and stop services on remote systems. If you for example want to stop or start the SQL Server agent on a remote SQL server hosting the BizTalk databases you can use:</p>
<p><span style="font-family:Courier New;color:#808080;font-size:xx-small;">psservice.exe </span><a href="//\\MySqlServer"><span style="font-family:Courier New;color:#808080;font-size:xx-small;">\\MySqlServer</span></a><span style="font-family:Courier New;color:#808080;font-size:xx-small;"> stop SQLServerAgent</span></p>
<p><span style="font-family:Courier New;color:#808080;font-size:xx-small;">psservice.exe </span><a href="//\\MySqlServer"><span style="font-family:Courier New;color:#808080;font-size:xx-small;">\\MySqlServer</span></a><span style="font-family:Courier New;color:#808080;font-size:xx-small;"> start SQLServerAgent</span></p>
<p>PSService is part of the SysInternals toolkit and can be downloaded from <a href="http://technet.microsoft.com/en-us/sysinternals/bb897542.aspx" target="_blank">here</a></p>
<p><strong><span style="text-decoration:underline;">Clear event logs</span></strong></p>
<p>I also wanted to start my tests with clear and clean eventlogs. I found the WMI ‘<a href="http://www.scriptinganswers.com/vault/Event%20Logs%20and%20Logging/Clear%20Event%20Log.zip" target="_blank">Clear event log</a>’ script by Mark Fairpo for this purpose. To clear event logs I used this command:</p>
<p><span style="font-family:Courier New;color:#808080;font-size:xx-small;">ClearEvt.wsf Application Security System</span></p>
<p><strong><span style="text-decoration:underline;">Performance monitoring</span></strong></p>
<p>To be able to monitor and see test results after the has finished we need to define some counter logs in performance monitor. Those logs store performance counter information during the test. Examples are memory usage, network usage, BizTalk spool table, etc, etc. You can start and stop those logs from the command line using the logman.exe tool.</p>
<p>The commands are:</p>
<p><span style="font-family:Courier New;color:#808080;font-size:xx-small;">Logman.exe Stop &#8220;BizTalk Performance Counters&#8221;</span></p>
<p><span style="font-family:Courier New;color:#808080;font-size:xx-small;">Logman.exe Start &#8220;BizTalk Performance Counters&#8221;</span></p>
<p>This will stop and start the counter log named “BizTalk Performance Counters”</p>
<p><strong><span style="text-decoration:underline;">Clear Messagebox and Tracking databases</span></strong></p>
<p>Finally it is very important to start each test with a clean messagebox and tracking database. You easily achieve this by executing the following query:</p>
<p><span style="font-family:Courier New;color:#808080;font-size:xx-small;">USE BizTalkMsgBoxDb<br />
GO </span></p>
<p><span style="font-family:Courier New;color:#808080;font-size:xx-small;">EXEC dbo.bts_CleanupMsgbox<br />
GO </span></p>
<p><span style="font-family:Courier New;color:#808080;font-size:xx-small;">USE BizTalkDTADb<br />
GO </span></p>
<p><span style="font-family:Courier New;color:#808080;font-size:xx-small;">exec dbo.dtasp_CleanHMData<br />
GO</span></p>
<p>Be aware that the first mentioned stored procedure doesn’t do anything by default (it is an empty stored procedure). You need to load it the first time from the file ‘msgbox_cleanup_logic.sql’ located in the ‘Schema’ sub folder of the BizTalk program folder. Also be careful with the parameters you provide to this stored procedure. If you use the wrong parameters all subscriptions will be wiped and you’ll have redeploy all BizTalk applications.</p>
<p>If you put the above SQL statements in a script you use it from the command line, like:</p>
<p><span style="font-family:Courier New;color:#808080;font-size:xx-small;">sqlcmd.exe -S MySqlServer -i d:\testscripts\init_bts_db.sql</span></p>
<p>I hope these commands are useful to other people too.</p>
<br /> Tagged: BizTalk, Performance, Test <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/438/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/438/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/438/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/438/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/438/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/438/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/438/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/438/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/438/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/438/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=438&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/08/11/useful-command-line-tools-while-performance-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>
	</item>
		<item>
		<title>Random File Message Creator Component for LoadGen</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/06/18/random-file-message-creator-component-for-loadgen/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/06/18/random-file-message-creator-component-for-loadgen/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 14:41:15 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Test]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/2009/06/18/random-file-message-creator-component-for-loadgen/</guid>
		<description><![CDATA[LoadGen is my favorite tool to perform automatic testing in BizTalk. It is easy to configure and extensible. 
When I want to mimic the characteristics of the BizTalk production environment in a test lab as close as possible, LoadGen is the way to go. The load, in terms of number of messages per time unit, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=437&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>LoadGen is my favorite tool to perform automatic testing in BizTalk. It is easy to configure and extensible. </p>
<p>When I want to mimic the characteristics of the BizTalk production environment in a test lab as close as possible, LoadGen is the way to go. The load, in terms of number of messages per time unit, can be easily set and tuned by changing values in the LoadGen configuration file.</p>
<p>As said before I want to get as close as possible to the production environment. This also means that I want to use messages that are close to (or better equal to) the production environment.</p>
<p>LoadGen comes with template functionality that you can use to change the message content before passing the message on to BizTalk. This functionality is a bit limited to my opinion.</p>
<p>What I wanted to do is copy a batch of messages from production and use them in my test. To be able to do this I had to write a simple ‘MessageCreator’ component for LoadGen. </p>
<p>A ‘MessageCreator’ is a component that implements the ‘IMessageCreator’ interface found in LoadGen.dll. The ‘MessageCreator’ is called whenever the LoadGen run-time needs a new message. Its task is to create the message and pass it back to the run-time. After that the run-time passes the message to the configured transport components. (Actually the ‘MessageCreator’ fills an internal queue from which other threads dequeue messages).</p>
<p>The default ‘MessageCreator’ that comes with LoadGen is only capable of using a single file for input so I created a new one that:</p>
<ul>
<li>- builds a list of files in a specific folder </li>
<li>- random picks a file from the list </li>
<li>- uses this file to create the new message </li>
</ul>
<p>The code is straightforward. The ‘CreateNewMessage’ is the main method responsible for creating the message:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/06/image.png" target="_blank"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://biztalkmessages.files.wordpress.com/2009/06/image_thumb.png?w=260&#038;h=141" width="260" height="141" /></a> </p>
<p>It calls two helper methods ‘CreateFileList’ and ‘GetFileFromList’:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/06/image1.png" target="_blank"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://biztalkmessages.files.wordpress.com/2009/06/image_thumb1.png?w=260&#038;h=134" width="260" height="134" /></a> </p>
<p>I used the following LoadGen configuration file for my test:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/06/image2.png" target="_blank"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="http://biztalkmessages.files.wordpress.com/2009/06/image_thumb2.png?w=260&#038;h=145" width="260" height="145" /></a> </p>
<p>The ‘MessageCreator’ is put in synchronous mode to make sure it create unique messages for all the client threads.</p>
<p>The ‘SrcFilePath’ path contains a pointer to a file where I actually only need the folder. Unfortunately LoadGen fails when there is no file at the end of the path. Internally I only use the path. The same applies to ‘TemplateFilePath’. I don’t need that here but the run-time for this setting.</p>
<p>In this sample I skipped the implementation of the ‘OptimizeFileSizeLimit’ property to keep things simple. I also did not need in in my test. The ‘OptimizeFileSizeLimit’ can be configured in the configuration file and basically tells the LoadGen run-time whether or not it is dealing with a large messages. If this is the case the creation of the message might be performed in another, more optimized way. The samples provided with LoadGen use this to skip file transport component and directly stream from the message component.</p>
<pre>&#160;</pre>
<br /> Tagged: BizTalk, Performance, Test <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/437/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/437/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/437/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/437/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/437/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/437/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/437/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/437/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/437/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/437/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=437&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/06/18/random-file-message-creator-component-for-loadgen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/06/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/06/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/06/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Was promoted</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/06/15/was-promoted/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/06/15/was-promoted/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 15:00:26 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[Messaging]]></category>
		<category><![CDATA[Orchestrations]]></category>
		<category><![CDATA[Pipelines]]></category>

		<guid isPermaLink="false">http://biztalkmessages.vansplunteren.net/?p=406</guid>
		<description><![CDATA[Ever wanted to know in a send pipeline if a property was promoted before? The BizTalk API comes with an object called &#8216;ContextPropertyType&#8217; which you can use for this purpose.
I have a very simple schema and corresponding instance:


Above message travels through BizTalk using the following path:
receive port -&#62; orchestration -&#62; send port
I defined the &#8216;Firstname&#8217; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=406&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Ever wanted to know in a send pipeline if a property was promoted before? The BizTalk API comes with an object called &#8216;ContextPropertyType&#8217; which you can use for this purpose.</p>
<p>I have a very simple schema and corresponding instance:</p>
<p><img class="alignnone size-full wp-image-410" style="border:0;" title="waspromoted_schema" src="http://biztalkmessages.files.wordpress.com/2009/06/waspromoted_schema1.png?w=192&#038;h=92" alt="waspromoted_schema" width="192" height="92" /></p>
<p><img class="alignnone size-full wp-image-413" style="border:0;" title="waspromoted_schema_instance" src="http://biztalkmessages.files.wordpress.com/2009/06/waspromoted_schema_instance.png?w=365&#038;h=83" alt="waspromoted_schema_instance" width="365" height="83" /></p>
<p>Above message travels through BizTalk using the following path:</p>
<p>receive port -&gt; orchestration -&gt; send port</p>
<p>I defined the &#8216;Firstname&#8217; element as promoted property to have it promoted by the out-of-the-box XmlReceive pipeline. After that the message is sent to the message box and picked up by the orchestration to do some processing. Next the orchestration will send the message to the message box again using a send shape. Finally the send port picks up the message and sends it to some URI using an adapter.</p>
<p>In the send port I used a custom pipeline containing a pipeline component with this code:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/06/waspromoted_code1.png" target="_blank"><img class="alignnone size-thumbnail wp-image-419" style="border:0;" title="waspromoted_code" src="http://biztalkmessages.files.wordpress.com/2009/06/waspromoted_code1.png?w=400&#038;h=230" alt="waspromoted_code" width="400" height="230" /></a></p>
<p> After the message has been picked up by the send port the messaging engine will alter the context of the message. The &#8216;Firstname&#8217; element that was promoted before is not promoted anymore now. To prove this I call the IsPromoted method for the specific property (see code above).</p>
<p>So what if you want to know if the property was promoted before? This is where the ContextPropertyType object comes in. Together with the &#8216;GetPropertyType&#8217; method on the context object I&#8217;m able to find the status of the property.</p>
<p>Running this example shows the following output in DebugView:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/06/waspromoted_debug_view1.png" target="_blank"><img class="alignnone size-medium wp-image-422" style="border:0;" title="waspromoted_debug_view" src="http://biztalkmessages.files.wordpress.com/2009/06/waspromoted_debug_view1.png?w=300&#038;h=40" alt="waspromoted_debug_view" width="300" height="40" /></a></p>
<p> As you can see the PropertyType has a value equal to ContextPropertyType.WasPromoted. In the above sample I used an orchestration in the middle but the same will also apply to messaging only scenarios.</p>
<p>Although I recently made use of this API while implementing a very simple repair and resubmit feature, there might not be so many real world scenarios where one would use this. At least I couldn&#8217;t think of many. (Suggestion? Ping me, please.).  Also be aware that is an undocumented feature for which the BizTalk help states it is for internal use only. This basically means Microsoft will not guarantee any backward compatibility for this when new versions or SPs are released.</p>
<br /> Tagged: BizTalk, Messaging, Orchestrations, Pipelines <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/406/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/406/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/406/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/406/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/406/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=406&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/06/15/was-promoted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/06/waspromoted_schema1.png" medium="image">
			<media:title type="html">waspromoted_schema</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/06/waspromoted_schema_instance.png" medium="image">
			<media:title type="html">waspromoted_schema_instance</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/06/waspromoted_code1.png?w=150" medium="image">
			<media:title type="html">waspromoted_code</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/06/waspromoted_debug_view1.png?w=300" medium="image">
			<media:title type="html">waspromoted_debug_view</media:title>
		</media:content>
	</item>
		<item>
		<title>Warning on &#8216;maxConnections&#8217; and &#8216;autoConfig&#8217; parameter</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/05/28/warning-on-maxconnections-and-autoconfig-parameter/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/05/28/warning-on-maxconnections-and-autoconfig-parameter/#comments</comments>
		<pubDate>Thu, 28 May 2009 12:50:45 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://biztalkmessages.vansplunteren.net/?p=397</guid>
		<description><![CDATA[When optimizing a BizTalk environment one thing you can do is change the value for the &#8216;maxConnections&#8217; setting. As stated on the MSDN site (http://msdn.microsoft.com/en-us/library/aa561380.aspx) this setting determines how many connections can be made to a specific IP address. The same article on MSDN also contains the following text:
 &#8221;If the BizTalk Server computer is running ASP.NET 2.0 or [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=397&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>When optimizing a BizTalk environment one thing you can do is change the value for the &#8216;maxConnections&#8217; setting. As stated on the <a href="http://msdn.microsoft.com/en-us/library/aa561380.aspx" target="_blank">MSDN site</a> (<a href="http://msdn.microsoft.com/en-us/library/aa561380.aspx">http://msdn.microsoft.com/en-us/library/aa561380.aspx</a>) this setting determines how many connections can be made to a specific IP address. The same article on MSDN also contains the following text:</p>
<p><em> &#8221;If the BizTalk Server computer is running ASP.NET 2.0 or later then you can set <strong>autoConfig=true</strong>in the processModel section of the Machine.config file to automatically configure the following settings to achieve optimal performance based on the machine configuration&#8221;</em></p>
<p>This totally contradicts the following statement in the <a href="http://www.wrox.com/WileyCDA/WroxTitle/Professional-BizTalk-Server-2006.productCd-0470046422.html">best BizTalk book around</a>:</p>
<p><em>&#8220;ASP.NET 2.0 introduced a self-tuning feature to counter this issue whereby it will set the maxConnection value to a sensible value. This only applies to HTTP or Web Service requests created within ASP.NET 2.0 not BizTalk, so the above still applies to BizTalk solutions.&#8221;</em></p>
<p>I have tested this on my development box and it turned out that the MSDN content is not correct. The &#8217;autoConfig&#8217; setting does not apply to BizTalk.</p>
<br /> Tagged: BizTalk, Performance <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/397/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/397/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/397/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/397/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/397/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/397/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/397/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/397/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/397/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/397/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=397&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/05/28/warning-on-maxconnections-and-autoconfig-parameter/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>
	</item>
		<item>
		<title>A new life for my PowerShell provider for BizTalk</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/05/15/a-new-life-for-my-powershell-provider-for-biztalk/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/05/15/a-new-life-for-my-powershell-provider-for-biztalk/#comments</comments>
		<pubDate>Fri, 15 May 2009 14:01:35 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[PowerShell]]></category>

		<guid isPermaLink="false">http://biztalkmessages.vansplunteren.net/?p=393</guid>
		<description><![CDATA[A couple of weeks ago I was contacted by Maxime Labelle and Michel Hubert (BizTalk MVP) who accidentally found my PowerShell provider for BizTalk.  The funny coincidence is that they had just finished their own version of the provider without knowing about the existence of mine.  
I didn&#8217;t take  much time for us to decide to join forces. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=393&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago I was contacted by Maxime Labelle and Michel Hubert (BizTalk MVP) who accidentally found my <a href="http://biztalkmessages.vansplunteren.net/powershell-provider-for-biztalk/" target="_blank">PowerShell provider for BizTalk</a>.  The funny coincidence is that they had just finished their own version of the provider without knowing about the existence of mine.  </p>
<p>I didn&#8217;t take  much time for us to decide to join forces. We are currently in the process of merging the two source bases and planning for the next release. </p>
<p>I&#8217;m very happy to have the chance to work together with Maxime and Michel on this project. I also think the merge brings benefits like higher (code) quality and  higher release frequency.</p>
<p>This  next release will be the one and only PowerShell provider for BizTalk (I hope) and will be available on <a href="http://psbiztalk.codeplex.com/" target="_blank">codeplex</a>. My version will be downloadable from <a href="http://biztalkmessages.vansplunteren.net/powershell-provider-for-biztalk/" target="_blank">here</a> until the first joined effort release is available.</p>
<br /> Tagged: BizTalk, PowerShell <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/393/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/393/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/393/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/393/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/393/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/393/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/393/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/393/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/393/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/393/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=393&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/05/15/a-new-life-for-my-powershell-provider-for-biztalk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>
	</item>
		<item>
		<title>Unleashing the spool table (well at least partly)</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/05/13/unleashing-the-spool-table-well-at-least-partly/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/05/13/unleashing-the-spool-table-well-at-least-partly/#comments</comments>
		<pubDate>Wed, 13 May 2009 19:53:05 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[BizTalk 2009]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=360</guid>
		<description><![CDATA[Today was one of those days that I couldn’t resist my need to find out what happens under the BizTalk covers. I think every BizTalk developer recognizes this.
In particular I wanted to examine the context properties of message stored in the spool table. The reason I wanted to do this is a little bit irrelevant [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=360&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Today was one of those days that I couldn’t resist my need to find out what happens under the BizTalk covers. I think every BizTalk developer recognizes this.</p>
<p>In particular I wanted to examine the context properties of message stored in the spool table. The reason I wanted to do this is a little bit irrelevant for now and might eventually come back in a future post or article.</p>
<p>Anyway, the spool table has a very simple structure:</p>
<p>CREATE TABLE [dbo].[Spool](<br />
    [uidMessageID ] [uniqueidentifier] NOT NULL,<br />
    [UserName] [sysname] NOT NULL,<br />
    [PublishingServer] [sysname] NOT NULL,<br />
    [OriginatorSID] [sysname] NOT NULL,<br />
    [OriginatorPID] [nvarchar](256) NOT NULL,<br />
    [dtTimeStamp] [datetime] NOT NULL,<br />
    [dtExpiration] [datetime] NULL,<br />
    [nvcMessageType] [nvarchar](128) NULL,<br />
    [nNumParts] [int] NOT NULL,<br />
    [uidBodyPartID] [uniqueidentifier] NULL,<br />
    [nvcBodyPartName] [nvarchar](256) NULL,<br />
    [nCounter] [int] NOT NULL,<br />
    [imgContext] [image] NULL )</p>
<p>The column I was interested in is called ‘imgContext’. For each message this column stores an encoded serialized value of the collection of context properties, something like this:</p>
<p>0xC4E0906C1849D311A24200C04F60A5330500000074000000680074007 etc, etc….</p>
<p>For my experiment I wanted to work in code with IBaseMessageContext interface much like the way we do when coding custom pipeline components.</p>
<p>So the question was how can I directly create a IBaseMessageContext instance from ‘0xC4E0906C1849D311A……’?</p>
<p>After clicking around for quite a while in Reflector I was able to create a very simple console application that gave me access to the context of the message. The only thing I needed to provide was the Message ID which can be fetched from the column ‘uidMessageID’ or the BizTalk Administration Console. Here is the code:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/05/image2.png" target="_blank"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2009/05/image_thumb2.png?w=260&#038;h=175" border="0" alt="image" width="260" height="175" /></a></p>
<p>Running writes the context properties to the console:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/05/image3.png" target="_blank"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2009/05/image_thumb3.png?w=260&#038;h=139" border="0" alt="image" width="260" height="139" /></a></p>
<p>I hope this code will help someone who, like me, also has the need to go beyond the BizTalk borders <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>A couple of notes:</p>
<ul>
<li>This code is only for &#8216;research&#8217; purposes and should never be used in production environments or any other purpose.</li>
<li>If you want to do this. Make sure the message stays in the spool table. If the message is processed by BizTalk and everything went fine the message will be deleted from the spool table. To prevent this you can set a breakpoint on the processing orchestration, create an error or disable the BizTalk Sql agent jobs.</li>
<li>The code was developed using BizTalk 2009 but should also work in previous versions.</li>
</ul>
<br /> Tagged: BizTalk, BizTalk 2009 <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/360/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=360&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/05/13/unleashing-the-spool-table-well-at-least-partly/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/05/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/05/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>BizTalk Server version number overview (updated for BTS2K9)</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/04/10/biztalk-server-version-number-overview-updated-for-bts2k9/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/04/10/biztalk-server-version-number-overview-updated-for-bts2k9/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 09:47:44 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[BizTalk 2009]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/2009/04/10/biztalk-server-version-number-overview-updated-for-bts2k9/</guid>
		<description><![CDATA[Now that BizTalk Server 2009 is RTM the version number overview table that I posted earlier (here and here) can be updated.
The new table:



Product name
Service pack
Version number


BizTalk Server 2004
 
3.0.4902.0


BizTalk Server 2004
SP1
3.0.6070.0


BizTalk Server 2004
SP2
3.0.7405.0


BizTalk Server 2006
 
3.5.1602.0


BizTalk Server 2006 R2
 
3.6.1404.0


BizTalk Server 2009 (beta1)
 
3.8.104.5


BizTalk Server 2009

3.8.368.0



As mentioned in the previous post this information will probably also appear in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=352&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Now that BizTalk Server 2009 is RTM the version number overview table that I posted earlier (<a href="http://biztalkmessages.vansplunteren.net/2008/06/13/biztalk-server-version-number-overview/" target="_blank">here</a> and <a href="http://biztalkmessages.vansplunteren.net/2008/12/10/biztalk-server-version-number-overview-updated/" target="_blank">here</a>) can be updated.</p>
<p>The new table:</p>
<table border="0" cellspacing="0" cellpadding="2" width="487">
<tbody>
<tr>
<td width="190" valign="top"><strong>Product name</strong></td>
<td width="94" valign="top"><strong>Service pack</strong></td>
<td width="201" valign="top"><strong>Version number</strong></td>
</tr>
<tr>
<td width="188" valign="top">BizTalk Server 2004</td>
<td width="97" valign="top"> </td>
<td width="200" valign="top">3.0.4902.0</td>
</tr>
<tr>
<td width="187" valign="top">BizTalk Server 2004</td>
<td width="99" valign="top">SP1</td>
<td width="199" valign="top">3.0.6070.0</td>
</tr>
<tr>
<td width="186" valign="top">BizTalk Server 2004</td>
<td width="101" valign="top">SP2</td>
<td width="199" valign="top">3.0.7405.0</td>
</tr>
<tr>
<td width="186" valign="top">BizTalk Server 2006</td>
<td width="102" valign="top"> </td>
<td width="198" valign="top">3.5.1602.0</td>
</tr>
<tr>
<td width="185" valign="top">BizTalk Server 2006 R2</td>
<td width="103" valign="top"> </td>
<td width="198" valign="top">3.6.1404.0</td>
</tr>
<tr>
<td width="185" valign="top">BizTalk Server 2009 (beta1)</td>
<td width="104" valign="top"> </td>
<td width="198" valign="top">3.8.104.5</td>
</tr>
<tr>
<td width="185" valign="top"><strong><em>BizTalk Server 2009</em></strong></td>
<td width="105" valign="top"><strong><em></em></strong></td>
<td width="198" valign="top"><strong><em>3.8.368.0</em></strong></td>
</tr>
</tbody>
</table>
<p>As mentioned in the previous post this information will probably also appear in the the final BizTalk 2009 documentation.</p>
<br /> Tagged: BizTalk, BizTalk 2009 <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/352/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/352/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/352/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/352/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/352/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/352/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/352/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/352/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/352/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/352/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=352&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/04/10/biztalk-server-version-number-overview-updated-for-bts2k9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>
	</item>
		<item>
		<title>Orchestration variable retriever functoid (and why you should not use it)</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/04/05/orchestration-variable-retriever-functoid-and-why-you-should-not-use-it/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/04/05/orchestration-variable-retriever-functoid-and-why-you-should-not-use-it/#comments</comments>
		<pubDate>Sun, 05 Apr 2009 20:22:15 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[Functoid]]></category>
		<category><![CDATA[Map]]></category>
		<category><![CDATA[Orchestrations]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=342</guid>
		<description><![CDATA[This week I spend some time on writing a functoid that retrieves the value of a variable in an orchestration. Lets take a look on the functoid&#8217;s usage first.
Usage
This is the declaration of a string variable &#8216;lastName&#8217; in a very simple test orchestration:

This is the expression shape where the value of that variable is set [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=342&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>This week I spend some time on writing a functoid that retrieves the value of a variable in an orchestration. Lets take a look on the functoid&#8217;s usage first.</p>
<p><strong><span style="text-decoration:underline;">Usage</span></strong></p>
<p>This is the declaration of a string variable &#8216;lastName&#8217; in a very simple test orchestration:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/04/image.png"><img style="border-bottom:0;border-left:0;border-top:0;border-right:0;" src="http://biztalkmessages.files.wordpress.com/2009/04/image-thumb.png?w=222&#038;h=260" border="0" alt="image" width="222" height="260" /></a></p>
<p>This is the expression shape where the value of that variable is set to my last name:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/04/image1.png"><img style="border-bottom:0;border-left:0;border-top:0;border-right:0;" src="http://biztalkmessages.files.wordpress.com/2009/04/image-thumb1.png?w=260&#038;h=121" border="0" alt="image" width="260" height="121" /></a></p>
<p>This is the map that is executed using a transform shape right after the expression shape above. The map contains the variable retriever functoid. It has one parameter that takes the name of the variable to fetch.</p>
<p>Please pay special attention to the icon because that bloody thing took me 50% of the development time. The result shows why I try to stay away from UI development as much as possible. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/04/image2.png"><img style="border-bottom:0;border-left:0;border-top:0;border-right:0;" src="http://biztalkmessages.files.wordpress.com/2009/04/image-thumb2.png?w=260&#038;h=151" border="0" alt="image" width="260" height="151" /></a></p>
<p>Finally this is the Xml message returned from the orchestration via the file adapter.</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/04/image3.png"><img style="border-bottom:0;border-left:0;border-top:0;border-right:0;" src="http://biztalkmessages.files.wordpress.com/2009/04/image-thumb3.png?w=260&#038;h=56" border="0" alt="image" width="260" height="56" /></a></p>
<p><strong><span style="text-decoration:underline;">Disadvantages</span></strong></p>
<p>At first I was a little excited that I got this working. I did some testing with different orchestrations and it seems to work OK. After a while (and thinking this over) my excitement was tempered because I think the functoid has three big disadvantages:</p>
<ol>
<li>Although questions related to this popup regularly in the BizTalk newsgroups I could not think of any real world examples. The sample above could also be implemented by using a message assignment shape after the map. In the message assignment shape the value of the variable can be assigned using xpath, properties or distinguished fields. The only way the functoid can be useful is when you need an orchestration variable value in a map to do some processing while the actual value is not mapped to the destination schema. But then again there are other ways to implement that. (Using a helper message and a multi message map). </li>
<li> The functoid code contains a considerable amount of reflection code. I didn&#8217;t do any performance tests but it is obvious that reflection comes with a cost. So in terms of performance it will probably be much better  to use alternative methods.</li>
<li> This is probably not supported by MS. Mainly because it uses XLANG code which is normally hidden from the developers. </li>
</ol>
<p>These disadvantages make me conclude that this functoid is not very useful in real world scenarios. I really want to know what others think about this. So whether you agree or don&#8217;t agree please share your thoughts on this!</p>
<p><strong><span style="text-decoration:underline;">The other way around</span></strong></p>
<p>Now that I figured out a way to access a variable it is a small step to take this a little further and build a functoid that WRITES the value of a variable in an orchestration. I didn&#8217;t implement such a functoid because of above mentioned points. I also think writing, as opposed to, reading is very tricky because you need to take things like serialization and locking into account.</p>
<p>If your still not convinced that you should <strong>not </strong>use this you can download the functoid &#8220;dll&#8221; from <a href="http://cid-2b880e94db699632.skydrive.live.com/self.aspx/Sample.OrchVarRetrieverFunctoid/OrchVarRetrieverFunctoid.dll" target="_blank">here</a>.</p>
<p><strong><span style="text-decoration:underline;">Installation instructions:</span></strong></p>
<ul>
<li>copy the .dll to the &#8216;Mapper Extensions&#8217; folder which resides in the BizTalk installation folder.</li>
<li>put the .dll in the gac.</li>
<li>Open a map in Visual Studio, click right in the toolbox area and choose the functoids tab.</li>
<li>Browse the the functoid dll in the &#8216;Mapper Extensions&#8217; folder to add it to the toolbox.</li>
</ul>
<p>The source is also available <a href="http://cid-2b880e94db699632.skydrive.live.com/self.aspx/Sample.OrchVarRetrieverFunctoid/OrchVarRetrieverFunctoid.zip" target="_blank">here</a>. It is build using BizTalk 2006 R2.</p>
<br /> Tagged: BizTalk, Functoid, Map, Orchestrations <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/342/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=342&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/04/05/orchestration-variable-retriever-functoid-and-why-you-should-not-use-it/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/04/image-thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/04/image-thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/04/image-thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/04/image-thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Custom recoverable interchange processing pipeline components</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/03/31/custom-recoverable-interchange-processing-pipeline-components/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/03/31/custom-recoverable-interchange-processing-pipeline-components/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 16:00:51 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[BizTalk 2009]]></category>
		<category><![CDATA[Pipelines]]></category>

		<guid isPermaLink="false">http://biztalkmessages.vansplunteren.net/?p=313</guid>
		<description><![CDATA[In my last post I blogged about the improvements to recoverable interchange processing (RIP) in the upcoming 2009 release of BizTalk Server. One question that pop up while writing that post was whether it would be possible to write a custom pipeline component that supports RIP.
After doing some research on the Internet I found out [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=313&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>In my <a href="http://biztalkmessages.vansplunteren.net/2009/03/26/recoverable-interchange-processing-enhancements-in-biztalk-2009/" target="_blank">last post</a> I blogged about the improvements to recoverable interchange processing (RIP) in the upcoming 2009 release of BizTalk Server. One question that pop up while writing that post was whether it would be possible to write a custom pipeline component that supports RIP.</p>
<p>After doing some research on the Internet I found out that it is possible and fairly simple to do. Actually it was already possible in BizTalk 2006. It was just something that I (and the co-workers that I asked) didn&#8217;t know. So please stop reading if you are already familiar with this <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>A typical  scenario is a pipeline that consists of a XmlDisassembler and this custom RIP pipeline component. The interchange is received in the pipeline and disassembled into separate body messages by the XmlDisassembler. After that, for each body stream some processing is performed by the custom pipeline component. If this processing fails the single body instance needs to be suspended instead of the whole interchange.</p>
<p>There are basically three things you must do in your pipeline component to enable this:</p>
<p><strong><span style="text-decoration:underline;">Write property &#8220;SuspendMessageOnRoutingFailure&#8221;</span></strong></p>
<p>The property &#8220;SuspendMessageOnRoutingFailure&#8221; needs to be written to the context of the message in case the processing of the message in the pipeline components succeeds. The value of the property needs to be set to true.</p>
<p>This property tells the messaging engine that each body message needs to be suspended in case of a routing failure. If you don&#8217;t write this to the context you&#8217;ll get a routing failure report for each body message while there will only be one suspended message (the whole interchange).</p>
<p><strong><span style="text-decoration:underline;">Write property &#8220;MessageDestination&#8221;</span></strong></p>
<p>This property needs to be written to the context of the message when the custom pipeline components has decided that the processing on this specific body message has failed.</p>
<p>The value needs to be &#8216;SuspendQueue&#8217; so that the messaging engine knows this particular body message needs to be suspended.</p>
<p><strong><span style="text-decoration:underline;">Return a searchable stream</span></strong></p>
<p>The messaging engine needs a searchable stream to be able to put the body message in the &#8216;SuspendQueue&#8217;. I don&#8217;t know the exact reason behind this but the engine probable needs to rewind the stream for proper error handling. Anyway we just have to make sure we return a searchable stream when the body instance needs to be suspended.</p>
<p>I wrote a simple test application to test this. The first I did was adding a property to enable or disable the RIP feature of my component. Much like the setting for the XmlDisassembler (and XmlValidator in BizTalk 2009)</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/03/image6.png"><img style="border-bottom:0;border-left:0;border-top:0;border-right:0;" src="http://biztalkmessages.files.wordpress.com/2009/03/image-thumb6.png?w=239&#038;h=260" border="0" alt="image" width="239" height="260" /></a></p>
<p>The execute method of the pipeline looks like this:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/03/image7.png"><img style="border-bottom:0;border-left:0;border-top:0;border-right:0;" src="http://biztalkmessages.files.wordpress.com/2009/03/image-thumb7.png?w=260&#038;h=142" border="0" alt="image" width="260" height="142" /></a></p>
<p>First the incoming stream is wrapped a XpathMutatorStream object to be able to receive an event when a certain xpath is matched. I use this to check whether or not the message is wrong (and should be suspended). In this sample the body messages each contain an attribute to indicate whether they are &#8216;good&#8217; or &#8216;wrong&#8217;.</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/03/image8.png"><img style="border-bottom:0;border-left:0;border-top:0;border-right:0;" src="http://biztalkmessages.files.wordpress.com/2009/03/image-thumb8.png?w=260&#038;h=124" border="0" alt="image" width="260" height="124" /></a></p>
<p>Next I create a virtual stream (which is searchable) to meet the requirement of returning a searchable stream.</p>
<p>In the third step I create a new output message containing the searchable stream.<br />
If the message is &#8216;good&#8217; I don&#8217;t care about RIP being enabled or disabled and just return the message (using the method &#8216;HandleHappFlow&#8217;). The only thing I need to do is write the &#8216;SuspendMessageOnRoutingFailure&#8217; context property to the message as mentioned above.</p>
<p>If the message is &#8216;wrong&#8217; and RIP is enabled I call the method &#8216;HandleRecoverableError&#8217;. The code of this method:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/03/image9.png"><img style="border-bottom:0;border-left:0;border-top:0;border-right:0;" src="http://biztalkmessages.files.wordpress.com/2009/03/image-thumb9.png?w=260&#038;h=92" border="0" alt="image" width="260" height="92" /></a></p>
<p>It just returns the message with the searchable stream, set some error information and writes the property &#8216;MessageDestination&#8217; to the context.</p>
<p>Finally if the message is &#8216;wrong&#8217; and RIP is disabled I throw an error so that the whole interchange will be suspended by the messaging engine.</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/03/image10.png"><img style="border-bottom:0;border-left:0;border-top:0;border-right:0;" src="http://biztalkmessages.files.wordpress.com/2009/03/image-thumb10.png?w=260&#038;h=63" border="0" alt="image" width="260" height="63" /></a></p>
<p>The sample source can be downloaded from <a href="http://cid-2b880e94db699632.skydrive.live.com/self.aspx/Sample.CustomRip/Sample.CustomRip.zip" target="_blank">here</a>. It was developed using the beta release of BizTalk Server 2009. As said before the sample should also work for BizTalk 2006. The solution needs to be manually converted back to a Visual Studio 2005 solution however.</p>
<br /> Tagged: BizTalk, BizTalk 2009, Pipelines <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/313/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/313/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/313/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/313/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/313/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/313/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/313/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/313/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/313/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/313/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=313&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/03/31/custom-recoverable-interchange-processing-pipeline-components/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/03/image-thumb6.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/03/image-thumb7.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/03/image-thumb8.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/03/image-thumb9.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/03/image-thumb10.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Recoverable interchange processing enhancements in BizTalk 2009</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/03/26/recoverable-interchange-processing-enhancements-in-biztalk-2009/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/03/26/recoverable-interchange-processing-enhancements-in-biztalk-2009/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 14:45:32 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[BizTalk 2009]]></category>
		<category><![CDATA[Pipelines]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=296</guid>
		<description><![CDATA[The text below is based on the beta release of BizTalk 2009. It might not (completely) apply to the RTM release.
BizTalk Server 2009 brings developers a lot of new functionality. In presentations and blog posts most of those new functions have already been described and shown.
One of the new things that is not or only [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=296&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p><em><span style="font-size:xx-small;">The text below is based on the beta release of BizTalk 2009. It might not (completely) apply to the RTM release.</span></em></p>
<p>BizTalk Server 2009 brings developers a lot of new functionality. In presentations and blog posts most of those new functions have already been described and shown.</p>
<p>One of the new things that is not or only briefly mentioned are the enhancements to Recoverable Interchange Processing (RIP) in BizTalk 2009. Also the help file (beta) of BizTalk 2009 doesn&#8217;t provide a lot of information on this (yet) and there are no samples.</p>
<p>I had some time to play with RIP in BizTalk 2009. The diagram below provides an overview of the very simple BizTalk sample application that I used.</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/03/rip-sample4.png"><img style="border-bottom:0;border-left:0;border-top:0;border-right:0;" src="http://biztalkmessages.files.wordpress.com/2009/03/rip-sample-thumb1.png?w=188&#038;h=260" border="0" alt="RIP sample" width="188" height="260" /></a></p>
<p>This is what happens:</p>
<p>1). First a <em>&#8216;family&#8217; </em>envelope XML message (also called an interchange) is received by a file receive port.</p>
<p>2). The receive port contains custom pipeline which in turn contains two default pipeline components; XmlDisassembler and XmlValidator.</p>
<p>3). The XmlDisassembler disassembles the family envelope message into separate &#8216;<em>person&#8217; </em>XML messages</p>
<p>4). The XmlValidator component validates the individual &#8216;person&#8217; messages before they are delivered to the message box.</p>
<p>5.) The receive port has failed message routing turned on. So if anything fails in the steps above a send port with a subscription on the failed messages picks up the messages and writes them to an error folder (left send port in the diagram). If everything works ok the disassembled messages are saved in the out folder by the another send port (send port at the right in the diagram).</p>
<p>Another thing to note is that I set the recoverable interchange processing option to true in the properties of the XmlDisassembler.</p>
<h4><strong><span style="text-decoration:underline;">RIP in BizTalk Server 2006 R2</span></strong></h4>
<p>First lets look on how this works in BizTalk Server 2006 R2.</p>
<p>When I post an invalid message (see message below; the second node has an invalid element named &#8216;Name&#8217;). The XmlValidator fails and the message is suspended, handled by failed message routing and finally written into the error folder.</p>
<p>The interesting thing here is that the message in in the error folder contains the full interchange (that is the original message that I provided to BizTalk). This happens because the RIP feature only applies to the XmlDisassembler component (see &#8216;A&#8217; in the diagram) and not to the XmlValidator component (&#8216;B&#8217; in the diagram).</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/03/image2.png"><img style="border-bottom:0;border-left:0;border-top:0;border-right:0;" src="http://biztalkmessages.files.wordpress.com/2009/03/image-thumb2.png?w=217&#038;h=260" border="0" alt="image" width="217" height="260" /></a></p>
<p><strong><span style="text-decoration:underline;">RIP in BizTalk Server 2009</span></strong></p>
<p>Compared to BizTalk 2004 RIP was a big improvement in BizTalk 2006. In BizTalk 2009 the RIP feature has now been extended to other components. The XmlValidator pipeline component now also has the option to turn op RIP via the pipeline configuration.</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/03/image3.png"><img style="border-bottom:0;border-left:0;border-top:0;border-right:0;" src="http://biztalkmessages.files.wordpress.com/2009/03/image-thumb3.png?w=245&#038;h=260" border="0" alt="image" width="245" height="260" /></a></p>
<p>The invalid message above is now handled in a different way. The disassembled valid person messages (1 and 3,4,5) are now put into the out folder while the invalid person message (2) is put in the error folder.</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/03/image4.png"><img style="border-bottom:0;border-left:0;border-top:0;border-right:0;" src="http://biztalkmessages.files.wordpress.com/2009/03/image-thumb4.png?w=260&#038;h=118" border="0" alt="image" width="260" height="118" /></a></p>
<p>So now instead of the whole interchange only the failed person message is suspended while the valid messages continue their way to the message box.</p>
<p>The RIP setting in the XmlValidator has no relation with the RIP setting in the XmlDisassembler. So the above sample will produce the same result if the RIP setting in the XmlDisassembler is set to false. </p>
<p>Internally this works because the XmlValidator pipeline component has been extended with code that will return a message stream even when there is a validation error. This stream is accompanied with special information on the context so that the message agent will put the message in the suspended queue.</p>
<p><strong><span style="text-decoration:underline;">RIP and maps</span></strong></p>
<p>In BizTalk 2009 it is even possible to extend this behavior to maps that are used in the receive port. To enable this you have to write a special property called &#8216;SuspendMessageOnMappingFailure&#8217; to the context of the message.</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/03/image5.png"><img style="border-bottom:0;border-left:0;border-top:0;border-right:0;" src="http://biztalkmessages.files.wordpress.com/2009/03/image-thumb5.png?w=260&#038;h=78" border="0" alt="image" width="260" height="78" /></a></p>
<p>Setting the value of &#8216;SuspendMessageOnMappingFailure&#8217; to true will only suspend the invalid message instead of the whole interchange. I personally think it is a bit cumbersome that you have to enable this in code. One has to write a custom pipeline component just to turn on a feature. It would be nice if this could be enabled by setting a property in the map configuration section of the port using the BizTalk administration console.</p>
<p>Anyway the BizTalk 2009 Recoverable Interchange Processing feature is a nice extension to handle interchanges in BizTalk server. It can save you from a lot of custom coding in pipeline components.</p>
<br /> Tagged: BizTalk, BizTalk 2009, Pipelines <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/296/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=296&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/03/26/recoverable-interchange-processing-enhancements-in-biztalk-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/03/rip-sample-thumb1.png" medium="image">
			<media:title type="html">RIP sample</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/03/image-thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/03/image-thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/03/image-thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/03/image-thumb5.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>70-241</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/03/20/70-241/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/03/20/70-241/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 15:34:06 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[Certification]]></category>

		<guid isPermaLink="false">http://biztalkmessages.vansplunteren.net/?p=282</guid>
		<description><![CDATA[Today I took the BizTalk 2006 R2 exam and passed!  This is the third BizTalk  exam (BizTalk 2k4, BizTalk 2k6 and BizTalk 2k6r2) that I took.
There is Non Disclosure Agreement (which I didn&#8217;t read) presented to the candidates before the exam starts so I am probably not allowed to post a brain dump here  
Anyway [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=282&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Today I took the BizTalk 2006 R2 exam and passed!  This is the third BizTalk  exam (BizTalk 2k4, BizTalk 2k6 and BizTalk 2k6r2) that I took.</p>
<p>There is Non Disclosure Agreement (which I didn&#8217;t read) presented to the candidates before the exam starts so I am probably not allowed to post a brain dump here <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Anyway I think the exam is not so difficult if you, like me, work day to day with the product. Like all MS exams you should study on the features that are new compared to the previous version in this case BizTalk 2006 R1). These feaures are: RFID, WCF adapters and EDI/AS2.</p>
<br /> Tagged: BizTalk, Certification <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/282/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=282&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/03/20/70-241/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>
	</item>
		<item>
		<title>Problem installing Windows SharePoint Services</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/03/09/problem-installing-windows-sharepoint-services/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/03/09/problem-installing-windows-sharepoint-services/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 19:43:38 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[BizTalk 2009]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=278</guid>
		<description><![CDATA[Below the annoying message box &#8216;The installation of this package failed&#8216; that popped up while building a fresh new (virtual) BizTalk Server 2009 development box on Windows Server 2008.

It occurred when I was installing Windows Sharepoint Services 3.0 with service pack 1, which is one the prerequisites for the SharePoint Services adapter.
I wanted to get [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=278&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Below the annoying message box &#8216;<em>The installation of this package failed</em>&#8216; that popped up while building a fresh new (virtual) BizTalk Server 2009 development box on Windows Server 2008.</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/03/image.png"><img style="border-width:0;" src="http://biztalkmessages.files.wordpress.com/2009/03/image-thumb.png?w=244&#038;h=121" border="0" alt="image" width="244" height="121" /></a></p>
<p>It occurred when I was installing Windows Sharepoint Services 3.0 with service pack 1, which is one the prerequisites for the SharePoint Services adapter.</p>
<p>I wanted to get on with the installation and didn&#8217;t want to spend much time on finding a solution. So to get around this I copied the .MSI back to my host system (in my case Windows Vista (Business edition) 64 bit). After that I used the command:</p>
<blockquote><p>Sharepoint.exe /extract:c:tempwss</p></blockquote>
<p>to extract the installation files from the downloaded .exe. Finally I copied the extracted files back to my virtual machine and ran &#8216;Setup.exe&#8217;. This time setup completed without a glitch.</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/03/image1.png"><img style="border-width:0;" src="http://biztalkmessages.files.wordpress.com/2009/03/image-thumb1.png?w=244&#038;h=207" border="0" alt="image" width="244" height="207" /></a></p>
<p>I suspect Windows 2008 Server or one of the BizTalk 2009 prerequisites I already installed prior to WSS 3.0 to be the cause of the problem. Please comment or e-mail me if you&#8217;re not lazy like me, but took the time to find a more elegant and satisfying solution <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . Until that time I hope I can help someone with this workaround.</p>
<br /> Tagged: BizTalk, BizTalk 2009 <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/278/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/278/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/278/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/278/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/278/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/278/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/278/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/278/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/278/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/278/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=278&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/03/09/problem-installing-windows-sharepoint-services/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/03/image-thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/03/image-thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Create applications using PowerShell provider for BizTalk</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/01/08/create-applications-using-powershell-provider-for-biztalk/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/01/08/create-applications-using-powershell-provider-for-biztalk/#comments</comments>
		<pubDate>Thu, 08 Jan 2009 08:30:28 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[BizTalk tools]]></category>
		<category><![CDATA[PowerShell]]></category>

		<guid isPermaLink="false">http://biztalkmessages.vansplunteren.net/?p=270</guid>
		<description><![CDATA[I wrote a small article that shows how to create BizTalk applications using my PowerShell provider for BizTalk. You can find it here.
 Tagged: BizTalk, BizTalk tools, PowerShell      <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=270&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I wrote a small article that shows how to create BizTalk applications using my PowerShell provider for BizTalk. You can find it <a href="http://biztalkmessages.vansplunteren.net/powershell-provider-for-biztalk/powershell-provider-for-biztalk-creating-applications/">here</a>.</p>
<br /> Tagged: BizTalk, BizTalk tools, PowerShell <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/270/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/270/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/270/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/270/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/270/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=270&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/01/08/create-applications-using-powershell-provider-for-biztalk/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>
	</item>
		<item>
		<title>Promoting values from envelope to body</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/01/07/promoting-values-from-envelope-to-body/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/01/07/promoting-values-from-envelope-to-body/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 09:00:01 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[Pipelines]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/2009/01/07/promoting-values-from-envelope-to-body/</guid>
		<description><![CDATA[I might be stating the obvious in this post but it took me and my colleague quite a while before we found what we were doing wrong. We wanted to disassemble the body messages from an envelope message and promote a value from the envelope to each body message. Not exactly rocket science  .
Lets [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=227&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I might be stating the obvious in this post but it took me and my colleague quite a while before we found what we were doing wrong. We wanted to disassemble the body messages from an envelope message and promote a value from the envelope to each body message. Not exactly rocket science <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p>
<p>Lets take the following schema and corresponding message as example:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/01/envelope-schema-wrong.png" target="_blank"><img style="border:0;" src="http://biztalkmessages.files.wordpress.com/2009/01/envelope-schema-wrong-thumb.png?w=251&#038;h=173" border="0" alt="Envelope_Schema_wrong" width="251" height="173" /></a></p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/01/envelope-message-wrong.png" target="_blank"><img style="border:0;" src="http://biztalkmessages.files.wordpress.com/2009/01/envelope-message-wrong-thumb.png?w=260&#038;h=135" border="0" alt="Envelope_Message_wrong" width="260" height="135" /></a></p>
<p>In this sample the value of the &#8216;FamilyNumber&#8217; element from the envelope has to be promoted to the context of each body message. Ok, very easy&#8230;&#8230; we thought.</p>
<p>This can be done using build in BizTalk functionality. Create a property schema, promote the element from the envelope, use the default XmlReceive pipeline to promote the value from the envelope to each body message and done.</p>
<p>After the first test run We were very surprised to see that none of the context messages of the disassembled bodies contained the promoted value. It took an embarrassing long time before we found out that the element to promote needs to be before the body messages instead of after the body messages.</p>
<p>It makes sense because the XmlDisassembler component in the XmlReceive pipeline works in a streaming forward only manner. Each time a complete body message is read from the stream it is delivered to the message box (or next pipeline component). So when the stream reaches the element to promote the bodies have already been delivered to the message box. This is why their message context does not contain the promoted value.</p>
<p>Changing the schema to:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/01/envelope-schema-good.png" target="_blank"><img style="border:0;" src="http://biztalkmessages.files.wordpress.com/2009/01/envelope-schema-good-thumb.png?w=251&#038;h=173" border="0" alt="Envelope_Schema_good" width="251" height="173" /></a></p>
<p>will do the trick.</p>
<br /> Tagged: BizTalk, Pipelines <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/227/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=227&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/01/07/promoting-values-from-envelope-to-body/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/01/envelope-schema-wrong-thumb.png" medium="image">
			<media:title type="html">Envelope_Schema_wrong</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/01/envelope-message-wrong-thumb.png" medium="image">
			<media:title type="html">Envelope_Message_wrong</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/01/envelope-schema-good-thumb.png" medium="image">
			<media:title type="html">Envelope_Schema_good</media:title>
		</media:content>
	</item>
		<item>
		<title>PowerShell provider for BizTalk (version 1.0.0)</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/01/06/powershell-provider-for-biztalk-version-100/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/01/06/powershell-provider-for-biztalk-version-100/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 14:58:24 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[BizTalk tools]]></category>
		<category><![CDATA[PowerShell]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/2009/01/06/powershell-provider-for-biztalk-version-100/</guid>
		<description><![CDATA[In an earlier post I wrote about the PowerShell provider for BizTalk that I&#8217;ve been working on in the past months. I&#8217;m very proud to release the very first version now. Please note that this is still a very, very, very early &#8216;alpha&#8217; release. In other words it is full of bugs and not as [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=203&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>In an earlier <a href="http://biztalkmessages.vansplunteren.net/2008/10/13/powershell-provider-for-biztalk/">post</a> I wrote about the PowerShell provider for BizTalk that I&#8217;ve been working on in the past months. I&#8217;m very proud to release the very first version now. Please note that this is still a <em>very, very, very</em> early &#8216;alpha&#8217; release. In other words it is full of bugs and not as feature rich as I wanted it to be at this time <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
<p>The PowerShell Provider for BizTalk lets you browse BizTalk as a file system. The primary goal for writing this provider is to aid me in my day to day BizTalk development work. With this in mind the first thing I wanted to be able to do is stop, start and restart host instances in an easy manner. I also wanted to replace my <a href="http://biztalkmessages.vansplunteren.net/2008/08/07/biztalk-host-manager-nothing-new/">host manager tool</a> with something with more flexibility. You can read more on host instances and PowerShell <a href="http://biztalkmessages.vansplunteren.net/powershell-provider-for-biztalk/powershell-provider-for-biztalk-work-with-host-instances/">here</a>.</p>
<p>Download link can be found <a href="http://biztalkmessages.vansplunteren.net/powershell-provider-for-biztalk">here</a></p>
<p><strong><span style="text-decoration:underline;">Some features:</span></strong></p>
<p>- Browseable BizTalk Adminstration Console like hierarchy and structure of artifacts. Read more <a href="http://biztalkmessages.vansplunteren.net/powershell-provider-for-biztalk/powershell-provider-for-biztalk-browse-artifacts/" target="_blank">here</a></p>
<p>- Tab completion saves you from a lot of typing</p>
<p>- Custom cmdlets aimed at BizTalk.</p>
<p><span style="text-decoration:underline;"><strong>Installation instructions:</strong></span></p>
<p>prerequisites: PowerShell 1.0 installed, BizTalk Server 2006 R2 (haven&#8217;t tried R1 yet) installed and configured.</p>
<p>steps:</p>
<p>1. run &#8216;PowerShell.BizTalk.msi&#8217; and follow instructions.</p>
<p>2. Start a new PowerShell shell.</p>
<p>3. Type the command:</p>
<blockquote><p><strong>Add-PSSnapin PowerShell.BizTalk</strong></p></blockquote>
<p>4. Optionally verify that the snap-in is loaded by executing the command:</p>
<blockquote><p><strong>Get-PSSnapin</strong></p>
<p>You should see the snap-in in the list of loaded snap-ins (see example below).</p></blockquote>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/01/image6.png" target="_blank"><img style="border:0;" src="http://biztalkmessages.files.wordpress.com/2009/01/image-thumb6.png?w=444&#038;h=283" border="0" alt="image" width="444" height="283" /></a></p>
<p>5. Add a connection to the local BizTalk installation by executing the command:</p>
<blockquote><p><strong>New-PSDrive LocalBTS BizTalk LocalBTS: -scope global -server &lt;ServerName&gt; -database &lt;DatabaseName&gt;</strong></p>
<p><em>Replace &lt;ServerName&gt; and &lt;DatabaseName&gt; with the name of the server and database with the name of the management database.</em></p>
<p><em>For example:  New-PSDrive LocalBTS BizTalk LocalBTS: -scope global -server BizTalk01 -database BizTalkMgmtDb</em></p>
<p>This will create a new PowerShell drive object pointing to the BizTalk management databases.</p></blockquote>
<p><span style="text-decoration:underline;"><strong></strong></span> </p>
<p><span style="text-decoration:underline;"><strong>Automatically load the snap-in:</strong></span></p>
<p>Step 3,4 &amp; 5 need to be executed every time you start a new PowerShell and want to use the BizTalk provider. To prevent you from typing the commands every time you can of course create a personal profile script. This will be loaded every time a new PowerShell shell is started. In order to do this:</p>
<p>1. Create a new folder in your &#8216;My Documents&#8217; folder. Name this folder &#8216;WindowsPowerShell&#8217;.</p>
<p>2. Create a new text file in the folder created in step 1. Name the file &#8216;Microsoft.PowerShell_profile.ps1&#8242;.</p>
<p>3. Set the contents of the text file like below and save it.</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/01/image7.png" target="_blank"><img style="border-width:0;" src="http://biztalkmessages.files.wordpress.com/2009/01/image-thumb7.png?w=400&#038;h=64" border="0" alt="image" width="400" height="64" /></a></p>
<p>When opening a new shell the snap-in should be loaded automatically.</p>
<p><strong></strong> </p>
<p><strong><span style="text-decoration:underline;">Supported artifacts:</span></strong></p>
<p>Compared to BizTalk Adminstration Console this release of the provider has a limited set of artifacts that are browseable. Also each artifact has less properties than you&#8217;re used to in the console.</p>
<table border="1" cellspacing="0" cellpadding="2" width="386">
<tbody>
<tr>
<td width="147" valign="top"><strong>artifact</strong></td>
<td width="239" valign="top"><strong>artifact supported in v1.0.0</strong></td>
</tr>
<tr>
<td width="151" valign="top">Applications</td>
<td width="238" valign="top">browse (limited properties), create, delete</td>
</tr>
<tr>
<td width="154" valign="top">Orchestrations</td>
<td width="237" valign="top">browse (limited properties)</td>
</tr>
<tr>
<td width="156" valign="top">Role Links</td>
<td width="236" valign="top">-</td>
</tr>
<tr>
<td width="158" valign="top">Send Port Groups</td>
<td width="235" valign="top">-</td>
</tr>
<tr>
<td width="160" valign="top">Send Ports</td>
<td width="235" valign="top">browse (limited properties)</td>
</tr>
<tr>
<td width="161" valign="top">Receive Ports</td>
<td width="234" valign="top">browse (limited properties)</td>
</tr>
<tr>
<td width="162" valign="top">Receive Locations</td>
<td width="234" valign="top">browse (limited properties)</td>
</tr>
<tr>
<td width="163" valign="top">Policies</td>
<td width="234" valign="top">-</td>
</tr>
<tr>
<td width="163" valign="top">Schemas</td>
<td width="234" valign="top">-</td>
</tr>
<tr>
<td width="163" valign="top">Maps</td>
<td width="234" valign="top">-</td>
</tr>
<tr>
<td width="163" valign="top">Pipelines</td>
<td width="234" valign="top">-</td>
</tr>
<tr>
<td width="163" valign="top">Resources</td>
<td width="234" valign="top">-</td>
</tr>
<tr>
<td width="163" valign="top">BAS Artifacts</td>
<td width="234" valign="top">-</td>
</tr>
<tr>
<td width="163" valign="top">Parties</td>
<td width="234" valign="top">-</td>
</tr>
<tr>
<td width="163" valign="top">Hosts</td>
<td width="234" valign="top">browse (limited properties)</td>
</tr>
<tr>
<td width="163" valign="top">Host Instances</td>
<td width="234" valign="top">browse (limited properties), custom cmdlets to stop, start and restart.</td>
</tr>
<tr>
<td width="163" valign="top">Servers</td>
<td width="234" valign="top">-</td>
</tr>
<tr>
<td width="163" valign="top">Message Boxes</td>
<td width="234" valign="top">-</td>
</tr>
<tr>
<td width="163" valign="top">Adapters</td>
<td width="234" valign="top">-</td>
</tr>
</tbody>
</table>
<p><strong><span style="text-decoration:underline;">Limitations in this version:</span></strong></p>
<p>- The provider makes heavily use of ExplorerOM model. As far as I know this is only supported on 32 bit platforms. So be aware when using the provider on a 64 bit platform.</p>
<p>- The provider does not (yet) (fully) support connections to remote BizTalk installations. Some things like e.g. browse applications work, while other browse host instances will not work.</p>
<p>- Make sure you have enough rights (BizTalk administrator) before using the provider. It does not check role membership or authorizations before executing code so insufficient rights may lead to nasty errors.</p>
<p>- Many other&#8230;&#8230;</p>
<p>Please send me an e-mail or post a comment if you have questions, remarks, bugs, etc&#8230;</p>
<br /> Tagged: BizTalk, BizTalk tools, PowerShell <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/203/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=203&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/01/06/powershell-provider-for-biztalk-version-100/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/01/image-thumb6.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/01/image-thumb7.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>BizTalk 2009 and Health and Activity Tracking (HAT)</title>
		<link>http://biztalkmessages.vansplunteren.net/2008/12/10/biztalk-2009-and-health-and-activity-tracking-hat/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2008/12/10/biztalk-2009-and-health-and-activity-tracking-hat/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 10:39:21 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[BizTalk 2009]]></category>
		<category><![CDATA[BizTalk tools]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/2008/12/10/biztalk-2009-and-health-and-activity-tracking-hat/</guid>
		<description><![CDATA[The text below is based on the beta release of BizTalk 2009. It might not (completely) apply to the RTM release.
In BizTalk Server 2009 it looks like Microsoft has continued to move functionality from the Health and Activity (HAT) tool to the BizTalk Administration Console (MMC).
When we went from BTS2K4 to BTS2k6 we saw that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=146&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p><em><span style="font-size:xx-small;">The text below is based on the beta release of BizTalk 2009. It might not (completely) apply to the RTM release.</span></em></p>
<p>In BizTalk Server 2009 it looks like Microsoft has continued to move functionality from the Health and Activity (HAT) tool to the BizTalk Administration Console (MMC).</p>
<p>When we went from BTS2K4 to BTS2k6 we saw that some of the tasks we did with HAT (and other tools) on 2k4 now could be done with MMC on 2k6.</p>
<p>The biggest improvement for me personally was the inclusion of the subscription viewer function in the MMC. I still have nightmares about the user interface of the 2k4 subscription viewer tool <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p>
<p>In BizTalk Server 2009 Microsoft took it a step further and removed the HAT tool. This means the remaining functionality is now also included in MMC.</p>
<p>To be more precise the HAT is not completely removed you only don&#8217;t need to start it as a separate tool anymore. If you for example use things like &#8216;Message flow&#8217; or the &#8216;Orchestration debugger&#8217; you&#8217;ll still get a HAT style window. Also the task manager shows a process called &#8216;BTSHatApp.exe&#8217; which I think I saw somewhere before <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . Of course I also couldn&#8217;t resist typing &#8216;BTSHatApp.exe&#8217; from the start prompt, but that results in the following error message:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2008/12/image.png"><img style="border-width:0;" height="165" alt="image" src="http://biztalkmessages.files.wordpress.com/2008/12/image-thumb.png?w=400&#038;h=165" width="400" border="0"></a></p>
<p>Anyway I think it is a good thing because we now really have one tool (or at least one entrance point) to do everything. I also never liked the HAT user interface very much.</p>
<p>There are (or were) basically three functions/queries that I use in HAT:</p>
<ul>
<li>Most recent 100 service instances
<li>Messages sent in the past day
<li>Messages received in the past day </li>
</ul>
<p>The query expression pane in the 2k9 MMC now has values for &#8216;Tracked Message Events&#8217; and &#8216;Tracked Service Instances&#8217;. This will allow me to do the same thing in MMC that I previously had to do in HAT.</p>
<p>Screen shot 1 shows the &#8216;Most recent 100 service instances&#8217; in the 2k9 way. Screen shot 2 shows the &#8216;Messages received in the past day&#8217;.</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2008/12/image3.png"><img style="border-right:0;border-top:0;border-left:0;border-bottom:0;" height="256" alt="image" src="http://biztalkmessages.files.wordpress.com/2008/12/image-thumb3.png?w=397&#038;h=256" width="397" border="0"></a></p>
<p>Screen shot 1: Most recent 100 service instances.</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2008/12/image4.png"><img style="border-right:0;border-top:0;border-left:0;border-bottom:0;" height="256" alt="image" src="http://biztalkmessages.files.wordpress.com/2008/12/image-thumb4.png?w=397&#038;h=256" width="397" border="0"></a></p>
<p>Screen shot 2: Most recent 100 send messages.</p>
<br /> Tagged: BizTalk, BizTalk 2009, BizTalk tools <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/146/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=146&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2008/12/10/biztalk-2009-and-health-and-activity-tracking-hat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2008/12/image-thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2008/12/image-thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2008/12/image-thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>BizTalk Server version number overview (updated)</title>
		<link>http://biztalkmessages.vansplunteren.net/2008/12/10/biztalk-server-version-number-overview-updated/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2008/12/10/biztalk-server-version-number-overview-updated/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 08:15:44 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[BizTalk 2009]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/2008/12/10/biztalk-server-version-number-overview-updated/</guid>
		<description><![CDATA[In an earlier post I gave an overview of the version numbers of the different BizTalk Server versions. From my blog stats I can see that there quite a lot of people looking for this information.
I also promised to update the overview as soon as a new version of service pack is available. To keep [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=136&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>In an earlier <a href="http://biztalkmessages.vansplunteren.net/2008/06/13/biztalk-server-version-number-overview/" target="_blank">post</a> I gave an overview of the version numbers of the different BizTalk Server versions. From my blog stats I can see that there quite a lot of people looking for this information.</p>
<p>I also promised to update the overview as soon as a new version of service pack is available. To keep the promise I added the recent beta of BTS2k9.</p>
<table border="0" cellspacing="0" cellpadding="2" width="434">
<tbody>
<tr>
<td width="196" valign="top"><strong>Product name</strong></td>
<td width="108" valign="top"><strong>Service pack</strong></td>
<td width="124" valign="top"><strong>Version number</strong></td>
</tr>
<tr>
<td width="196" valign="top">BizTalk Server 2004</td>
<td width="108" valign="top"> </td>
<td width="125" valign="top">3.0.4902.0</td>
</tr>
<tr>
<td width="196" valign="top">BizTalk Server 2004</td>
<td width="108" valign="top">SP1</td>
<td width="126" valign="top">3.0.6070.0</td>
</tr>
<tr>
<td width="196" valign="top">BizTalk Server 2004</td>
<td width="108" valign="top">SP2</td>
<td width="127" valign="top">3.0.7405.0</td>
</tr>
<tr>
<td width="196" valign="top">BizTalk Server 2006</td>
<td width="108" valign="top"> </td>
<td width="128" valign="top">3.5.1602.0</td>
</tr>
<tr>
<td width="196" valign="top">BizTalk Server 2006 R2</td>
<td width="108" valign="top"> </td>
<td width="128" valign="top">3.6.1404.0</td>
</tr>
<tr>
<td width="196" valign="top">BizTalk Server 2009 (beta1)</td>
<td width="108" valign="top"> </td>
<td width="128" valign="top">3.8.104.5</td>
</tr>
</tbody>
</table>
<p>This information is now also provided by Microsoft in the BizTalk Server 2009 help. See help topic &#8216;What Version of BizTalk Server Do I Have?&#8217;.</p>
<br /> Tagged: BizTalk, BizTalk 2009 <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/136/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=136&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2008/12/10/biztalk-server-version-number-overview-updated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>
	</item>
		<item>
		<title>Dealing with base64 encoded documents in BizTalk</title>
		<link>http://biztalkmessages.vansplunteren.net/2008/11/11/dealing-with-base64-encoded-documents-in-biztalk/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2008/11/11/dealing-with-base64-encoded-documents-in-biztalk/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 17:00:17 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[Pipelines]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=130</guid>
		<description><![CDATA[I wrote a short article on a possible way to deal with base64 encoded documents in a incoming XML message. The solution works by redirecting a stream from and to file on the right moment. A sample (with source) is included.
You can find it here.
Hope you find this useful
 Tagged: BizTalk, Pipelines      <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=130&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I wrote a short article on a possible way to deal with base64 encoded documents in a incoming XML message. The solution works by redirecting a stream from and to file on the right moment. A sample (with source) is included.</p>
<p>You can find it <a title="here" href="http://biztalkmessages.vansplunteren.net/articles/dealing-with-base64/">here</a>.</p>
<p>Hope you find this useful</p>
<br /> Tagged: BizTalk, Pipelines <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/130/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=130&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2008/11/11/dealing-with-base64-encoded-documents-in-biztalk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>
	</item>
		<item>
		<title>Powershell provider for BizTalk</title>
		<link>http://biztalkmessages.vansplunteren.net/2008/10/13/powershell-provider-for-biztalk/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2008/10/13/powershell-provider-for-biztalk/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 10:07:22 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[BizTalk tools]]></category>
		<category><![CDATA[PowerShell]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=48</guid>
		<description><![CDATA[During the last months I&#8217;ve become a big fan of Powershell. It is a great shell which allows you to do things in a very flexible manner. When it comes to BizTalk administration tasks however most of the time you end up writing scripts that use WMI to do things.
I would be great if BizTalk developers [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=48&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>During the last months I&#8217;ve become a big fan of Powershell. It is a great shell which allows you to do things in a very flexible manner. When it comes to BizTalk administration tasks however most of the time you end up writing scripts that use WMI to do things.</p>
<p>I would be great if BizTalk developers or administrators:</p>
<ul>
<li>just could walk through the biztalk artifacts in the same way we do with file folders.</li>
<li>have a (rich) set of powershell cmdlets aimed at BizTalk.</li>
</ul>
<p>In other words we need a: Powershell provider for BizTalk. Searching the internet resulted in nothing. I found one initiative but that did not seem to have started and there were also no downloadable bits.</p>
<p>Anyway I decided to code a BizTalk provider myself. I have copied the artifact hierarchy tree used in the BizTalk Administration Console as much as possible (see screenshots below). The provider also supports tab completion which makes it very easy to navigate through the BizTalk artifacts.</p>
<p style="text-align:center;"><a href="http://biztalkmessages.files.wordpress.com/2008/10/powershell-screenshot-1.png"><img class="aligncenter size-large wp-image-50" title="powershell-screenshot-1" src="http://biztalkmessages.files.wordpress.com/2008/10/powershell-screenshot-1.png?w=450&#038;h=288" alt="" width="450" height="288" /></a><a href="http://biztalkmessages.files.wordpress.com/2008/10/powershell-screenshot-1.png"></a></p>
<p style="text-align:center;"><a href="http://biztalkmessages.files.wordpress.com/2008/10/powershell-screenshot-2.png"><img class="size-large wp-image-51 aligncenter" title="powershell-screenshot-2" src="http://biztalkmessages.files.wordpress.com/2008/10/powershell-screenshot-2.png?w=450&#038;h=288" alt="" width="450" height="288" /></a></p>
<p>The screenshot below contains an example of a BizTalk cmdlet to stop a specific host.</p>
<p style="text-align:center;"><a href="http://biztalkmessages.files.wordpress.com/2008/10/powershell-screenshot-3.png"><img class="aligncenter size-large wp-image-52" title="powershell-screenshot-3" src="http://biztalkmessages.files.wordpress.com/2008/10/powershell-screenshot-3.png?w=450&#038;h=288" alt="" width="450" height="288" /></a></p>
<p>Although I&#8217;ve been very, very busy with this in the last couple of weeks there is still a lot of work to be done. So why am I telling you about this when there are no downloadable bits yet. There are two reasons:</p>
<ul>
<li>I hope there are BizTalkers out there that use Powershell and want to test my provider eventually. (If so drop a comment or e-mail).</li>
<li>I want to make a list of first release cmdlets that should be included. (Suggestions? Let me know!)</li>
</ul>
<br /> Tagged: BizTalk, BizTalk tools, PowerShell <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/48/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=48&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2008/10/13/powershell-provider-for-biztalk/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2008/10/powershell-screenshot-1.png?w=450" medium="image">
			<media:title type="html">powershell-screenshot-1</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2008/10/powershell-screenshot-2.png?w=450" medium="image">
			<media:title type="html">powershell-screenshot-2</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2008/10/powershell-screenshot-3.png?w=450" medium="image">
			<media:title type="html">powershell-screenshot-3</media:title>
		</media:content>
	</item>
		<item>
		<title>Message creation</title>
		<link>http://biztalkmessages.vansplunteren.net/2008/10/13/message-creation/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2008/10/13/message-creation/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 07:16:18 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[Orchestrations]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=42</guid>
		<description><![CDATA[In March Yossi Dahan blogged about various ways to create messages from scratch in an orchestration. In his post (in the comments) he also mentioned he would be very interested in the performance characteristics.
I shared this interest with him an decided to spend some time on a small test solution to measure the performance. Because I wanted to be [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=42&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>In March <a title="Yossi Dahan" href="http://www.sabratech.co.uk/blogs/yossidahan/" target="_blank">Yossi Dahan</a> blogged about <a href="http://www.sabratech.co.uk/blogs/yossidahan/2008/03/creating-message-from-scratch.html" target="_blank">various ways to create messages from scratch</a> in an orchestration. In his post (in the comments) he also mentioned he would be very interested in the performance characteristics.</p>
<p>I shared this interest with him an decided to spend some time on a small test solution to measure the performance. Because I wanted to be sure about my results (and also because this was his blog subject <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ) I asked the real expert (Yossi) to validate my results.</p>
<p>With a (little delay <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ) Yossi posted about the <a href="http://www.sabratech.co.uk/blogs/yossidahan/2008/10/fun-with-message-creation-in-biztalk.html" target="_blank">results</a>.</p>
<p>Thanks Yossi.</p>
<br /> Tagged: BizTalk, Orchestrations, Performance <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/42/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=42&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2008/10/13/message-creation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>
	</item>
		<item>
		<title>BizTalk Host Manager (nothing new :-()</title>
		<link>http://biztalkmessages.vansplunteren.net/2008/08/07/biztalk-host-manager-nothing-new/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2008/08/07/biztalk-host-manager-nothing-new/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 06:37:43 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[BizTalk tools]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=37</guid>
		<description><![CDATA[In 2005 I wrote a small tool called BizTalk Host Manager. This tool lets you quickly restart a host instance from the system tray. It is useful in scenarios where you have do to a lot of host restarts like developing (GAC newly build BTS assembly and restart host), debugging or performance testing.
Although it was [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=37&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>In 2005 I wrote a small tool called BizTalk Host Manager. This tool lets you quickly restart a host instance from the system tray. It is useful in scenarios where you have do to a lot of host restarts like developing (GAC newly build BTS assembly and restart host), debugging or performance testing.</p>
<p>Although it was written for BizTalk Server 2004 (.Net v1.1) it also works for BizTalk Server 2006 R1 and R2.</p>
<p>Apparently some people still use it because now and than I receive questions from people asking where it can be downloaded. Because I am not sure if it is still available from the old location, I&#8217;ll put it on my skydrive <a href="http://cid-2b880e94db699632.skydrive.live.com/self.aspx/BTSHostManager2004/BTSHostManager2004.msi">here</a>.</p>
<p>I&#8217;m currently working on a new version of the tool. I hope to have it finished soon.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/biztalkmessages.wordpress.com/37/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/biztalkmessages.wordpress.com/37/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=37&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2008/08/07/biztalk-host-manager-nothing-new/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>
	</item>
		<item>
		<title>Debugging the disappearing SQL Add Adapter metadata wizard</title>
		<link>http://biztalkmessages.vansplunteren.net/2008/07/28/debugging-the-disappearing-sql-add-adapter-metadata-wizard/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2008/07/28/debugging-the-disappearing-sql-add-adapter-metadata-wizard/#comments</comments>
		<pubDate>Mon, 28 Jul 2008 13:57:59 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[SQL Adapter]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=24</guid>
		<description><![CDATA[This afternoon I encountered a very annoying problem. I wanted to generate a schema with the add adapter metadata wizard to use with the SQL adapter. Normally the wizard shows a couple of screens in which you have to enter information and at the end (after pressing finish button) you&#8217;ll get a generated XSD. On my [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=24&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>This afternoon I encountered a very annoying problem. I wanted to generate a schema with the add adapter metadata wizard to use with the SQL adapter. Normally the wizard shows a couple of screens in which you have to enter information and at the end (after pressing finish button) you&#8217;ll get a generated XSD. On my dev box when I was half way in the wizard I pressed next and &#8230;&#8230; nothing &#8230;&#8230; the Wizard just disappeared. No error in the eventlog, no error in Visual Studio.</p>
<p>While googling for a solution to this problem I found a number of people having exactly the same problem. Besides re-installing the entire machine there is no real solution mentioned. Because I didn&#8217;t want to reinstall my machine and because I think there are different causes for this problem I decided to take the hard way. Below is a description of the steps I took to save myself a lot of time:</p>
<p>I started by looking for the SQL Adapter binaries. No rocket science is needed to find out that those are located inside the &#8216;Microsoft.BizTalk.Adapter.SQLAdmin.dll&#8217; assembly. This assembly can be found in the BizTalk installation folder.<br />
The next step is to use <a href="http://www.aisto.com/roeder/dotnet">Reflector</a> together with <a href="http://www.denisbauer.com/NETTools/FileDisassembler.aspx">Reflector FileDisassembler AddIn</a> to &#8216;extract&#8217; the source code of the wizard.<br />
After fixing some references and other minor things I was able to recompile the .dll.<br />
Next thing is to tell Visual Studio debugger to break on all exceptions instead of having the code handle them.  (You can do this in the dialog which appears by pressing CTRL-ALT-E in Visual Studio).<br />
By starting a new Visual Studio instance and attaching the other one (with the extraced source) to it I was able to debug the wizard.<br />
When I reached the point where the wizard was disappearing before I now got an exception telling me exactly what was wrong (see picture below). </p>
<div class="mceTemp">
<div id="attachment_30" class="wp-caption alignnone" style="width: 460px"><a href="http://biztalkmessages.files.wordpress.com/2008/07/capture.jpg"><img class="size-full wp-image-30" src="http://biztalkmessages.files.wordpress.com/2008/07/capture.jpg?w=450&#038;h=358" alt="SQL Adapter FileNotFoundException" width="450" height="358" /></a><p class="wp-caption-text">SQL Adapter FileNotFoundException</p></div>
</div>
<p>It turned out the installation of MSXML on my box was wrong/corrupted. I got a FileNotFoundException which basically told me that I had to (re)install MSXML. After reinstalling MSXML and throwing away the decompiled source (to keep MS people happy <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ) the wizard was working OK.</p>
<p>I was very happy that I reduced completely reinstalling the BTS box to just reinstalling MSXML.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/biztalkmessages.wordpress.com/24/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/biztalkmessages.wordpress.com/24/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/24/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=24&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2008/07/28/debugging-the-disappearing-sql-add-adapter-metadata-wizard/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2008/07/capture.jpg" medium="image">
			<media:title type="html">SQL Adapter FileNotFoundException</media:title>
		</media:content>
	</item>
		<item>
		<title>Create message instance from multiroot XSD using DocumentSpec</title>
		<link>http://biztalkmessages.vansplunteren.net/2008/06/19/create-message-instance-from-multiroot-xsd-using-documentspec/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2008/06/19/create-message-instance-from-multiroot-xsd-using-documentspec/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 08:48:31 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[BizTalk]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=22</guid>
		<description><![CDATA[Sometimes you&#8217;re in a situation where you need to create a message from scratch. Yossi Dahan wrote an excellent blog post on this topic. As shown by this post there are a number of options to achieve this.
 
 
One option is to use the undocumented BizTalk Document Specification (DocumentSpec) API. Although this way of creating a message has [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=22&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;"><span style="font-family:Verdana;"><a href="http://biztalkmessages.files.wordpress.com/2008/06/docspecexception.png"></a>Sometimes you&#8217;re in a situation where you need to create a message from scratch. Yossi Dahan wrote an excellent blog post on this </span><a href="http://www.sabratech.co.uk/blogs/yossidahan/2008/03/creating-message-from-scratch.html" target="_blank"><span style="font-family:Verdana;">topic</span></a><span style="font-family:Verdana;">. As shown by this post there are a number of options to achieve this.</span></span></p>
<p class="MsoNormal" style="margin:0;"> </p>
<p class="MsoNormal" style="margin:0;"> </p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;"><span style="font-family:Verdana;">One option is to use the undocumented BizTalk Document Specification (DocumentSpec) API. Although this way of creating a message has some obvious disadvantages (see also comments to Yossi&#8217;s blogpost) it can be the best option in certain specific situations.</span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;"><span style="font-family:Verdana;">On of the things you need to do to create a message instance is to create a new instance of the DocSpec class. The constructor of the DocumentSpec class takes the .Net/BizTalk schema type name and the assembly display name that contains the schema as parameters. The code should look something like this:</span></span></p>
<p class="MsoNormal" style="margin:0;"> </p>
<p class="MsoNormal" style="margin:0;"> </p>
<div style="border:windowtext 1pt solid;padding:1pt 4pt;">
<p class="MsoNormal" style="margin:0;padding:0;"><span style="font-family:Verdana;"><span style="font-size:10pt;color:#0000ff;">string</span><span style="font-size:10pt;color:#000000;"> assemblyDisplayName = </span><span style="font-size:10pt;color:#a31515;">&#8220;TestSchema, Version=1.0.0.0, Culture=neutral, publicKeyToken=xxxxxxxxxxxxxxxx&#8221;</span><span style="font-size:10pt;color:#000000;">;  </span></span></p>
<p class="MsoNormal" style="margin:0;padding:0;"><span style="font-family:Verdana;"><span style="font-size:10pt;color:#0000ff;">string</span><span style="font-size:10pt;color:#000000;"> schemaName = </span><span style="font-size:10pt;color:#a31515;">&#8220;TestSchema.MyTestSchema&#8221;</span><span style="font-size:10pt;color:#000000;">; </span></span></p>
<p class="MsoNormal" style="margin:0;padding:0;"><span style="font-family:Verdana;"><span style="font-size:10pt;color:#2b91af;">DocumentSpec </span><span style="font-size:10pt;color:#000000;">docSpec</span><span style="font-size:7.5pt;color:#000000;"> = </span><span style="font-size:10pt;color:#0000ff;">new </span><span style="font-size:10pt;color:#2b91af;">DocumentSpec</span><span style="font-size:10pt;color:#000000;">(schemaName, assemblyDisplayName);</span></span></p>
</div>
<p class="MsoNormal" style="margin:0;"> </p>
<p class="MsoNormal" style="margin:0;"> </p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;"><span style="font-family:Verdana;">This code works fine for single root schemas but you&#8217;ll get an error of you try this for a multiroot schema (an xsd that has multiple root nodes):</span></span></p>
<p class="MsoNormal" style="margin:0;"> </p>
<p class="MsoNormal" style="margin:0;"> </p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:7.5pt;color:#000000;"> <span style="font-size:10pt;color:#000000;"><span style="font-family:Verdana;"><a href="http://biztalkmessages.files.wordpress.com/2008/06/docspecexception.png"><img class="alignnone size-full wp-image-23" src="http://biztalkmessages.files.wordpress.com/2008/06/docspecexception.png?w=407&#038;h=247" alt="" width="407" height="247" /></a></span></span></span></p>
<p class="MsoNormal" style="margin:0;"> </p>
<p class="MsoNormal" style="margin:0;"> </p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;"><span style="font-family:Verdana;">So how can I make this code work for multi root schemas? It took me a while to find out but the solution is simple. Just add the name of the root node of the message you want to create preceeded by a &#8216;+&#8217; sign:</span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:7.5pt;color:#000000;"><span style="font-family:Verdana;"> </span></span></p>
<div style="border:windowtext 1pt solid;padding:1pt 4pt;">
<p class="MsoNormal" style="margin:0;padding:0;"><span style="font-family:Verdana;"><span style="font-size:10pt;color:#0000ff;">string </span><span style="font-size:10pt;color:#000000;">assemblyDisplayName =</span><span style="font-size:10pt;color:#0000ff;"> </span><span style="font-size:10pt;color:#a31515;">&#8220;TestSchema, Version=1.0.0.0, Culture=neutral, publicKeyToken=xxxxxxxxxxxxxxxx&#8221;</span><span style="font-size:10pt;color:#0000ff;">;  </span></span></p>
<p class="MsoNormal" style="margin:0;padding:0;"><span style="font-size:7.5pt;color:#000000;"><span style="font-family:Verdana;"> </span></span></p>
<p class="MsoNormal" style="margin:0;padding:0;"><span style="font-family:Verdana;"><span style="font-size:10pt;color:#0000ff;">string </span><span style="font-size:10pt;color:#000000;">schemaName =</span><span style="font-size:10pt;color:#0000ff;"> </span><span style="font-size:10pt;color:#a31515;">&#8220;TestSchema.MyTestSchema</span><strong><span style="font-size:10pt;color:#a31515;">+myRootNode1</span></strong><span style="font-size:10pt;color:#a31515;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">; </span></span></p>
<p class="MsoNormal" style="margin:0;padding:0;"><span style="font-size:10pt;color:#0000ff;"><span style="font-family:Verdana;"> </span></span></p>
<p class="MsoNormal" style="margin:0;padding:0;"><span style="font-family:Verdana;"><span style="font-size:10pt;color:#2b91af;">DocumentSpec </span><span style="font-size:10pt;">docSpec<span style="color:#0000ff;"> = new </span><span style="color:#2b91af;">DocumentSpec</span><span style="color:#000000;">(schemaName, assemblyDisplayName);</span><span style="color:#0000ff;"> </span></span></span></p>
</div>
<p class="MsoNormal" style="margin:0;"> </p>
<p class="MsoNormal" style="margin:0;"> </p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Verdana;"><span style="font-size:10pt;color:#000000;">This will provide the DocumentSpec class with all the information needed to create a message instance.</span><span style="font-size:10pt;color:#0000ff;"> </span></span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/biztalkmessages.wordpress.com/22/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/biztalkmessages.wordpress.com/22/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=22&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2008/06/19/create-message-instance-from-multiroot-xsd-using-documentspec/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2008/06/docspecexception.png" medium="image" />
	</item>
		<item>
		<title>Call Rules Shape, Atomic Transactions and the Orchestration Designer</title>
		<link>http://biztalkmessages.vansplunteren.net/2008/06/13/call-rules-shape-atomic-transactions-and-the-orchestration-designer/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2008/06/13/call-rules-shape-atomic-transactions-and-the-orchestration-designer/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 06:25:08 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[Orchestrations]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=16</guid>
		<description><![CDATA[One of the nice improvements in BizTalk 2006 R1 (BTS2k6R1) and higher is that you don’t need to use an atomic transaction scope around the “Call Rules” shape. I guess the reason for this is that classes used internally by the Business Rules Engine are now serializable while they were not in previous release.
 
Recently the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=16&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div><a href="http://biztalkmessages.files.wordpress.com/2008/06/orchestration-designer-context-menu.jpg"></a>One of the nice improvements in BizTalk 2006 R1 (BTS2k6R1) and higher is that you don’t need to use an atomic transaction scope around the “Call Rules” shape. I guess the reason for this is that classes used internally by the Business Rules Engine are now serializable while they were not in previous release.</div>
<div> </div>
<div>Recently the orchestration designer in Visual Studio almost got me. I wanted to use a “Call Rules” shape en saw to my surprise that the shape was grayed out in the shape context menu. This is menu you get when you right click somewhere in the orchestration designer surface.</div>
<div><img class="aligncenter size-full wp-image-17" src="http://biztalkmessages.files.wordpress.com/2008/06/orchestration-designer-context-menu.jpg?w=317&#038;h=479" alt="" width="317" height="479" /></div>
<div>What was going on here? Was I wrong? Was it wishful thinking? Did this new feature only exist in my head? Do I still have to use the atomic transaction scope in my orchestrations? Because Visual Studio is always right and I’m always wrong I was about to add the scope to my orchestration.</div>
<div> </div>
<div>Because I still felt a little bit disappointed I decided to have a quick look in the BTS2k6r1 help file. Nothing special was mentioned in the topic “How to Use the Call Rules Shape” however. Still curious I also looked at the same topic in the BTS2k6r2 help file. To my surprise the topic is updated and contains the following note:  </div>
<div> </div>
<div><em>In BizTalk Server 2004, you can insert a Call Rules shape within an orchestration or a Scope shape with Transaction Type set to Atomic. In BizTalk Server 2006, you do not need to have an atomic scope to insert a Call Rules shape. You can drag a Call Rules shape into the Orchestration Design Surface from the Toolbox. However, in BizTalk Server 2006, the Call Rules menu item is disabled in the context menu if you try to insert a Call Rules shape inside an orchestration that does not have an atomic scope. This is a limitation with the BizTalk Server 2006 product.</em></div>
<div><em></em> </div>
<div>So I was right! You don’t have to use an atomic transaction scope anymore. Apparently there is a bug in the orchestration designer. You can only drag a call rules shape from the toolbox to the orchestration designer surface. The same option can only be used from the context menu if you are inside a scope.</div>
<div> </div>
<div>I really wonder what the reason for this is? Is it just a bug? And why didn’t they solve this in BTS2k6r2? And also will it be solved in the coming R3.</div>
<div> </div>
<div>Anyway what point do I want to make here? </div>
<ul>
<li>Visual Studio is not always right. In rare cases you’re right and Visual Studio is not! <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
<li>You don’t have to use an atomic transaction scope anymore when you want to use the “Call Rules” shape.</li>
</ul>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/biztalkmessages.wordpress.com/16/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/biztalkmessages.wordpress.com/16/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=16&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2008/06/13/call-rules-shape-atomic-transactions-and-the-orchestration-designer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2008/06/orchestration-designer-context-menu.jpg" medium="image" />
	</item>
		<item>
		<title>My article on WCF and BizTalk online</title>
		<link>http://biztalkmessages.vansplunteren.net/2008/06/13/my-article-on-wcf-and-biztalk-online/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2008/06/13/my-article-on-wcf-and-biztalk-online/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 06:21:16 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=15</guid>
		<description><![CDATA[Last October I wrote an article for the dutch .Net Magazine. It is about the WCF adapters in BizTalk 2006 R2. Initially the article was planned for the December 2007 issue but the editors decided for some reason to publish it in the March 2008 issue.
Besides a paper version, a digital version is now also made available by [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=15&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Last October I wrote an article for the dutch <a href="http://www.microsoft.com/netherlands/msdn/netmagazine/default.aspx">.Net Magazine</a>. It is about the WCF adapters in BizTalk 2006 R2. Initially the article was planned for the December 2007 issue but the editors decided for some reason to publish it in the March 2008 issue.</p>
<p>Besides a paper version, a digital version is now also made available by Microsoft NL. It can be downloaded from <a href="http://download.microsoft.com/download/0/3/2/0329df9d-70df-44fc-b421-a32bf5fab2c3/dnm20_p21-23_1.27.pdf">here</a>.</p>
<p>Since .Net Magazine is local the article is only available in dutch.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/biztalkmessages.wordpress.com/15/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/biztalkmessages.wordpress.com/15/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=15&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2008/06/13/my-article-on-wcf-and-biztalk-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>
	</item>
		<item>
		<title>BizTalk Server version number overview</title>
		<link>http://biztalkmessages.vansplunteren.net/2008/06/13/biztalk-server-version-number-overview/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2008/06/13/biztalk-server-version-number-overview/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 06:18:46 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[BizTalk]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=14</guid>
		<description><![CDATA[Many times companies run a number of BizTalk instances on different servers. For example development, test and production servers. Especially large companies can have a lot of instances and environments running at the same time. For various reasons you&#8217;re sometimes unable to determine what exact version you&#8217;re looking at. Or you just want to know [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=14&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p><span style="font-family:Arial;">Many times companies run a number of BizTalk instances on different servers. For example development, test and production servers. Especially large companies can have a lot of instances and environments running at the same time. For various reasons you&#8217;re sometimes unable to determine what exact version you&#8217;re looking at. Or you just want to know if a certain service pack is installed.</span></p>
<p><span style="font-family:Arial;">I have read about people with similar problems in the BizTalk newsgroups. I recently encountered this problem too when I wanted to write a little helper class that determines which BizTalk version was installed. I knew that there is a BizTalk version number stored in the registry. The &#8216;ProductVersion&#8217; key located in &#8216;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\BizTalk Server\3.0&#8242; contains this information. The real problem was however how to match this number to a BizTalk version or Service Pack. After searching the net for a long time I decided to make a list myself. I was lucky that I had been to lazy to clean up my harddisk and delete old Biztalk 2004 vpc&#8217;s <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</span></p>
<p><span style="font-family:Arial;">Here is the list:</span> </p>
<table class=" FCK__ShowTableBorders" style="width:506px;height:138px;" border="0" cellspacing="1" cellpadding="1" width="506">
<tbody>
<tr>
<td><strong>Product name</strong></td>
<td><strong>Service pack</strong></td>
<td><strong>Version number</strong></td>
</tr>
<tr>
<td>BizTalk Server 2004</td>
<td>-</td>
<td>3.0.4902.0</td>
</tr>
<tr>
<td>BizTalk Server 2004</td>
<td>SP1</td>
<td>3.0.6070.0</td>
</tr>
<tr>
<td>BizTalk Server 2004</td>
<td>SP2</td>
<td>3.0.7405.0</td>
</tr>
<tr>
<td>BizTalk Server 2006</td>
<td>-</td>
<td>3.5.1602.0</td>
</tr>
<tr>
<td>BizTalk Server 2006 R2</td>
<td>-</td>
<td>3.6.1404.0</td>
</tr>
</tbody>
</table>
<p> </p>
<p><span style="font-family:Arial;">I hope this will save some people a lot of time when they are in the same situation I was. Also there might be better ways that I don&#8217;t know (maybe ExplorerOM or WMI) to retrieve version information. Please drop a comment in that case.</span></p>
<p><span style="font-family:Arial;">There is also a version number stored in the BizTalk SQL Server databases. Most of the BizTalk databases contain a table &#8216;BizTalkDBVersion&#8217; which contains besides the database version number also the product version number. The strange thing is that this number was not altered by the installation of the service packs (SP1 and SP2) on BizTalk 2004. After the upgrade the table still showed &#8216;3.0.4902.0&#8242; as the product version number while the registry version number was changed.</span></p>
<p><span style="font-family:Arial;">I&#8217;ll try to keep this list updated when new versions or service packs are released.</span></p>
<p><span style="font-family:Arial;">There is an updated post on this topic. You can find it <a title="here" href="http://biztalkmessages.vansplunteren.net/2008/12/10/biztalk-server-version-number-overview-updated/" target="_blank">here</a>.</span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/biztalkmessages.wordpress.com/14/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/biztalkmessages.wordpress.com/14/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=14&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2008/06/13/biztalk-server-version-number-overview/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>
	</item>
		<item>
		<title>Updating multiple nodes with different parents and hierarchical levels using the BizTalk BRE</title>
		<link>http://biztalkmessages.vansplunteren.net/2008/06/11/updating-multiple-nodes-with-different-parents-and-hierarchical-levels-using-the-biztalk-bre/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2008/06/11/updating-multiple-nodes-with-different-parents-and-hierarchical-levels-using-the-biztalk-bre/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 06:30:24 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[Business Rules Engine]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=12</guid>
		<description><![CDATA[
Oops, this must be the longest and worst blog post title you have ever seen. Let&#8217;s quickly make clear what I mean:
Recently I needed to update multiple elements using a single rule in the Business Rule Engine (BRE). To most BizTalkers this is nothing special. The thing that complicated this particular scenario was that the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=12&subd=biztalkmessages&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class="postText">
<p><span style="font-family:Arial;"><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_21.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_facts_explorer.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_3.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_3.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_4.jpg"></a>Oops, this must be the longest and worst blog post title you have ever seen. Let&#8217;s quickly make clear what I mean:</span></p>
<p><span style="font-family:Arial;">Recently I needed to update multiple elements using a single rule in the Business Rule Engine (BRE). To most BizTalkers this is nothing special. The thing that complicated this particular scenario was that the elements to update where in different hierarchical levels within the xml instance and thus had different parent nodes.</span></p>
<p><span style="font-family:Arial;">See the following XML and corresponding XSD instance for an example of this scenario:</span></p>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">&lt;</span><span style="font-size:10pt;color:#a31515;">ns0:Customer </span><span style="font-size:10pt;color:#ff0000;">xmlns:ns0</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">http://Samples.</span></span><span style="font-size:10pt;color:#0000ff;">BRE</span><span style="font-size:10pt;color:#0000ff;">.Customer</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">&gt;</span></span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">      &lt;</span><span style="font-size:10pt;color:#a31515;">Name</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">John<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Name</span><span style="color:#0000ff;">&gt;</span></span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">      &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">10<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Discount</span><span style="color:#0000ff;">&gt;</span></span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">      &lt;</span><span style="font-size:10pt;color:#a31515;">Accounts</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">            &lt;</span><span style="font-size:10pt;color:#a31515;">Account</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">ID</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">12<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">ID</span><span style="color:#0000ff;">&gt;</span></span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">10<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Discount</span><span style="color:#0000ff;">&gt;</span></span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">            &lt;/</span><span style="font-size:10pt;color:#a31515;">Account</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">            &lt;</span><span style="font-size:10pt;color:#a31515;">SubAccounts</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">ID</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">34<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">ID</span><span style="color:#0000ff;">&gt;</span></span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">10<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Discount</span><span style="color:#0000ff;">&gt;</span></span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                  &lt;/</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">ID</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">56<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">ID</span><span style="color:#0000ff;">&gt;</span></span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">20<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Discount</span><span style="color:#0000ff;">&gt;</span></span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                  &lt;/</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">ID</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">78<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">ID</span><span style="color:#0000ff;">&gt;</span></span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">10<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Discount</span><span style="color:#0000ff;">&gt;</span></span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                  &lt;/</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">            &lt;/</span><span style="font-size:10pt;color:#a31515;">SubAccounts</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">      &lt;/</span><span style="font-size:10pt;color:#a31515;">Accounts</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;line-height:115%;">&lt;/</span><span style="font-size:10pt;color:#a31515;line-height:115%;">ns0:Customer</span><span style="font-size:10pt;color:#0000ff;line-height:115%;">&gt;</span></span></span></div>
<div style="line-height:normal;"> </div>
<p> </p>
<p> </p>
<p> </p>
<div></div>
<p><span style="font-size:10pt;color:#0000ff;line-height:115%;"></p>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">&lt;?</span><span style="font-size:10pt;color:#a31515;">xml </span><span style="font-size:10pt;color:#ff0000;">version</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">1.0</span>&#8220;<span style="color:#ff0000;">encoding</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">utf-16</span>&#8220;<span style="color:#0000ff;">?&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">&lt;</span><span style="font-size:10pt;color:#a31515;">xs:schema </span><span style="font-size:10pt;color:#ff0000;">xmlns:b</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">http://schemas.microsoft.com/BizTalk/2003</span>&#8221; <span style="color:#ff0000;">xmlns</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">http://Samples.</span></span><span style="font-size:10pt;color:#0000ff;">BRE</span><span style="font-size:10pt;color:#0000ff;">.Customer</span><span style="font-size:10pt;">&#8220;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;"><span style="color:#ff0000;">targetNamespace</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">http://Samples.</span></span><span style="font-size:10pt;color:#0000ff;">BRE</span><span style="font-size:10pt;color:#0000ff;">.Customer</span><span style="font-size:10pt;">&#8221; <span style="color:#ff0000;">xmlns:xs</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">http://www.w3.org/2001/XMLSchema</span>&#8220;<span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;"> &lt;</span><span style="font-size:10pt;color:#a31515;">xs:element </span><span style="font-size:10pt;color:#ff0000;">name</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">Customer</span>&#8220;<span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">    &lt;</span><span style="font-size:10pt;color:#a31515;">xs:complexType</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">      &lt;</span><span style="font-size:10pt;color:#a31515;">xs:sequence</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">        &lt;</span><span style="font-size:10pt;color:#a31515;">xs:element </span><span style="font-size:10pt;color:#ff0000;">minOccurs</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">1</span>&#8221; <span style="color:#ff0000;">maxOccurs</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">1</span>&#8221; <span style="color:#ff0000;">name</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">Name</span>&#8221; <span style="color:#ff0000;">type</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">xs:string</span>&#8220;<span style="color:#0000ff;"> /&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">        &lt;</span><span style="font-size:10pt;color:#a31515;">xs:element </span><span style="font-size:10pt;color:#ff0000;">minOccurs</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">1</span>&#8221; <span style="color:#ff0000;">maxOccurs</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">1</span>&#8221; <span style="color:#ff0000;">name</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">Discount</span>&#8221; <span style="color:#ff0000;">type</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">xs:string</span>&#8220;<span style="color:#0000ff;"> /&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">        &lt;</span><span style="font-size:10pt;color:#a31515;">xs:element </span><span style="font-size:10pt;color:#ff0000;">minOccurs</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">0</span>&#8221; <span style="color:#ff0000;">maxOccurs</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">1</span>&#8221; <span style="color:#ff0000;">name</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">Accounts</span>&#8220;<span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">          &lt;</span><span style="font-size:10pt;color:#a31515;">xs:complexType</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">            &lt;</span><span style="font-size:10pt;color:#a31515;">xs:sequence</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">              &lt;</span><span style="font-size:10pt;color:#a31515;">xs:element </span><span style="font-size:10pt;color:#ff0000;">minOccurs</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">1</span>&#8221; <span style="color:#ff0000;">maxOccurs</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">1</span>&#8221; <span style="color:#ff0000;">name</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">Account</span>&#8220;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;"> <span style="color:#ff0000;">type</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">_Account</span>&#8220;<span style="color:#0000ff;"> /&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">              &lt;</span><span style="font-size:10pt;color:#a31515;">xs:element </span><span style="font-size:10pt;color:#ff0000;">minOccurs</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">0</span>&#8221; <span style="color:#ff0000;">maxOccurs</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">1</span>&#8221; <span style="color:#ff0000;">name</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">SubAccounts</span>&#8220;<span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                &lt;</span><span style="font-size:10pt;color:#a31515;">xs:complexType</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">xs:sequence</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                    &lt;</span><span style="font-size:10pt;color:#a31515;">xs:element </span><span style="font-size:10pt;color:#ff0000;">minOccurs</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">1</span>&#8221; <span style="color:#ff0000;">maxOccurs</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">unbounded</span>&#8220;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;"> <span style="color:#ff0000;">name</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">SubAccount</span>&#8221; <span style="color:#ff0000;">type</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">_Account</span>&#8220;<span style="color:#0000ff;"> /&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  </span><span style="font-size:10pt;color:#0000ff;">&lt;/</span><span style="font-size:10pt;color:#a31515;">xs:sequence</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                &lt;/</span><span style="font-size:10pt;color:#a31515;">xs:complexType</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">              &lt;/</span><span style="font-size:10pt;color:#a31515;">xs:element</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">            &lt;/</span><span style="font-size:10pt;color:#a31515;">xs:sequence</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">          &lt;/</span><span style="font-size:10pt;color:#a31515;">xs:complexType</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">        &lt;/</span><span style="font-size:10pt;color:#a31515;">xs:element</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">      &lt;/</span><span style="font-size:10pt;color:#a31515;">xs:sequence</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">    &lt;/</span><span style="font-size:10pt;color:#a31515;">xs:complexType</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;"> &lt;/</span><span style="font-size:10pt;color:#a31515;">xs:element</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;"> </span><span style="font-size:10pt;color:#0000ff;">&lt;</span><span style="font-size:10pt;color:#a31515;">xs:complexType </span><span style="font-size:10pt;color:#ff0000;">name</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">_Account</span>&#8220;<span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">    &lt;</span><span style="font-size:10pt;color:#a31515;">xs:sequence</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">      &lt;</span><span style="font-size:10pt;color:#a31515;">xs:element </span><span style="font-size:10pt;color:#ff0000;">minOccurs</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">1</span>&#8221; <span style="color:#ff0000;">maxOccurs</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">1</span>&#8221; <span style="color:#ff0000;">name</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">ID</span>&#8221; <span style="color:#ff0000;">type</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">xs:string</span>&#8220;<span style="color:#0000ff;"> /&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">      &lt;</span><span style="font-size:10pt;color:#a31515;">xs:element </span><span style="font-size:10pt;color:#ff0000;">minOccurs</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">1</span>&#8221; <span style="color:#ff0000;">maxOccurs</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">1</span>&#8221; <span style="color:#ff0000;">name</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">Discount</span>&#8221; <span style="color:#ff0000;">type</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">xs:string</span>&#8220;<span style="color:#0000ff;"> /&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">    &lt;/</span><span style="font-size:10pt;color:#a31515;">xs:sequence</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;"> &lt;/</span><span style="font-size:10pt;color:#a31515;">xs:complexType</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;line-height:115%;">&lt;/</span><span style="font-size:10pt;color:#a31515;line-height:115%;">xs:schema</span><span style="font-size:10pt;color:#0000ff;line-height:115%;">&gt;</span></span></div>
<div style="line-height:normal;"> </div>
<div style="line-height:normal;"><span style="font-size:10pt;color:#0000ff;line-height:115%;"><span style="font-family:Arial;">As you can see, the Discount node in this instance is on a different level in the XML structure. Also it has a different parent  (in this case Customer, Account and SubAccount). Now let’s say we need a rule that updates ALL the Discount nodes that have a value of 10. Of course this could be done easily using three separate rules but that would be a bad solution and could be done more simply.<br />
When we drag and drop a new rule in the BRE based on the above schema. The condition of the rule looks something like this:</span></span></div>
<div style="line-height:normal;"><span style="font-size:10pt;color:#0000ff;line-height:115%;"></p>
<p style="line-height:normal;"><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg"></a></p>
<p style="line-height:normal;"><span style="font-family:Arial;"><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_21.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg"><img class="alignnone size-full wp-image-8" src="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg?w=450&#038;h=50" alt="" width="450" height="50" /></a></span></p>
<p style="line-height:normal;"><span style="font-family:Arial;">the corresponding action would be:</span></p>
<p style="line-height:normal;"><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_21.jpg"><img class="alignnone size-full wp-image-13" src="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_21.jpg?w=404&#038;h=61" alt="" width="404" height="61" /></a></p>
<p style="line-height:normal;"><span style="font-family:Arial;">The problem is that, as the xpath statement indicates, this will only affect the Discount nodes directly under the root node. How do we adjust the role so that it will apply to all the Discount nodes in the XML instance?</span></p>
<p style="line-height:normal;"><span style="font-family:Arial;">The solution is to change the XPath Selector and XPath Field properties of the schema. After that we rewrite the rule based on the adjusted values of those properties.</span></p>
<p style="line-height:normal;"><span style="font-family:Arial;">The XPath selector:</span></p>
<p style="line-height:normal;"><span style="font-family:Arial;">The value is by default set to: </span></p>
<p style="line-height:normal;"><span style="color:#000000;font-family:Courier New;">/*[local-name()='Customer' and namespace-uri()='http://Samples.BRE.Customer']</span></p>
<p style="line-height:normal;"><span style="font-family:Arial;">We change this to: </span></p>
<p style="line-height:normal;"><span style="color:#000000;font-family:Courier New;">//*[local-name()='Discount' and namespace-uri()='']</span></p>
<p style="line-height:normal;"><span style="font-family:Arial;">This will select all the Discount nodes on any level regardless of their parent.</span></p>
<p style="line-height:normal;"><span style="font-family:Arial;">Next we have to think of what to fill in for the Xpath Field property. The Xpath Selector now has the complete xpath statement to get to the desired node set. together the XPath Selector and XPath Field are used by the BRE to reference nodes, so ideally would like to leave the Xpath field empty and remove the default value &#8216;<span style="color:#000000;font-family:Courier New;">*[local-name()='Discount' and namespace-uri()='']</span>&#8216; but cannot because the BRE composer won&#8217;t allow an empty Xpath Field property. This means we need a statement that’s not empty and doesn&#8217;t affect the nodes selected by the XPath Selector. The &#8216;<span style="color:#000000;font-family:Courier New;">self::node()</span>&#8216; expression will solve this.</span></p>
<p style="line-height:normal;"><span style="font-family:Arial;">The figure below shows the modified values in the Business Rules Composer:</span></p>
<p style="line-height:normal;"> </p>
<p style="line-height:normal;"> <a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_21.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_facts_explorer.jpg"><img class="alignnone size-full wp-image-7" src="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_facts_explorer.jpg?w=450&#038;h=709" alt="" width="450" height="709" /></a></p>
<p style="line-height:normal;"><span style="font-size:10pt;color:#0000ff;line-height:115%;"><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_21.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_facts_explorer.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_3.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_3.jpg"><img class="alignnone size-full wp-image-10" src="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_3.jpg?w=515&#038;h=68" alt="" width="515" height="68" /></a></span></p>
<p style="line-height:normal;"> </p>
<p style="line-height:normal;"><span style="font-size:10pt;color:#0000ff;line-height:115%;"><span style="font-family:Arial;"><span style="font-family:Arial;">After setting these properties, (re)drag the Discount element to the Conditions and Actions sections. The rule looks like this:</span><br />
</span></span></p>
<p> <a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_21.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_facts_explorer.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_3.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_3.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_4.jpg"><img class="alignnone size-full wp-image-11" src="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_4.jpg?w=493&#038;h=66" alt="" width="493" height="66" /></a></p>
<div><span style="color:#0000ff;"> </span></div>
<div><span style="color:#0000ff;"><span style="font-family:Arial;">Testing the rule in the Business Rule Composer shows that this in fact works:</span></span></div>
<p><span style="color:#0000ff;"> </p>
<p></span></span></div>
<div style="line-height:normal;">
<p><span style="font-family:Arial;">XML instance before BRE:</span> </p>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">&lt;</span><span style="font-size:10pt;color:#a31515;">ns0:Customer </span><span style="font-size:10pt;color:#ff0000;">xmlns:ns0</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">http://Samples.</span></span><span style="font-size:10pt;color:#0000ff;">BRE</span><span style="font-size:10pt;color:#0000ff;">.Customer</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">      &lt;</span><span style="font-size:10pt;color:#a31515;">Name</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">John<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Name</span><span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">      &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><strong><span style="font-size:10pt;">10</span></strong><span style="font-size:10pt;color:#0000ff;">&lt;/</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">      &lt;</span><span style="font-size:10pt;color:#a31515;">Accounts</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">            &lt;</span><span style="font-size:10pt;color:#a31515;">Account</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">ID</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">12<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">ID</span><span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><strong><span style="font-size:10pt;">10</span></strong><span style="font-size:10pt;color:#0000ff;">&lt;/</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">            &lt;/</span><span style="font-size:10pt;color:#a31515;">Account</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">            &lt;</span><span style="font-size:10pt;color:#a31515;">SubAccounts</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">ID</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">34<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">ID</span><span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><strong><span style="font-size:10pt;">10</span></strong><span style="font-size:10pt;color:#0000ff;">&lt;/</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;/</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">ID</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">56<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">ID</span><span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">20<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Discount</span><span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;/</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">ID</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">78<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">ID</span><span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><strong><span style="font-size:10pt;">10</span></strong><span style="font-size:10pt;color:#0000ff;">&lt;/</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;/</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">            &lt;/</span><span style="font-size:10pt;color:#a31515;">SubAccounts</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">      &lt;/</span><span style="font-size:10pt;color:#a31515;">Accounts</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;line-height:115%;">&lt;/</span><span style="font-size:10pt;color:#a31515;line-height:115%;">ns0:Customer</span><span style="font-size:10pt;color:#0000ff;line-height:115%;">&gt;</span></span></div>
<div style="line-height:normal;"> </div>
<div style="line-height:normal;"><span style="font-size:10pt;color:#0000ff;line-height:115%;"><span style="font-family:Arial;">XML instance after BRE:</span></span></div>
<div style="line-height:normal;"> </div>
<div style="line-height:normal;"><span style="font-size:10pt;color:#0000ff;line-height:115%;"></p>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">&lt;</span><span style="font-size:10pt;color:#a31515;">ns0:Customer </span><span style="font-size:10pt;color:#ff0000;">xmlns:ns0</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">http://Samples.</span></span><span style="font-size:10pt;color:#0000ff;">BRE</span><span style="font-size:10pt;color:#0000ff;">.Customer</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">      &lt;</span><span style="font-size:10pt;color:#a31515;">Name</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">John<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Name</span><span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">      &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><strong><span style="font-size:10pt;">40</span></strong><span style="font-size:10pt;color:#0000ff;">&lt;/</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">      &lt;</span><span style="font-size:10pt;color:#a31515;">Accounts</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">            &lt;</span><span style="font-size:10pt;color:#a31515;">Account</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">ID</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">12<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">ID</span><span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><strong><span style="font-size:10pt;">40</span></strong><span style="font-size:10pt;color:#0000ff;">&lt;/</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">            &lt;/</span><span style="font-size:10pt;color:#a31515;">Account</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">            &lt;</span><span style="font-size:10pt;color:#a31515;">SubAccounts</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">ID</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">34<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">ID</span><span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><strong><span style="font-size:10pt;">40</span></strong><span style="font-size:10pt;color:#0000ff;">&lt;/</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;/</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">ID</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">56<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">ID</span><span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">20<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Discount</span><span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;/</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">ID</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">78<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">ID</span><span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><strong><span style="font-size:10pt;">40</span></strong><span style="font-size:10pt;color:#0000ff;">&lt;/</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;/</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">            &lt;/</span><span style="font-size:10pt;color:#a31515;">SubAccounts</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">      &lt;/</span><span style="font-size:10pt;color:#a31515;">Accounts</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<p><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;line-height:115%;">&lt;/</span><span style="font-size:10pt;color:#a31515;line-height:115%;">ns0:Customer</span><span style="font-size:10pt;color:#0000ff;line-height:115%;">&gt;</span></span></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p></span></div>
</div>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p></span></div>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/biztalkmessages.wordpress.com/12/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/biztalkmessages.wordpress.com/12/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&blog=3912620&post=12&subd=biztalkmessages&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2008/06/11/updating-multiple-nodes-with-different-parents-and-hierarchical-levels-using-the-biztalk-bre/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg" medium="image" />

		<media:content url="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_21.jpg" medium="image" />

		<media:content url="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_facts_explorer.jpg" medium="image" />

		<media:content url="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_3.jpg" medium="image" />

		<media:content url="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_4.jpg" medium="image" />
	</item>
	</channel>
</rss>