<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-32172410</id><updated>2011-12-08T22:10:48.983+01:00</updated><category term='BizTalk Monitoring'/><category term='Scheduled Task Adapter'/><category term='MQSC Adapter'/><category term='SQL Server'/><category term='.Net'/><category term='BizTalk'/><category term='Covast ebMS Adapter'/><category term='SQL Server 2005'/><category term='HTTP Receive Adapter'/><category term='BTDF - BizTalk Deployment Framework'/><category term='Dynamic SMTP Port'/><category term='Dynamics AX'/><category term='Orchestration designer'/><category term='FILE Adapter'/><category term='Oracle'/><category term='MSMQ Adapter'/><category term='WCF'/><category term='BizTalk 2010 Mapper'/><category term='AIF Adapter for Dynamics AX 2009'/><category term='BizTalk ESB'/><category term='Tooling'/><category term='NinTex'/><category term='BizTalk - XPath mutator'/><category term='Events'/><category term='Unit Testing'/><category term='WCF-Oracle'/><title type='text'>Integrating to the max...BizTalk style</title><subtitle type='html'>BizTalk developer with an open mind for fresh new technologies who sometimes comes across striking not always funny issues. I will try to blog these and other knowledge i would like to share...

Main interests: BizTalk / .Net / SQL Server</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>69</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-32172410.post-3874219308930192443</id><published>2011-12-08T22:10:00.001+01:00</published><updated>2011-12-08T22:10:49.008+01:00</updated><title type='text'>IASA Architect Core training completed</title><content type='html'>&lt;p&gt;I’ve completed the &lt;a href="https://www.iasaglobal.org/assnfe/CourseView.asp?MODE=VIEW&amp;amp;clCourseID=1&amp;amp;csCategory=&amp;amp;csFrom=&amp;amp;csTo=&amp;amp;csKeyWord=&amp;amp;csSortBy=1&amp;amp;clPageNumber=1"&gt;IASA Architect Course&lt;/a&gt; and have completed the exam for “IASA Foundation Certification”. &lt;p&gt;My review of the course is that it is really good, in direct applicable aspects of architecture and for long-term development of personal skills. &lt;p&gt;This is what “IASA Foundation” stands for: &lt;p&gt;· The foundation phase of an architects career is focused on understanding the skills, capabilities and knowledge a practicing architect possesses. Although many architects have already reached significantly higher phases in their career, very few did so in a standard way. Most learned through trial and error, often in the most difficult ways. The foundation phase of an architects career will be a time of discovery to understand how an architect practices, what it means to specialize, and what an architect will need to know to be successful. Iasa calls those that are looking to become architects, Aspiring Architects. Whereas, the first full phase in an architects career is marked by reaching the Foundation Certification. It represents individuals who have demonstrated awareness of the Foundation ITABoK through a multiple choice exam. More importantly the Iasa certification represents a personal awareness of all of the required skills and associated knowledge for a practitioner. Even seasoned professional architects who have attended the Iasa Core training, which prepares architects for the exam, have stated how valuable this kind of comprehensive approach is to them.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-3874219308930192443?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/3874219308930192443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/12/iasa-architect-core-training-completed.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/3874219308930192443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/3874219308930192443'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/12/iasa-architect-core-training-completed.html' title='IASA Architect Core training completed'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-2037248896712302433</id><published>2011-10-30T10:40:00.000+01:00</published><updated>2011-10-30T10:50:18.782+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk 2010 Mapper'/><title type='text'>Changing BizTalk Mapper Item templates</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;To be able to configure default value for artifacts that are created from within Visual Studio we can leverage the ‘Item Template‘ functionality.&lt;/p&gt; &lt;p&gt;I have done this to adjust the mapping behavior , specifically the value for setting ‘GenerateDefaultFixedNodes’ which is default ‘YES’. &lt;a href="http://snefs.blogspot.com/2011/10/biztalk-mapper-vs-attributes-with.html"&gt;See my previous post&lt;/a&gt; on this subject. &lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:4dcc0409-0ecc-40a0-a1bc-482dade671ee" class="wlWriterEditableSmartContent"&gt;Tags van Technorati: &lt;a href="http://technorati.com/tags/Item+Templates+BizTalk+Mapper+Mapper+behavior" rel="tag"&gt;Item Templates BizTalk Mapper Mapper behavior&lt;/a&gt;&lt;/div&gt; &lt;p&gt;&lt;strong&gt;Below are the steps to follow&lt;/strong&gt;  &lt;p&gt;The ItemTemplates is a folder that contains the template files used when you create a new item.  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-XO_eS0fV7I4/TqsmrxcwNWI/AAAAAAAAAV4/PUxGfPSKODo/s1600-h/clip_image0013.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://lh6.ggpht.com/-70Ln-ve6oWE/TqsmsWc1mjI/AAAAAAAAAV8/FwOcLmRD6w4/clip_image001_thumb.jpg?imgmax=800" width="244" height="142"&gt;&lt;/a&gt;  &lt;p&gt;The map template can be found in the folder: &lt;b&gt;Map Files&lt;/b&gt;  &lt;p&gt;This is a .zip file that contains a .BTM file. Change the value of ‘GenerateDefaultFixedNodes’ to one of the above values and save the .zip file.  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-YnKaQqARbe4/TqsmsrBDMPI/AAAAAAAAAWE/BKohrubtLg8/s1600-h/clip_image0024.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://lh3.ggpht.com/-jqRZ6S8iFp8/TqsmtD8fB6I/AAAAAAAAAWQ/BkCf4OGi_qA/clip_image002_thumb.jpg?imgmax=800" width="244" height="74"&gt;&lt;/a&gt;  &lt;p&gt;After changing the value, the template is not working, why??? The templates are &lt;b&gt;cached&lt;/b&gt; in the folder:  &lt;p&gt;C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\&lt;b&gt;ItemTemplatesCached&lt;/b&gt;\BizTalk\&lt;b&gt;Map Files&lt;/b&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-HMSa0bmxvAA/TqsmuEt4ijI/AAAAAAAAAWU/YBc2OOQT6tk/s1600-h/clip_image0033.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image003" border="0" alt="clip_image003" src="http://lh3.ggpht.com/-aZtIsEr0I10/TqsmuoXNuDI/AAAAAAAAAWc/nY-t06VVCaI/clip_image003_thumb.jpg?imgmax=800" width="244" height="89"&gt;&lt;/a&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-Ac_QUqfmAT8/TqsmvAVo-kI/AAAAAAAAAWk/mkAG0AD-VzM/s1600-h/clip_image0044.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://lh6.ggpht.com/-CCN2hnu70Ao/TqsmvrpoBrI/AAAAAAAAAWw/CZqxmfxgzZ0/clip_image004_thumb.jpg?imgmax=800" width="244" height="79"&gt;&lt;/a&gt;  &lt;p&gt;You have to register the value by entering the following command (devenv /installvstemplates):  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-Cs0MCeDUcz8/Tqsmwz8uxiI/AAAAAAAAAW0/zAvGAWp0bZQ/s1600-h/clip_image0053.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image005" border="0" alt="clip_image005" src="http://lh4.ggpht.com/-a9mBCkJHR-M/TqsmxhAeEpI/AAAAAAAAAW8/flv84ZTee7g/clip_image005_thumb.jpg?imgmax=800" width="244" height="49"&gt;&lt;/a&gt;  &lt;p&gt;Note: if you have multiple zips files, the FIRST zip file is used, i made the mistake to rename the original Map.old.zip, which still resulted in the old template to be registered.  &lt;p&gt;If you create a new MAP, the template will now be used:  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-NLWgxeo4JQ0/Tqsmx674cPI/AAAAAAAAAXE/eCa9zI0x-1s/s1600-h/clip_image0064.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://lh5.ggpht.com/-o_cAFIcNdjU/TqsmyTJwe3I/AAAAAAAAAXQ/mfZCGnEcuO4/clip_image006_thumb.jpg?imgmax=800" width="244" height="52"&gt;&lt;/a&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-P9QsoXhL3GU/TqsmzdtOA5I/AAAAAAAAAXU/oIiCpg_JsNc/s1600-h/clip_image0073.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image007" border="0" alt="clip_image007" src="http://lh3.ggpht.com/-UqAQj3MuFKI/Tqsmztyl34I/AAAAAAAAAXg/F2NwOOyopQ4/clip_image007_thumb.jpg?imgmax=800" width="244" height="45"&gt;&lt;/a&gt;  &lt;p&gt;Note: The only supported values are: ‘Yes’ / ”” / ‘RequiredDefaults’, i recommend to use ‘RequiredDefaults’  &lt;p&gt;Be sure to read this (Accommodating Schemas with Large Footprints)!  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa561485(v=bts.10).aspx"&gt;http://msdn.microsoft.com/en-us/library/aa561485(v=bts.10).aspx&lt;/a&gt;  &lt;p&gt;“when the &lt;strong&gt;GenerateDefaultFixedNodes&lt;/strong&gt; flag is set to &lt;strong&gt;No&lt;/strong&gt;, the default field values set in the target schema are not preserved in the instance produced by the map. This is a &lt;b&gt;problem&lt;/b&gt; when these values are &lt;b&gt;required&lt;/b&gt; in the target instance”.  &lt;p&gt;&amp;nbsp; &lt;p&gt;HTH,  &lt;p&gt;Sander Nefs    &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-2037248896712302433?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/2037248896712302433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/10/changing-biztalk-mapper-item-templates.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/2037248896712302433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/2037248896712302433'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/10/changing-biztalk-mapper-item-templates.html' title='Changing BizTalk Mapper Item templates'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-70Ln-ve6oWE/TqsmsWc1mjI/AAAAAAAAAV8/FwOcLmRD6w4/s72-c/clip_image001_thumb.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-4300140730348952933</id><published>2011-10-30T10:32:00.000+01:00</published><updated>2011-10-30T10:33:32.886+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk 2010 Mapper'/><title type='text'>BizTalk Mapper vs Attributes with Defaults….Schema Elements with an attribute having a default value are ALWAYS generated</title><content type='html'>&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;‘Challenge’: &lt;/strong&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Schema Elements with an attribute having a default value are ALWAYS generated, this is because of the default mapping behavior. &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;Structure of this post:&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;What is the problem&lt;/strong&gt;  &lt;li&gt;&lt;strong&gt;Why is this&lt;/strong&gt;  &lt;li&gt;&lt;strong&gt;How to overcome this&lt;/strong&gt;  &lt;li&gt;&lt;strong&gt;&lt;a href="http://snefs.blogspot.com/2011/10/changing-biztalk-mapper-item-templates.html"&gt;Change BizTalk behavior using visual studio templates&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;What is the problem&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Attributes with a Default Value are generated even though the element is optional. Consider this schema, which has an Data element.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/--aSmhkVRHoo/Tqslc8k0Y2I/AAAAAAAAAUo/qcuJsHNzdOE/s1600-h/image3.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/-G9-whT0l_XM/TqsldU57b9I/AAAAAAAAAUs/fykrxPCscL4/image_thumb1.png?imgmax=800" width="145" height="128"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;The element ‘OptionalAttributeDefault’ is optional (minoccurs:0) and has an attribute with a Default value: ‘LINUX’&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-JmCgMd8YVKc/Tqsld5xDbhI/AAAAAAAAAU4/-1qQ2TFG-RY/s1600-h/image9.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-KjTrl8RfuB4/TqslfWiyruI/AAAAAAAAAVA/Q7s3GnzIuos/image_thumb3.png?imgmax=800" width="244" height="93"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;The element ‘RequiredAttributeDefault’ is mandatory (minoccurs:1) and has an attribute with a Default value: ‘CAT141.12’&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-kjPag6e683I/TqslgK8Q1gI/AAAAAAAAAVE/toDEV9cE8sc/s1600-h/image12.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-0SLq-n1sieI/Tqslg5TiKmI/AAAAAAAAAVM/a0XNa2qiAv8/image_thumb4.png?imgmax=800" width="244" height="65"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;The element ‘RequiredDefaultValue’ is mandatory (minoccurs:1) and has a default value: ‘Test’&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-Ab0hO-ypZ3s/TqslhUZ7p7I/AAAAAAAAAVU/BO4EV-TqGJo/s1600-h/image18.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/-l5ApNwJrZG0/TqsliO6cP6I/AAAAAAAAAVc/64LVBsg_ytM/image_thumb6.png?imgmax=800" width="244" height="21"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;When we execute the map which does not map the ‘Data’ element like this:  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-aAt5nJztW2s/Tqsli2SMQOI/AAAAAAAAAVo/GYptfvUQj7o/s1600-h/image21.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/-vIfO6fUVqek/Tqsljhme93I/AAAAAAAAAVs/No125lP67lE/image_thumb7.png?imgmax=800" width="244" height="118"&gt;&lt;/a&gt;  &lt;p&gt;The XML output generated is:  &lt;blockquote&gt; &lt;p&gt;&amp;lt;ns0:Destination xmlns:ns0="&lt;a href="http://AttributeTest.Schema2&amp;quot;"&gt;http://AttributeTest.Schema2"&lt;/a&gt;&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Name&amp;gt;Name_0&amp;lt;/Name&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ID&amp;gt;ID_0&amp;lt;/ID&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Data&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;OptionalAttributeDefault Type="LINUX"&amp;gt;&amp;lt;/OptionalAttributeDefault&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;RequiredAttributeDefault Type="CAT141.12"&amp;gt;&amp;lt;/RequiredAttributeDefault&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;RequiredDefaultValue&amp;gt;Test&amp;lt;/RequiredDefaultValue&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Data&amp;gt;&lt;br&gt;&amp;lt;/ns0:Destination&amp;gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;font color="#ff0000"&gt;Issue: All [DATA] elements are generated, optional elements with an attribute default as well&lt;/font&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp; &lt;p&gt;&lt;strong&gt;Why is this&lt;/strong&gt;  &lt;p&gt;This is because the .btm file is configured with a behavior to always generate the default values, even for optional elements.  &lt;p&gt;Although we can state that the default values have to be removed, that is not always possible. I came across this issue when implementing UBL (from OASIS).  &lt;p&gt;&amp;nbsp; &lt;p&gt;&lt;strong&gt;How to overcome this&lt;/strong&gt;  &lt;p&gt;We can overcome this be altering the behavior of the map, this can be done by opening the .BTM file and navigate to the attribute: ‘GenerateDefaultFixedNodes’, which is default “YES”.  &lt;p&gt;Before making any changes, we have to understand which options there are:  &lt;ul&gt; &lt;li&gt;GenerateDefaultFixedNodes=”Yes” : default behavior  &lt;li&gt;GenerateDefaultFixedNodes=”” : this will generate &lt;font color="#ff0000"&gt;no elements&lt;/font&gt; if the attribute has a value, &lt;font color="#ff0000"&gt;even when the element is mandatory! &lt;/font&gt;&lt;/li&gt;&lt;/ul&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;Note: you can set the value to whatever (no, false, etc) however when you save the map it will become “” &lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;Example result:&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;&amp;lt;sns0:Destination xmlns:ns0="&lt;a href="http://AttributeTest.Schema2&amp;quot;"&gt;http://AttributeTest.Schema2"&lt;/a&gt;&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;Name&amp;gt;Name_0&amp;lt;/Name&amp;gt; &lt;br&gt;&amp;nbsp; &amp;lt;ID&amp;gt;ID_0&amp;lt;/ID&amp;gt; &lt;br&gt;&amp;lt;/ns0:Destination&amp;gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#ff0000"&gt;Issue: No [DATA] element is generated&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;ul&gt; &lt;li&gt;GenerateDefaultFixedNodes=”RequiredDefaults” : this will generate elements with minoccurs=1 in case it has attributes with a default value&lt;/li&gt;&lt;/ul&gt; &lt;blockquote&gt; &lt;p&gt;Example result:  &lt;p&gt;&amp;lt;ns0:Destination xmlns:ns0="&lt;a href="http://AttributeTest.Schema2&amp;quot;"&gt;http://AttributeTest.Schema2"&lt;/a&gt;&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Name&amp;gt;Name_0&amp;lt;/Name&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ID&amp;gt;ID_0&amp;lt;/ID&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Data&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;RequiredDefaultValue&amp;gt;Test&amp;lt;/RequiredDefaultValue&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Data&amp;gt;&lt;br&gt;&amp;lt;/ns0:Destination&amp;gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#ff0000"&gt;Issue: results are still not valid (Required elements with default attribute value are not created, thus validation fails &lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&amp;nbsp; &lt;p&gt;This means that even though you can configure the behavior of the mapping &lt;font color="#ff0000"&gt;there is no perfect solution&lt;/font&gt;. You either have: &lt;/p&gt; &lt;ul&gt; &lt;li&gt;to modify the default values and use the default behavior  &lt;li&gt;have to ensure that elements/attributes are set (you can not rely on any of the default attributes anymore since elements are not created)&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Since this is quite important, I’ve created a sample project that has a map for each setting, and a readme.txt with information about the results.&lt;/p&gt; &lt;p&gt;In the next post I will explain how to change the ‘template’ used when creating maps.&lt;/p&gt; &lt;p&gt;HTH,&lt;/p&gt; &lt;p&gt;Sander Nefs&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:33033cbc-38f3-4010-bbde-2e9b61a55b26" class="wlWriterEditableSmartContent"&gt;Tags van Technorati: &lt;a href="http://technorati.com/tags/BizTalk+Mapping+Default+Attributes+UBL" rel="tag"&gt;BizTalk Mapping Default Attributes UBL&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-4300140730348952933?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/4300140730348952933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/10/biztalk-mapper-vs-attributes-with_30.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/4300140730348952933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/4300140730348952933'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/10/biztalk-mapper-vs-attributes-with_30.html' title='BizTalk Mapper vs Attributes with Defaults….Schema Elements with an attribute having a default value are ALWAYS generated'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/-G9-whT0l_XM/TqsldU57b9I/AAAAAAAAAUs/fykrxPCscL4/s72-c/image_thumb1.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-311411444060391760</id><published>2011-10-28T17:45:00.000+02:00</published><updated>2011-10-28T17:45:00.157+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tooling'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk 2010 Mapper'/><title type='text'>BizTalk Scripting functoid explorer (codeplex)</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I came across this tool to &lt;a href="http://biztalkscrptfuncexpl.codeplex.com/releases/view/10780#DownloadId=27687"&gt;extract the scripts from maps&lt;/a&gt; found in a folder and really like it.&lt;/p&gt; &lt;p&gt;Running the tool on my project BizTalk 2010, I had some errors (minor), I have posted a &lt;a href="http://biztalkscrptfuncexpl.codeplex.com/SourceControl/list/patches"&gt;patch&lt;/a&gt; with some minor modifications.&lt;/p&gt; &lt;p&gt;If anyone is an Xslt Guru, please contribute because this would make it a perfect tool to generate Mapping documentation!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Cheers,&lt;/p&gt; &lt;p&gt;Sander&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-311411444060391760?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/311411444060391760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/10/biztalk-scripting-functoid-explorer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/311411444060391760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/311411444060391760'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/10/biztalk-scripting-functoid-explorer.html' title='BizTalk Scripting functoid explorer (codeplex)'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-2008979099055438340</id><published>2011-10-26T18:47:00.000+02:00</published><updated>2011-10-26T18:47:00.410+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><title type='text'>Flat File schema - The tag overlaps one or more fields that contain a fixed data value</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I recently had to patch up a schema that was defined but had to be evaluated for re-usability.&lt;/p&gt; &lt;p&gt;This warning was generated:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Warning&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; Record "RecepientOrderShipDetail" - The tag overlaps one or more fields that contain a fixed data value.&amp;nbsp;&amp;nbsp;&amp;nbsp; \OrderShipped_FF_&amp;lt;System&amp;gt;.xsd &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The record RecepientOrderShipDetail had a TAG identifier which was correct, however for some reason a child atrribute @RecordID has a FIXED value with the same value as the parents TAG identifier. &lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-D84a6NHEl3k/TqfzVckYHTI/AAAAAAAAAUI/fZ8plNNe3Tg/s1600-h/image%25255B2%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/-SqfhS_vZDVg/TqfzV9sVGFI/AAAAAAAAAUM/I3KK8lCB78U/image_thumb.png?imgmax=800" width="162" height="36"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Since both the TAGS were working on the same Offset the positional ‘bandwidth’ was used by the Attribute.&lt;/p&gt; &lt;p&gt;To prevent this warning I removed the fixed value of the Attribute&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Since this error is rather unclear I hope this helps in solving the problem when you run into this.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Regards,&lt;/p&gt; &lt;p&gt;Sander&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-2008979099055438340?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/2008979099055438340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/10/flat-file-schema-tag-overlaps-one-or.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/2008979099055438340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/2008979099055438340'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/10/flat-file-schema-tag-overlaps-one-or.html' title='Flat File schema - The tag overlaps one or more fields that contain a fixed data value'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/-SqfhS_vZDVg/TqfzV9sVGFI/AAAAAAAAAUM/I3KK8lCB78U/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-8023960018937885564</id><published>2011-10-15T20:23:00.001+02:00</published><updated>2011-10-15T20:23:43.752+02:00</updated><title type='text'>BizTalk Deployment Framework – Always provide the OutputPath!</title><content type='html'>&lt;p&gt;A hard lesson I learnt….as I was fiddling around with the BizTalk Deployment Configuration, ALWAYS make sure to define a property group applicable to your configuration and be sure to set the OutputPath. I had defined several propertygroups and modified the conditions to make sure it would work on a build server (provided additional MSBuild properties), however I forgot one combination, the PropertyGroup for the ‘Release’ configuration. I had set my BTDF project to configuration ‘Release’….which led to a not so cool outcome…files were removed from C:\&lt;/p&gt; &lt;p&gt;This is caused by the WixTargets file (MSBUILD\Deployment Framework For BizTalk\5.0\BizTalkDeploymentFramework.WiXSetup.targets;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Delete any existing output files --&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;CreateItem Include="$(OutputPath)\**\*.*"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Output TaskParameter="Include" ItemName="OutputsToClean" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/CreateItem&amp;gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;If the $(OutputPath) is not provided the value become “.” causing the effect.&lt;/p&gt; &lt;p&gt;You can overcome this (until RC2 is out) by adding the following to you targets file:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&amp;nbsp; &amp;lt;Target Name="Installer" DependsOnTargets="Redist"&amp;gt;&lt;br&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Error Text="The build was aborted, no OutputPath provided"&amp;nbsp;&amp;nbsp; &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Condition="'$(OutputPath)'" /&amp;gt;&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;u&gt;Which will stop the build;&lt;/u&gt;&lt;/p&gt; &lt;p&gt;Build FAILED.&lt;/p&gt; &lt;p&gt;"C:\Projects\Rfs.Integration\Dev\Rfs.Integration.Common\Rfs.Integration.Common.Deployment\Rfs.Integration.Common.Deployment.btdfproj" (Installer target) (1) -&amp;gt;&lt;br&gt;(NoOutputPath target) -&amp;gt; &lt;br&gt;&amp;nbsp; C:\Program Files (x86)\MSBuild\DeploymentFrameworkForBizTalk\5.0\BizTalkDeploymentFramework.WiXSetup.targets(206,3): error : &lt;strong&gt;The build was aborted, no OutputPath provided &lt;/strong&gt;[C:\Projects\Rfs.Integration\Dev\Rfs.Integration.Common\Rfs.Integration.Common.Deployment\Rfs.Integration.Common.Deployment.btdfproj]&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 Warning(s)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 Error(s)&lt;/p&gt; &lt;p&gt;Time Elapsed 00:00:01.23&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Hope this prevents someone from making the same mistake. Also, make sure you make enough backups! (and keep them &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-sadsmile" alt="Bedroefde emoticon" src="http://lh5.ggpht.com/-h3siA7eeHo8/TpnPrqNFeWI/AAAAAAAAAUA/MSFAspZXigc/wlEmoticon-sadsmile2.png?imgmax=800"&gt;)&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Sander&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-8023960018937885564?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/8023960018937885564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/10/biztalk-deployment-framework-always.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/8023960018937885564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/8023960018937885564'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/10/biztalk-deployment-framework-always.html' title='BizTalk Deployment Framework – Always provide the OutputPath!'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-h3siA7eeHo8/TpnPrqNFeWI/AAAAAAAAAUA/MSFAspZXigc/s72-c/wlEmoticon-sadsmile2.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-9075609395284487691</id><published>2011-10-15T20:20:00.001+02:00</published><updated>2011-10-15T20:20:10.025+02:00</updated><title type='text'>ESB Toolkit ‘DSL Itinerary error (XML Node not serializable)’</title><content type='html'>&lt;p&gt;Today I received this error;&lt;/p&gt; &lt;p&gt;Cannot save 'C:\Projects\&amp;lt;SolutionFolders&amp;gt;\&amp;lt;NameOfItinerary&amp;gt;.itinerary': Type 'System.Xml.XmlNode' in Assembly 'System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;As stated in the &lt;a href="http://social.msdn.microsoft.com/forums/en-us/biztalkesb/thread/5E79959A-848C-4FE1-A41D-2D976D436631"&gt;Biztalk social forum&lt;/a&gt; ;&lt;/p&gt; &lt;p&gt;- Somehow one of the shapes led to a corrupted itinerary&lt;/p&gt; &lt;p&gt;- Remove the shapes one by one to identify the one generating the error&lt;/p&gt; &lt;p&gt;- Recreate the shape&lt;/p&gt; &lt;p&gt;- It now works…magic!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Also make sure that &lt;strong&gt;everything is properly deployed&lt;/strong&gt;&amp;nbsp; (when using an orchestation extender) before changing the itineraries.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;HTH,&lt;/p&gt; &lt;p&gt;Sander&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-9075609395284487691?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/9075609395284487691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/10/esb-toolkit-dsl-itinerary-error-xml.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/9075609395284487691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/9075609395284487691'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/10/esb-toolkit-dsl-itinerary-error-xml.html' title='ESB Toolkit ‘DSL Itinerary error (XML Node not serializable)’'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-1196682714004820233</id><published>2011-10-08T12:17:00.001+02:00</published><updated>2011-10-08T12:17:13.083+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WCF-Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>WCF-Oracle and Oracle Advanced Queing (AQ) – tips</title><content type='html'>&lt;p&gt;If you use the WCF-Oracle adapter to communicate with Oracle Advanced Queing you are in for a treat. We followed the steps suggested in a very good &lt;a href="http://blogs.msdn.com/b/adapters/archive/2009/05/25/using-oracle-database-or-oracle-ebs-adapter-for-oracle-aq-advanced-queuing.aspx"&gt;MSDN post&lt;/a&gt;. There are however some caveats;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Username is case sensitive&lt;/li&gt;    &lt;li&gt;The generated schemas have a reference to the package, and Database schema, make sure this is consistent throughout the environments&lt;/li&gt;    &lt;li&gt;The generated schemas are slightly different then what the WCF-Oracle adapter expects in some cases (more on that below)&lt;/li&gt;    &lt;li&gt;Use a count procedure to determine if there are messages&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Generated the schemas is done by following the standard ‘Add Generated items’ wizard so that should not be hard to do. When you generate schemas for Oracle they will typically have the targetnamespace:&lt;/p&gt;  &lt;blockquote&gt;   &lt;h3&gt;&lt;a href="http://Microsoft.LobServices.OracleDB/2007/03/"&gt;&lt;font face="Verdana"&gt;&lt;a href="http://Microsoft.LobServices.OracleDB/2007/03/&amp;lt;DATABASESCHEMA&amp;gt;/Package/&amp;lt;PACKAGENAME"&gt;&lt;font size="2"&gt;/Package/http://Microsoft.LobServices.OracleDB/2007/03/&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;font face="Verdana"&gt;&lt;font size="2"&gt;&lt;strong&gt;&amp;lt;DATABASESCHEMA&amp;gt;&lt;/strong&gt;/Package/&lt;strong&gt;&amp;lt;PACKAGENAME&lt;/strong&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/a&gt;&lt;/h3&gt; &lt;/blockquote&gt;  &lt;p&gt;Where the &amp;lt;DATABASESCHEMA&amp;gt; could be something like ‘DBOWNER’ and the packagename could be whatever. &lt;/p&gt;  &lt;p&gt;When you implement this everything seems ok, until you start testing, receiving messages won’t work (not supported exception stating that the &lt;u&gt;action is invalid&lt;/u&gt;;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-glZplD5XKlc/TpAjIc35nOI/AAAAAAAAATM/97ARbQfYwDk/s1600-h/image%25255B2%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-1Em4vtQLnwI/TpAjIwklBCI/AAAAAAAAATQ/d24OBCgoo9s/image_thumb.png?imgmax=800" width="244" height="117" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This is because the WCF-Oracle adapter expects a different targetnamespace!! &lt;/p&gt;  &lt;p&gt;See the namespace below with the subtile change from ‘Package’ to ‘PollingPackage’ ;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;h3&gt;&lt;font size="2" face="Verdana"&gt;http://Microsoft.LobServices.OracleDB/2007/03/&amp;lt;DATABASESCHEMA&amp;gt;/&lt;font style="background-color: #f3a447" color="#ff0000"&gt;Polling&lt;/font&gt;&lt;/font&gt;&lt;font style="style" size="2" face="Verdana"&gt;&lt;font style="style" color="#c0504d"&gt;Package&lt;/font&gt;&lt;/font&gt;&lt;font size="2" face="Verdana"&gt;&lt;font style="background-color: #f3a447" color="#ff0000"&gt;&lt;/font&gt;/&amp;lt;PACKAGENAME&amp;gt;&lt;/font&gt;&lt;/h3&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;I therefore strongly recommend to generate a separate schema for each receiving procedure (this allows you to alter the targetnamespace), as it works fine for non receiving procedures which can be generated into a single schema.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Another thing that will get in the way is that the generated schema is somehow now in lign with the message returned;&lt;/p&gt;  &lt;p&gt;The message structure is pretty logical;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-9Qq03o7Ee9w/TpAjJBloYaI/AAAAAAAAATU/9mRY4wDWCGs/s1600-h/clip_image001%25255B3%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://lh5.ggpht.com/-ql4H0wQT56w/TpAjJRFrWOI/AAAAAAAAATY/5VsZ8Q45BIs/clip_image001_thumb.png?imgmax=800" width="235" height="57" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The generated items wizard however generates somewhat different;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-D8owpXZvebM/TpAjJ_rW4uI/AAAAAAAAATc/3HNsLDbrYzQ/s1600-h/clip_image002%25255B3%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://lh6.ggpht.com/-YGB1o5wBxY4/TpAjKPB977I/AAAAAAAAATg/RKxLXoRPkYc/clip_image002_thumb.png?imgmax=800" width="194" height="100" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Take this into account when receiving the message in my case I had to extract the message body out of an envelope so I used the WCF feature to extract this body out using XPath&lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;/*[local-name()='DEQUEUE']/*[local-name()='DEQUEUEResult']&lt;/b&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;To be sure to only receive messages when there are messages on the queue, define a stored procedures that checks for messages.&lt;/p&gt;  &lt;p&gt;The adapter can then be configured like this:&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="0" width="413"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="206"&gt;         &lt;p&gt;&lt;b&gt;Property&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="205"&gt;         &lt;p&gt;&lt;b&gt;Configuration&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="206"&gt;         &lt;p&gt;PolledDataAvailable Statement&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="205"&gt;         &lt;p&gt;SELECT &amp;lt;DATABASESCHEMA&amp;gt;.&amp;lt;PACKAGE&amp;gt;.&amp;lt;PROCEDURE&amp;gt; FROM DUAL&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="206"&gt;         &lt;p&gt;PollingAction&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="205"&gt;         &lt;p&gt;http://Microsoft.LobServices.OracleDB/2007/03/&amp;lt;DATABASESCHEMA&amp;gt;/&lt;font color="#ff0000"&gt;&lt;strong&gt;PollingPackage&lt;/strong&gt;&lt;/font&gt;/&amp;lt;PACKAGENAME&amp;gt;/&amp;lt;PROCEDURE&amp;gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="206"&gt;         &lt;p&gt;PollingStatement&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="205"&gt;         &lt;p&gt;&amp;lt;ns0:DEQUEUE xmlns:ns0=&lt;a href="http://Microsoft.LobServices.OracleDB/2007/03/&amp;lt;DATABASESCHEMA&amp;gt;/Package/&amp;lt;PROCEDURE&amp;gt;"&gt;/Package/&amp;quot;&amp;gt;http://Microsoft.LobServices.OracleDB/2007/03/&amp;lt;DATABASESCHEMA&amp;gt;/&lt;strong&gt;&lt;font style="background-color: #f79646" color="#ff0000"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;a href="http://Microsoft.LobServices.OracleDB/2007/03/&amp;lt;DATABASESCHEMA&amp;gt;/Package/&amp;lt;PROCEDURE&amp;gt;"&gt;&lt;strong&gt;&lt;font style="style" color="#ff0000"&gt;/Package/&amp;quot;&amp;gt;Package&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;a href="http://Microsoft.LobServices.OracleDB/2007/03/&amp;lt;DATABASESCHEMA&amp;gt;/Package/&amp;lt;PROCEDURE&amp;gt;"&gt;&lt;strong&gt;&lt;font style="background-color: #f79646" color="#ff0000"&gt;&lt;/font&gt;&lt;/strong&gt;/Package/&amp;quot;&amp;gt;/&amp;lt;PROCEDURE&amp;gt;&lt;/a&gt; /&amp;gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This should get you right on track!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Sander&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-1196682714004820233?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/1196682714004820233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/10/wcf-oracle-and-oracle-advanced-queing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/1196682714004820233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/1196682714004820233'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/10/wcf-oracle-and-oracle-advanced-queing.html' title='WCF-Oracle and Oracle Advanced Queing (AQ) – tips'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-1Em4vtQLnwI/TpAjIwklBCI/AAAAAAAAATQ/d24OBCgoo9s/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-7907666562742944537</id><published>2011-10-07T17:19:00.000+02:00</published><updated>2011-10-07T17:19:00.785+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Events'/><title type='text'>New look and feel</title><content type='html'>&lt;p&gt;Hi there,&lt;/p&gt;  &lt;p&gt;Minor update on my blog, I completely changed to look and feel, hopefully it’s now more accessible.&lt;/p&gt;  &lt;p&gt;I will try to update my blog more often!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Regards,&lt;/p&gt;  &lt;p&gt;Sander&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-7907666562742944537?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/7907666562742944537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/10/new-look-and-feel.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/7907666562742944537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/7907666562742944537'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/10/new-look-and-feel.html' title='New look and feel'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-3969516218785013867</id><published>2011-09-23T18:09:00.001+02:00</published><updated>2011-09-23T18:09:07.820+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tooling'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><title type='text'>Use ETW to Trace messages inside an orchestration</title><content type='html'>&lt;p&gt;I've been using the ETW framework heavily and it works great. Before i knew ETW i would use:&lt;/p&gt;  &lt;p&gt;System.Diagnostics.Trace.Writeline(&amp;quot;Message data: &amp;quot; + xmlDoc.OuterXml) which works geat.&lt;/p&gt;  &lt;p&gt;I wanted to log the data using ETW, however i can not get it to work with ETW, anyone knows what the deal is?&lt;/p&gt;  &lt;p&gt;&lt;u&gt;CODE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;xmlDoc = inboundMessage.XmlMessage;&lt;/p&gt;  &lt;p&gt;Microsoft.BizTalk.CAT.BestPractices.Framework.Instrumentation.TraceManager.WorkflowComponent.TraceInfo(&lt;/p&gt;  &lt;p&gt;&amp;quot;message data: {0}&amp;quot;, xmlDoc.OuterXml&lt;/p&gt;  &lt;p&gt;);&lt;/p&gt;  &lt;p&gt;&lt;u&gt;OUTPUT IN DEBUGVIEW&lt;/u&gt;: [11992] [1]1B4C.1638::09/23/2011-17:41:53.583 [Event]:&lt;strong&gt;ŽS?S&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note: when i use the old scool Trace it works as expected, so it's now the message/encoding BOM etc.&lt;/strong&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-3969516218785013867?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/3969516218785013867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/09/use-etw-to-trace-messages-inside.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/3969516218785013867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/3969516218785013867'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/09/use-etw-to-trace-messages-inside.html' title='Use ETW to Trace messages inside an orchestration'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-2714416985193723809</id><published>2011-09-15T20:11:00.000+02:00</published><updated>2011-09-15T20:11:00.082+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tooling'/><category scheme='http://www.blogger.com/atom/ns#' term='BTDF - BizTalk Deployment Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><title type='text'>Build notification tray</title><content type='html'>&lt;p&gt;In my last post I described how to &lt;a href="http://snefs.blogspot.com/2011/09/setting-up-build-server-with-biztalk.html"&gt;set up a build server for Biztalk&lt;/a&gt; well….a build server isn’t completed with a build monitor tool!&lt;/p&gt;  &lt;p&gt;Installing VS.Net + TFS Client installs a tool out of the box;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-gbYHbjYc6pM/Tm-czySWnfI/AAAAAAAAAS0/ct9uXUqxkpA/s1600-h/buildnotifications1_3%25255B2%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="buildnotifications1_3" border="0" alt="buildnotifications1_3" src="http://lh5.ggpht.com/-mdvu9_0BfWY/Tm-c0WcoxmI/AAAAAAAAAS4/Stz4R3QaBvw/buildnotifications1_3_thumb.png?imgmax=800" width="132" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It provides a clean interface and even allows you to view the details of the build!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-qSFWJAw8DhY/Tm-c0-gKMcI/AAAAAAAAAS8/J7u9ft8vJGE/s1600-h/buildstarted%25255B2%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="buildstarted" border="0" alt="buildstarted" src="http://lh6.ggpht.com/-sIW1OV7zAv0/Tm-c1kecFlI/AAAAAAAAATA/GRz0An-kmu0/buildstarted_thumb.png?imgmax=800" width="238" height="88" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;If you have the ability to setup a machine with TFS access and a dedicated monitor you can use the &lt;a href="http://buildmonitor.codeplex.com/"&gt;BuildMonitor&lt;/a&gt;…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-AeOKGzPsQGw/Tm-c2c3CJII/AAAAAAAAATE/9YBTlTHs4go/s1600-h/tfsst%25255B2%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="tfsst" border="0" alt="tfsst" src="http://lh6.ggpht.com/-K5h34vZBCLI/Tm-c3A0SyqI/AAAAAAAAATI/VPWWUCqmgH8/tfsst_thumb.png?imgmax=800" width="244" height="196" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Happy building!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Sander&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-2714416985193723809?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/2714416985193723809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/09/build-notification-tray.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/2714416985193723809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/2714416985193723809'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/09/build-notification-tray.html' title='Build notification tray'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-mdvu9_0BfWY/Tm-c0WcoxmI/AAAAAAAAAS4/Stz4R3QaBvw/s72-c/buildnotifications1_3_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-1723336839390154878</id><published>2011-09-11T10:20:00.002+02:00</published><updated>2011-10-08T09:10:44.281+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tooling'/><category scheme='http://www.blogger.com/atom/ns#' term='BTDF - BizTalk Deployment Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><title type='text'>Setting up a build server with the BizTalk Deployment Framework</title><content type='html'>&lt;p&gt;This chapter describes the steps to a TFS Build Server to set up BizTalk deployment with the following functionality:&lt;br /&gt;• Build solution&lt;br /&gt;• Perform unit testing Using BizUnit&lt;br /&gt;• Create Deployment Packages Using BDTF&lt;br /&gt;• Deploy to Server Using R packages created in previous step&lt;br /&gt;• Create documentation BizTalkDocumenter&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;u&gt;For this the following steps are required:&lt;br /&gt;&lt;/u&gt;• Installation Components (30 min)&lt;br /&gt;• Configuring a build account (30 min)&lt;br /&gt;• Setting up the build service (30 min)&lt;br /&gt;• Scrum template installation (30 min)&lt;br /&gt;• Share for the build output directory (10 min)&lt;br /&gt;• Adjustments Build Template for use BTDF (30 min)&lt;br /&gt;• Design of build definitions (60 min)&lt;br /&gt;• Setting BTDF (60 min)&lt;br /&gt;• Use BTDF&lt;br /&gt;• Build execution / scheduling&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;The BizTalk project component&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The BizTalk project component is needed to build BizTalk projects to build and is available on the BizTalk installation DVD. Run the BizTalk setup and check the 'Project Build Component.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/-4ipDsz_uiOM/TmxvLMFrUTI/AAAAAAAAARU/3EZ4inkhWL4/s1600-h/image%25255B2%25255D.png"&gt;&lt;img style="BACKGROUND-IMAGE: none; BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-GW9DDy-J8bE/TmxvLSZRUVI/AAAAAAAAARY/BsGfRyqtCxk/image_thumb.png?imgmax=800" width="244" height="198" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;h5&gt;&lt;a name="_Toc302136372"&gt;BizTalkDocumenter + HTML Help Workshop&lt;/a&gt;&lt;/h5&gt;&lt;br /&gt;&lt;p&gt;Install [BizTalkDocumenter] and [HTML Help Workshop], it may be necessary to make an adjustment to the configuration file of the BizTalkDocumenter because it emanates from a 64-bit version of HTML Help Workshop. Adjust the configuration file as in this example is shown (highlighted in yellow);&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;add key="HelpCompilerLocation" value="C:\Program Files&lt;span style="BACKGROUND-COLOR: #ffff00"&gt; (x86)&lt;/span&gt;\HTML Help Workshop\hhc.exe" /&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a name="_Toc302136373"&gt;&lt;strong&gt;BizTalk Deployment Framework&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Install the [BizTalk Deployment Framework] through the installation process; after installation there are two that should be created/updated; &lt;br /&gt;&lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td valign="top" width="305"&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td valign="top" width="305"&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td valign="top" width="305"&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;C:\Program Files\BizTalk Deployment Framework&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td valign="top" width="305"&gt;&lt;br /&gt;&lt;p&gt;&lt;i&gt;(&lt;/i&gt;contains documentation, sourcecode, binaries.)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td valign="top" width="305"&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;C:\Program Files\MSBuild\ BizTalk Deployment Framework&lt;/b&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td valign="top" width="305"&gt;&lt;br /&gt;&lt;p&gt;*Contains the MSBuild targets (normal + for WIX MSI generation).&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;These folders are crucial in the steps described later and are very important *&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Configuring a Build Account&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;TFS works with a build service under which the build is performed, this account requires the rights:&lt;br /&gt;· Local Administrator (read registry values​​, create files etc.)&lt;br /&gt;· BizTalk Administrator (for creating BizTalk applications)&lt;br /&gt;· BizTalk SSO Administrator (for creating / reading SSO applications)&lt;br /&gt;· Project Collection Build Service Accounts (TFS)&lt;br /&gt;Note: the member of the build service account Collection Project Administrators is not necessary but very handy!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Setting up the Build Services&lt;/strong&gt;&lt;br /&gt;The TFS Build server uses the following components;&lt;br /&gt;• Build Service&lt;br /&gt;• Build Controller&lt;br /&gt;• Build Agent&lt;br /&gt;Setting up these components is described in the Microsoft Developer Network Guide &lt;a href="http://msdn.microsoft.com/en-us/library/ms181711.aspx"&gt;[Configuring your build system]&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;h5&gt;Install the TFS Scrum template&lt;/h5&gt;&lt;br /&gt;&lt;p&gt;the SCUM template is used to apply Agile principles in TFS, the template is available and the installation files and guide can be found at &lt;a href="http://visualstudiogallery.msdn.microsoft.com/59ac03e3-df99-4776-be39-1917cbfc5d8e/"&gt;[TFS Scrum template]&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Share for the build output directory&lt;br /&gt;&lt;/strong&gt;When a build is executed, there is location required where output files are written to. The build output directory will contain the log and other important files, this setting is essential. Create a folder and grant the build service account permissions to this folder.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;u&gt;Note&lt;/u&gt;: There also seems to be a bug in TFS causing the drop folder always to be required, if it is not configured you will receive the following error: TF270006: The drop location for this build was empty. (caused by a check in the xaml Build template)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Build Template modifications for use BTDF&lt;br /&gt;&lt;/strong&gt;Because the BizTalk Deployment Framework project file (". BTDF") is not a file type supported as a TFS project alterations to the build template are required. These steps are described in the following post &lt;a href="http://lajak.wordpress.com/2011/02/19/build-biztalk-deployment-framework-projects-using-tfs2010/#comments"&gt;[Build Projects Using BizTalk Deployment Framework TFS2010].&lt;/a&gt; &lt;u&gt;Remember to save the template as a new template!&lt;/u&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="color:#ff0000;"&gt;Note: This section describes what the command line parameters is wrong and must be:&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="color:#ff0000;"&gt;String.Format(“/p:SkipInvalidConfigurations=true /t:Installer {0}” , MSBuildArguments)&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Build Definition&lt;br /&gt;&lt;/strong&gt;In order to test the code we need 2 build definitions;&lt;br /&gt;1) Build BTDF, which is based on the custom Build Template, called Build Definition, this will use BTDF to generate MSI files and deploy to the build server&lt;br /&gt;2) Build Classic, which carries out the unit tests (which require the BizTalk environment to be set up)&lt;/p&gt;&lt;br /&gt;&lt;h5&gt;&lt;a name="_Toc302136380"&gt;BizTalk Deployment Framework Build Definition&lt;/a&gt;&lt;/h5&gt;&lt;br /&gt;&lt;p&gt;Click the right mouse in the Team Explorer window for the option "New Build Definition"&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/-P91v_UhAXqo/TmxvL8mRJtI/AAAAAAAAARc/xl8Ahl-nG20/s1600-h/image%25255B5%25255D.png"&gt;&lt;img style="BACKGROUND-IMAGE: none; BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-oTbghta9a-o/TmxvMDMmt8I/AAAAAAAAARg/Zf7OjABPri0/image_thumb%25255B1%25255D.png?imgmax=800" width="244" height="65" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Choose a name for the build definition.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;u&gt;Trigger&lt;/u&gt;&lt;br /&gt;&lt;a href="http://lh6.ggpht.com/-eFFSJaFzNbY/TmxvMve_UyI/AAAAAAAAARk/XKkIOA_Pbyk/s1600-h/image%25255B8%25255D.png"&gt;&lt;img style="BACKGROUND-IMAGE: none; BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-NlKGWtzDCQg/TmxvM1OmfvI/AAAAAAAAARo/6zUUlc7N97s/image_thumb%25255B2%25255D.png?imgmax=800" width="244" height="105" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Configure the build so that it runs every day and the morning has been completed.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;u&gt;Workspace&lt;/u&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Because each build is defined per solution it is important only the relevant part of source control is taken, otherwise the entire workspace will be retrieved during the build process which will lead to a slow build.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/-zjvoIYl1GL0/TmxvNTdq2sI/AAAAAAAAARs/DXzLMqRJoJc/s1600-h/image%25255B11%25255D.png"&gt;&lt;img style="BACKGROUND-IMAGE: none; BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-yeNUxRS0MVs/TmxvNhC_10I/AAAAAAAAARw/iT4MDPgORFk/image_thumb%25255B3%25255D.png?imgmax=800" width="244" height="94" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;u&gt;Configuration Output folder&lt;/u&gt;&lt;br /&gt;Configure the build output directory where the files it copies are generated during the build (very useful for logging information).&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/-rQ6SVF-OR_8/TmxvOFkgNzI/AAAAAAAAAR0/mD0ErnvwAhE/s1600-h/image%25255B14%25255D.png"&gt;&lt;img style="BACKGROUND-IMAGE: none; BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/-mzjo0HemhtA/TmxvObTOJ5I/AAAAAAAAAR4/1kdkDpwPEB0/image_thumb%25255B4%25255D.png?imgmax=800" width="244" height="70" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;u&gt;Build Template (only for BTDF)&lt;/u&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The template must be chosen to build the BTDF projects, this template contains the previously modified changes to enable support for BTDF projects.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/-5ShBosCZ69I/TmxvOwUCh_I/AAAAAAAAAR8/cDO3FOUxz6E/s1600-h/image%25255B17%25255D.png"&gt;&lt;img style="BACKGROUND-IMAGE: none; BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-6DuuoLdgAng/TmxvPYYXLXI/AAAAAAAAASA/U9hctBnpPyI/image_thumb%25255B5%25255D.png?imgmax=800" width="244" height="44" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;u&gt;Build Solution + BTDF&lt;/u&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;It works with BTDF already build files, this requires that two projects are selected: the BTDF project which should be build and the associated project.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/-ANDD1U6KnqI/TmxvPkHbgaI/AAAAAAAAASE/ngOIxZJ9Dfw/s1600-h/image%25255B20%25255D.png"&gt;&lt;img style="BACKGROUND-IMAGE: none; BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-PkRgamqm2ys/TmxvQD9hWrI/AAAAAAAAASI/yTGoU7BPQvQ/image_thumb%25255B6%25255D.png?imgmax=800" width="244" height="94" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;u&gt;BTDF Specific settings&lt;/u&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;It is not desirable that a work item is created due to a build error, it is necessary to build for the X86 platform as the BizTalk build fails otherwise. We can provide some MSBuild properties to use in BTDF which can override MSBuild property (e.g. to define whether we work on the build server etc.).&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;MSBuild Arguments: / property: OnBuildServer = True&lt;br /&gt;MSBuild Arguments: / property: generate documentation = * True&lt;br /&gt;* (for performance reasons it is desirable to define it once in the last scheduled BTDF build)&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Below shows an example where a property is defined;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/-1AyTqvRkHuM/TmxvQdxIS1I/AAAAAAAAASM/2FcyQD98jD8/s1600-h/image%25255B28%25255D.png"&gt;&lt;img style="BACKGROUND-IMAGE: none; BORDER-RIGHT-WIDTH: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-qP_2OkBRT5M/TmxvQ9dVVJI/AAAAAAAAASQ/oKVimzMh8zc/image_thumb%25255B9%25255D.png?imgmax=800" width="349" height="109" /&gt;&lt;/a&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Regular Build Definition&lt;/strong&gt;&lt;br /&gt;Follow the same steps as explained in the beginning "BTDF Build Definition":&lt;br /&gt;• Trigger&lt;br /&gt;• Workspace&lt;br /&gt;• Build Output folder&lt;br /&gt;• Process&lt;br /&gt;For a regular build, the default template to be used;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/-Zq6kvzPVOGA/TmxvRDLoxwI/AAAAAAAAASU/i7OUvbn-9Ks/s1600-h/image%25255B32%25255D.png"&gt;&lt;img style="BACKGROUND-IMAGE: none; BORDER-RIGHT-WIDTH: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-loNAeoS_9WM/TmxvRdJoAYI/AAAAAAAAASY/p9w8cYJX-5o/image_thumb%25255B11%25255D.png?imgmax=800" width="297" height="27" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;After that the project to be build can be selected;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/-X4uYGPKA1Qs/TmxvR5khi2I/AAAAAAAAASc/Q6h9oihlLpU/s1600-h/image%25255B35%25255D.png"&gt;&lt;img style="BACKGROUND-IMAGE: none; BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-GW6ZIjRGeQI/TmxvSKYBQeI/AAAAAAAAASg/XSmkkQWbGCs/image_thumb%25255B12%25255D.png?imgmax=800" width="244" height="32" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;For the Automatic testing properties it is important to select the test the settings from the solution to select, this allows for deployment to deploy folders and the like in the projects.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/-kSn_8Opy2fs/TmxvSkdLvHI/AAAAAAAAASk/Xaeg1Lg_tUE/s1600-h/image%25255B38%25255D.png"&gt;&lt;img style="BACKGROUND-IMAGE: none; BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/-vhEs6-wUDkY/TmxvS5tg-QI/AAAAAAAAASo/vwd4Jl_vX0o/image_thumb%25255B13%25255D.png?imgmax=800" width="244" height="73" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;It is not desirable (initially) that a work is created after each build error, &lt;span style="color:#ff0000;"&gt;it is necessary to further build the X86 to run as the BizTalk build fails otherwise.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/-w22gVMhiqJs/TmxvTR2aCOI/AAAAAAAAASs/qpC3Wbvoe7I/s1600-h/image%25255B41%25255D.png"&gt;&lt;img style="BACKGROUND-IMAGE: none; BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-DLu9vCq2eAs/TmxvTv2u2YI/AAAAAAAAASw/yBejt9JLPA8/image_thumb%25255B14%25255D.png?imgmax=800" width="244" height="77" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;h5&gt;&lt;a name="_Toc302136382"&gt;Setting up the BizTalk Deployment Framework&lt;/a&gt;&lt;/h5&gt;&lt;br /&gt;&lt;p&gt;The BizTalk Deployment Framework (BTDF) uses MSBuild, MSBuild uses definition files which to carry out steps and dependencies are determined (so called. Target files). To change the behavior of BTDF we have to modify the target file, located on the build server.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Location of the .Targets file: C:\&lt;u&gt;Program Files (x86)\MSBuild\DeploymentFrameworkForBizTalk\5.0&lt;/u&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;u&gt;Targets BizTalkDocumenter&lt;/u&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;To ensure that the BizTalkDocumenter is called after the build we add a target that is called based on the provided MS Build argument;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;Target Name="DocumentBizTalk" Condition="'$(&lt;b&gt;GenerateDocumentation&lt;/b&gt;)' == 'True'"&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;Exec Command&lt;b&gt;=&lt;/b&gt;&lt;b&gt;"&lt;/b&gt;&lt;b&gt;&amp;amp;quot;&lt;/b&gt;C:\Program Files (x86)\Microsoft Services\BizTalk Documenter\Microsoft.Services.Tools.BiztalkDocumenter.exe&lt;b&gt;&amp;amp;quot;&lt;/b&gt; /o:C:\BizTalk\Releases\$([System.DateTime]::Now.ToString('yyyyMMdd'))\ /def /show:false" /&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;/Target&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;Note: The &lt;b&gt;&amp;amp;quot; &lt;/b&gt;is required because the path contains spaces! &lt;strong&gt;GenerateDocumentation&lt;/strong&gt; ensures that the BizTalkDocumenter code is only called when this is provided as a MSBUILD property.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;To call the BizTalkDocumenter Target the ‘DeployDependsOn’ has to be altered:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;...&lt;/p&gt;&lt;br /&gt;&lt;p&gt;BounceBizTalk;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;DocumentBizTalk&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;/DeployDependsOn&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;&lt;u&gt;Setting up the BizTalk Deployment Framework Project&lt;br /&gt;&lt;/u&gt;After creating a BizTalk Deployment Framework Project it is necessary to perform the following steps:&lt;br /&gt;· Customizing Property Group&lt;br /&gt;Copy a property group (based on the Debug) and add a condition to:&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;Condition="'$(OnbuildServer)' == 'True' And '$(Configuration)' == 'Debug'"&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;Make sure that the &lt;u&gt;output path&lt;/u&gt; contains the following value (example);&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;C:\BizTalk\Releases\$([System.DateTime]::Now.ToString('yyyyMMdd'))\&lt;/b&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;If necessary, other settings can be overwritten, below is an example of a property group based on the definition established in the MSBuild property 'OnBuildServer "&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;PropertyGroup Condition="'$(OnbuildServer)' == 'True' And '$(Configuration)' == 'Debug'"&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;OutputPath&amp;gt;&lt;b&gt;C:\BizTalk\Releases\$([System.DateTime]::Now.ToString('yyyyMMdd'))\&amp;lt;/&lt;/b&gt;OutputPath&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;DeployPDBsToGac&amp;gt;false&amp;lt;/DeployPDBsToGac&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;PortBindingsMaster&amp;gt;BUILDSERVERPortBindingsMaster.xml&amp;lt;/PortBindingsMaster&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;/PropertyGroup&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;PropertyGroup Condition="'$(OnbuildServer)' == 'False' And '$(Configuration)' == 'Debug'"&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;OutputPath&amp;gt;bin\debug\&amp;lt;/OutputPath&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;DeployPDBsToGac&amp;gt;false&amp;lt;/DeployPDBsToGac&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;/PropertyGroup&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;· Add a BUILDSERVER&amp;lt;bindings&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;Add a BUILDSERVERPortBindingsMaster.Xml file to the .Deployment project with the bindings used in the BizUnit tests.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Common errors&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;u&gt;Test Settings are not included in the build definition&lt;br /&gt;&lt;/u&gt;See the step "Process" to "Regular Build Definition '&lt;br /&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;u&gt;TF270006: The drop location for this build was empty.&lt;/u&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;“The build definition '.... "(or build the request) must Specify a valid UNC path as the drop location for the build. Update the build definition and try again.”&lt;/p&gt;&lt;br /&gt;&lt;p&gt;This is a bug in the build process, there is no specified Drop Folder, even if it is unchecked that a leaflet drop is used there seems always to be specified.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;u&gt;Error ‘.cs files of schemas could not be found’&lt;/u&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Change platform to X86&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;u&gt;Dll can not be found in the project&lt;/u&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Select the entire workspace or at least the folder that might have been used containing all the referenced assemblies.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Good luck!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-1723336839390154878?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/1723336839390154878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/09/setting-up-build-server-with-biztalk.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/1723336839390154878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/1723336839390154878'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/09/setting-up-build-server-with-biztalk.html' title='Setting up a build server with the BizTalk Deployment Framework'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/-GW9DDy-J8bE/TmxvLSZRUVI/AAAAAAAAARY/BsGfRyqtCxk/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-283667744655469537</id><published>2011-08-25T20:21:00.001+02:00</published><updated>2011-08-25T20:21:35.761+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tooling'/><category scheme='http://www.blogger.com/atom/ns#' term='Unit Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><title type='text'>BizMock using it for orchestration unit testing</title><content type='html'>&lt;p&gt;BizMock is a tool that allows for testing BizTalk artifacts without having to deploy artifacts. This is done by a private BizMock adapter that receives the messages.   &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;BizMock generates a class based on an XML configuration file where the mapping to schemas, sample files, maps, orchestrations, mapping from logical to (virtual) physical ports are defined (all in your head &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-sadsmile" alt="Bedroefde emoticon" src="http://lh6.ggpht.com/-aXiA6IYbFSc/TlaSkh9t59I/AAAAAAAAAQQ/KJY2OGNf-zI/wlEmoticon-sadsmile%25255B2%25255D.png?imgmax=800" /&gt;).&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Advantages&lt;/u&gt;: The generated code to perform the test is simple, powerful and compact.    &lt;br /&gt;&lt;u&gt;Disadvantages&lt;/u&gt;: It uses T4 templates; errors in the XML file are very difficult to debug and resolve. There is little documentation available and sample code does not show all possibilities. &lt;/p&gt;  &lt;p&gt;&lt;font style="background-color: #ffff00"&gt;Note: According to the developer a DSL tool is on the way providing an easy mechanism to manufacture the Xml file!&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font style="background-color: #ffffff"&gt;In the segments below are some code snippets that shows the usage of BizMock;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Application&lt;/u&gt;    &lt;br /&gt;The figure below is a sample project with two schemas, a map and an orchestration.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-rbvu23FXEEM/TlaSlBHnN5I/AAAAAAAAAQU/8CennKFBXdI/s1600-h/clip_image0013.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://lh6.ggpht.com/-4jSt4QTLEPE/TlaSlW-iK4I/AAAAAAAAAQY/BVF4ytOyJbU/clip_image001_thumb.png?imgmax=800" width="244" height="157" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The sample orchestration receives a message from a location, performs a transformation, and then sends the message through a send port.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-gGWGEdf6IVs/TlaSmIIoNUI/AAAAAAAAAQc/68EQLhz-KdQ/s1600-h/clip_image0033.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image003" border="0" alt="clip_image003" src="http://lh3.ggpht.com/-yHSKmYTN5TM/TlaSmsCuHtI/AAAAAAAAAQg/w1VHB_B-fEQ/clip_image003_thumb.jpg?imgmax=800" width="244" height="95" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In order to test this orchestration you would normally have to deploy, create two physical ports bind these to the logical orchestration ports. After starting the bound ports, you realize that the full control rights haven’t been granted…ugh! Well fix this and we can start manually by creating some files…oh boy, haven’t even mentioned correlations…doing all this by hand is..... quite cumbersome.   &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;BizMock offers an adapter that can simulate the physical ports by trapping messages and manipulate the behavior of BizTalk so that messages can be influenced. This prevents a lot of BizTalk configuration having being done in order to perform some tests.&lt;/p&gt;  &lt;p&gt;BizMock provides a sample project that contains an Artifacts.TT file that should be copied to your application, the example Artifacts.XML can be viewed as a reference as your own Artifacts.XML is going to be quite different (different schema, different ports, namespaces etc).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-bgvRynh6mwQ/TlaSmys3LEI/AAAAAAAAAQk/s-aujk2RjWM/s1600-h/clip_image0043.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://lh6.ggpht.com/-hPqbbzfbgLM/TlaSnYMCB7I/AAAAAAAAAQo/j_a_wIUaHI0/clip_image004_thumb.png?imgmax=800" width="244" height="114" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The &lt;a href="http://msdn.microsoft.com/en-us/library/bb126445.aspx"&gt;T4 template&lt;/a&gt; (Artifacts.tt) is used to convert the XML file to a class that can be used in the tests. The XML File (Artifacts.Xml) is a file that describes the various BizTalk artifacts, here is sample example Xml definition for my test project:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Orchestration&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;Orchestration&amp;gt;   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Name&amp;gt;OrderApproval&amp;lt;/Name&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;FullName&amp;gt;BizMockTest.OrderApproval&amp;lt;/FullName&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Ports&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Port&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Logical&amp;gt;RcvOrderRequestPort&amp;lt;/Logical&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Physical&amp;gt;PhysicalRcvOrderRequestPort&amp;lt;/Physical&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Port&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Port&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Logical&amp;gt;SndOrderApprovalPort&amp;lt;/Logical&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Physical&amp;gt;PhysicalSndOrderApprovalPort&amp;lt;/Physical&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Port&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Ports&amp;gt;    &lt;br /&gt;&amp;lt;/Orchestration&amp;gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Send Port&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;OneWaySendPort&amp;gt;   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Name&amp;gt;PhysicalSndOrderApprovalPort&amp;lt;/Name&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;PortName&amp;gt;PhysicalSndOrderApprovalPort&amp;lt;/PortName&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SendPipeline&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Name&amp;gt;&amp;lt;/Name&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Data&amp;gt;&amp;lt;/Data&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/SendPipeline&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Dynamic&amp;gt;false&amp;lt;/Dynamic&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/OneWaySendPort&amp;gt;    &lt;br /&gt;&amp;lt;/OneWaySendPorts&amp;gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;MessageType&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;MessageInstances&amp;gt;   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SingleMessageInstances&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SingleMessageInstance&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Name&amp;gt;OrderRequestType&amp;lt;/Name&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Properties&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Property&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Name&amp;gt;ID&amp;lt;/Name&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;xpath&amp;gt;/*[local-name()='OrderRequest' and namespace-uri()='&lt;a href="http://BizMockTest.OrderRequest']/*[local-"&gt;http://BizMockTest.OrderRequest']/*[local-&lt;/a&gt;&amp;#160;&amp;#160;&amp;#160; name()='ID' and namespace-uri()='']&amp;lt;/xpath&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Property&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Properties&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ContextProperties /&amp;gt;    &lt;br /&gt;&amp;lt;/SingleMessageInstance&amp;gt;    &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Sample Message&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;Artifacts name=&amp;quot;Artifacts&amp;quot; appName=&amp;quot;BizMockTest&amp;quot; &amp;gt;   &lt;br /&gt;&amp;lt;MessageInstanceArtifacts&amp;gt;    &lt;br /&gt;&amp;lt;MessageInstance&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Name&amp;gt;SampleOrderRequest&amp;lt;/Name&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Type&amp;gt;OrderRequestType&amp;lt;/Type&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Files&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;File&amp;gt;OrderRequest.xml&amp;lt;/File&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Files&amp;gt;    &lt;br /&gt;&amp;lt;/MessageInstance&amp;gt;    &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;Etc.&lt;/p&gt;  &lt;p&gt;Note: If a field is required in the Artifacts.XML, &lt;strong&gt;ALL&lt;/strong&gt; values ​​should be set, otherwise the translation of the Xml using the T4 template is not properly carried out which will lead to strange errors that are &lt;strong&gt;difficult to ‘debug’ &lt;/strong&gt;(look out for the Dynamic port!).    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;After configuring the Artifacts.Xml the &lt;u&gt;‘TextTemplatingFileGenerator’&lt;/u&gt; can be started. Verify by clicking on the file that Artifacts.TT TextTemplatingFileGenerator linked. Right-click on the TT file and choose Run Custom Tool &amp;quot;and then the full Artifacts.CS file should be generated.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-DUVeUdmpRF4/TlaSnzyCJDI/AAAAAAAAAQs/0mAOn04gTd4/s1600-h/clip_image0053.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image005" border="0" alt="clip_image005" src="http://lh5.ggpht.com/-2_YeUMDKLhc/TlaSoAKuUMI/AAAAAAAAAQw/x4sEEg1eIbU/clip_image005_thumb.png?imgmax=800" width="244" height="160" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-FAjSgg7dbSM/TlaSoX5bzfI/AAAAAAAAAQ0/oF4avVxBgM8/s1600-h/clip_image0063.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://lh5.ggpht.com/-DvhrdJa8Aw4/TlaSo4gPFfI/AAAAAAAAAQ4/-CF_pL0PffU/clip_image006_thumb.png?imgmax=800" width="244" height="105" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;To create tests I suggest you look carefully at the example in the BizMock samples, below an example of my tests;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;&lt;u&gt;&lt;/u&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-a9ze-9HfUnY/TlaSpVpCbjI/AAAAAAAAAQ8/TuSP3oSpOFE/s1600-h/clip_image0083.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image008" border="0" alt="clip_image008" src="http://lh5.ggpht.com/-Q_6ji63qov0/TlaSp6P7umI/AAAAAAAAARA/wb80LIAnszc/clip_image008_thumb.jpg?imgmax=800" width="244" height="95" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;After running the test, you can use the debugger as would be possible when running orchestrations;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-m9TjSF0d8Ns/TlaSqUiAtfI/AAAAAAAAARE/dSEVRtX36FU/s1600-h/clip_image0103.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image010" border="0" alt="clip_image010" src="http://lh3.ggpht.com/-xS8kBIMC1lY/TlaSq9LNBkI/AAAAAAAAARI/hEkc9oo09Qc/clip_image010_thumb.jpg?imgmax=800" width="244" height="159" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In the Message Flow you can see that the BizMock adapter is used to BizMock send the message!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-vU-EqfzAP18/TlaSrGeq_KI/AAAAAAAAARM/e9r_EDCkvvE/s1600-h/clip_image0123.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image012" border="0" alt="clip_image012" src="http://lh5.ggpht.com/-Ewcl4dMVxHo/TlaSro2IKfI/AAAAAAAAARQ/Hnp3q2S2xWU/clip_image012_thumb.jpg?imgmax=800" width="244" height="225" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Conclusion&lt;/u&gt;: BizMock is a pretty cool tool and I highly recommend to use it. For now I am anxious to see the promised upcoming DSL tool as it would enable us to use it also in rather complex projects. The lack of documentation (on the site at least) is what makes it unclear for me if BizMock can be used in combination with Custom pipelines that requires properties to be set, ESB Toolkit scenarios with itineraries etc.&lt;/p&gt;  &lt;p&gt;To test maps and schemas BizUnit provides more than enough possibilities, however the capabilities are very promising. I hope to be able to get an update from the developer to see what possibilities are for using BizMock in conjunction with the ESB Toolkit.&lt;/p&gt;  &lt;p&gt;Still, I think this tool is brilliant and really suggest to take a look at it!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-283667744655469537?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/283667744655469537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/08/bizmock-using-it-for-orchestration-unit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/283667744655469537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/283667744655469537'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/08/bizmock-using-it-for-orchestration-unit.html' title='BizMock using it for orchestration unit testing'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-aXiA6IYbFSc/TlaSkh9t59I/AAAAAAAAAQQ/KJY2OGNf-zI/s72-c/wlEmoticon-sadsmile%25255B2%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-1428301984575674050</id><published>2011-08-16T13:45:00.001+02:00</published><updated>2011-08-16T13:45:04.203+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tooling'/><title type='text'>Command shell – shortcuts</title><content type='html'>&lt;p&gt;I’ve visited the Daydays and there was mentioned that Scott Hanselman was superior in his knowledge of tools and shortcuts. I was particularly interested in the shortcuts he used in the command shell….&lt;/p&gt;  &lt;p&gt;Finally today I decided to look it up and found 2 I will regularly use;&lt;/p&gt;  &lt;p&gt;ALT+SPACE+E+K &amp;lt;-- for copy . and    &lt;br /&gt;ALT+SPACE+E+P &amp;lt;-- for paste.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hth,&lt;/p&gt;  &lt;p&gt;Sander&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-1428301984575674050?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/1428301984575674050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/08/command-shell-shortcuts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/1428301984575674050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/1428301984575674050'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/08/command-shell-shortcuts.html' title='Command shell – shortcuts'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-3878035956338039204</id><published>2011-06-07T23:24:00.000+02:00</published><updated>2011-06-07T23:24:00.813+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='MSMQ Adapter'/><title type='text'>MSMQ Dynamics Sendport – TimeToReachQueue not Infinite</title><content type='html'>&lt;p&gt;When using a Dynamics MSMQ SendPort, be aware to set the TimeToReachQueue to a higher value then 0! I had created an Itinerary and could not see any messages…It turns out that the TimeToReachQueue interval is somehow ignored when using Dynamic MSMQ send ports.&lt;/p&gt;  &lt;p&gt;If the interval specified by the TimeToReachQueue property expires before the message reaches its destination, Message Queuing discards the message in one of two ways. If the message's UseDeadLetterQueue property is true, the message is sent to the dead-letter queue. If UseDeadLetterQueue is false, the message is ignored.&lt;/p&gt;  &lt;p&gt;In my case the solution was to set the interval to a higher value than 0, otherwise the message has to be submitted to the queue very quickly! (I noticed this only during bulk/stress-testing so I might slip you attention!)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-n_z1pHStl6o/TelRU66nQCI/AAAAAAAAAQE/vjx4_raJrIo/s1600-h/MessagesLost6.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="MessagesLost" border="0" alt="MessagesLost" src="http://lh3.ggpht.com/-P80rdNg16bA/TelRVX7kChI/AAAAAAAAAQI/X83cDYZ4tqM/MessagesLost_thumb1.png?imgmax=800" width="139" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-"&gt;http://msdn.microsoft.com/en-&lt;/a&gt;us/library/system.messaging.message.timetoreachqueue.aspx&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.44342.com/BizTalk-f20-t14495-p1.htm"&gt;http://www.44342.com/BizTalk-f20-t14495-p1.htm&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Cheers,&lt;/p&gt;  &lt;p&gt;Sander&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:38d4fb69-53a9-46a5-aba6-f30df0c3b91f" class="wlWriterEditableSmartContent"&gt;Tags van Technorati: &lt;a href="http://technorati.com/tags/MSMQ" rel="tag"&gt;MSMQ&lt;/a&gt;,&lt;a href="http://technorati.com/tags/TimeToReachQueue" rel="tag"&gt;TimeToReachQueue&lt;/a&gt;,&lt;a href="http://technorati.com/tags/MSMQ+Messages+lost" rel="tag"&gt;MSMQ Messages lost&lt;/a&gt;,&lt;a href="http://technorati.com/tags/BizTalk" rel="tag"&gt;BizTalk&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Dynamics+MSMQ+port" rel="tag"&gt;Dynamics MSMQ port&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-3878035956338039204?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/3878035956338039204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/06/msmq-dynamics-sendport-timetoreachqueue.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/3878035956338039204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/3878035956338039204'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/06/msmq-dynamics-sendport-timetoreachqueue.html' title='MSMQ Dynamics Sendport – TimeToReachQueue not Infinite'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/-P80rdNg16bA/TelRVX7kChI/AAAAAAAAAQI/X83cDYZ4tqM/s72-c/MessagesLost_thumb1.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-1887434578913436842</id><published>2011-06-05T02:57:00.000+02:00</published><updated>2011-06-05T02:57:00.453+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk ESB'/><title type='text'>Configuring ESB Portal resubmit</title><content type='html'>&lt;p&gt;When setting up the ESB Portal we didn’t see the receive ports. After some digging around it seems that the content type is not correctly set resulting in not showing up the available receive locations.&lt;/p&gt;  &lt;p&gt;A minor change in the SP solves this problem…&lt;/p&gt;  &lt;p&gt;Modify the Stored Procedure: EsbExceptionDb.&lt;u&gt;usp_insert_Message&lt;/u&gt;&amp;#160;&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;IF&lt;/span&gt; (@ContentType = &lt;span class="str"&gt;'text/plain'&lt;/span&gt; &lt;span class="kwrd"&gt;AND&lt;/span&gt; &lt;span class="kwrd"&gt;LEFT&lt;/span&gt;(@MessageData,1) = &lt;span class="str"&gt;'&amp;lt;'&lt;/span&gt;)&lt;br /&gt;&lt;span class="kwrd"&gt;BEGIN&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;   SET&lt;/span&gt; @ContentType = &lt;span class="str"&gt;'text/xml'&lt;/span&gt;&lt;br /&gt;END&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;See the very useful post &lt;a title="http://social.msdn.microsoft.com/Forums/pl-PL/biztalkesb/thread/01259ab0-54e0-4186-8bb3-46c041fb7fc0" href="http://social.msdn.microsoft.com/Forums/pl-PL/biztalkesb/thread/01259ab0-54e0-4186-8bb3-46c041fb7fc0"&gt;on the BizTalk forum&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;HTH,&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Sander Nefs&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-1887434578913436842?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/1887434578913436842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/06/configuring-esb-portal-resubmit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/1887434578913436842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/1887434578913436842'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/06/configuring-esb-portal-resubmit.html' title='Configuring ESB Portal resubmit'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-6280754792913171229</id><published>2011-06-02T02:40:00.001+02:00</published><updated>2011-06-02T02:49:58.717+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='Dynamics AX'/><category scheme='http://www.blogger.com/atom/ns#' term='MSMQ Adapter'/><title type='text'>MSMQ with ‘Authenticate’ enabled for communicating with Dynamics AX</title><content type='html'>&lt;p&gt;Hereby my findings on how to communicate with a remote MSMQ with the ‘Authenticate’ property set (required for Dynamics AX MSMQ inbound Channels).&lt;/p&gt;  &lt;p&gt;There are 2 ways how MSMQ (4+) works, either in workgroup mode (when you only install MSMQ) or in active directory mode (when you choose 'Directory Integration').&lt;/p&gt;  &lt;p&gt;The Logon Info only works when you work in workgroup mode. When you set the 'Authenticate' flag on the Queue the Logon Info is useless...implicitly you are using personal user certificates that are installed when you logon to the machine.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-mv6NIRn83nk/Tebb5qHm4FI/AAAAAAAAAO8/vltUyI9Ew8s/s1600-h/image%25255B4%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-rDE-8B3kK9E/Tebb6FLGDLI/AAAAAAAAAPA/HLCm3_UYOw8/image_thumb%25255B2%25255D.png?imgmax=800" width="405" height="161" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;So my issue was resolved once i got it working with the certificates, although i would expect that the Logon Info should work hereby my resolution:&lt;/p&gt;  &lt;p&gt;- Logon to the client machine where the Send port is defined using the Host instance account&lt;/p&gt;  &lt;p&gt;- Open Features\MSMQ\Properties&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-QOBOHENcHiQ/TebeLEAkO2I/AAAAAAAAAPE/cLajBb6b7B0/s1600-h/image%25255B15%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-o_H5645Fx_E/TebeLY6TjDI/AAAAAAAAAPI/K08S6bhvTCk/image_thumb%25255B6%25255D.png?imgmax=800" width="181" height="109" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;- Go to the tab 'User Security'&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-IBF21yFzYZ0/TebeLve9PFI/AAAAAAAAAPM/oN1QYAB8rFI/s1600-h/image%25255B18%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-s-hFj1ZnVRI/TebeL-ikECI/AAAAAAAAAPQ/ukshkNvhrVA/image_thumb%25255B7%25255D.png?imgmax=800" width="210" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;- Click on 'Register' to Register the public part of the certificate in the active directory (this is the public certificate used during user validation)&lt;/p&gt;  &lt;p&gt;- Click on 'Renew' to install the private part of the certificate in the local machine&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-pB7266mpJ3M/TebeMPCzQmI/AAAAAAAAAPU/_NHCoBu_6QY/s1600-h/image%25255B24%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-pKQnPgz4ACs/TebeM3TQ10I/AAAAAAAAAPY/qf_02aN_QJ8/image_thumb%25255B9%25255D.png?imgmax=800" width="244" height="83" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;- Repeat these steps on each machine the user is involved on (e.g. Server/Client)&lt;/p&gt;  &lt;p&gt;When sending a message from the client machine the private part of the certificate is used to determine the public certificate in the active directory, this makes the MSMQ server trust the user so that the message is written in the queue using the correct authentication.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-b8eW12pOANY/TebeNN-wLcI/AAAAAAAAAPc/wuVJuhtxVd4/s1600-h/image%25255B8%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-vXhG_QzuerI/TebeNd-xyAI/AAAAAAAAAPg/VSWZtAvh8T8/image_thumb%25255B4%25255D.png?imgmax=800" width="417" height="145" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Some useful resources:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://blogs.msdn.com/b/johnbreakwell/archive/2008/09/15/clearing-up-msmq-certificates-from-active-directory.aspx" target="_blank"&gt;post from John Breakwell&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc775591(WS.10).aspx" target="_blank"&gt;MSDN&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Some errors/solutions&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Message was rejected&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Message Queuing could not authenticate a message sent to queue ‘…….’. The message was rejected because the queue only accepts authenticated messages. It is possible that sender did not sign the message, or signed it with a self-signed certificate. A negative arrival acknowledgement will be sent if requested by the sender. This event is logged at most once per 600 seconds. To change this setting, set \HKLM\Software\Microsoft\MSMQ\Parameters\Event2195 registry value to desired time in seconds.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;em&gt;Cause&lt;/em&gt;&lt;/u&gt;: ‘Authenticate’ is checked on the queue, however the internal certificate does not match the public key in the active directory / MSMQ certificate store.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;em&gt;Solution&lt;/em&gt;:&lt;/u&gt; Renew Internal certificaat&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;CryptoGraphic function failed&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;The adapter failed to transmit message going to send port &amp;quot;SendPort1&amp;quot; with URL &amp;quot;FORMATNAME:DIRECT=OS:…&amp;quot;. It will be retransmitted after the retry interval specified for this Send Port. Details:&amp;quot;A cryptographic function failed.&amp;quot;.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;u&gt;Cause&lt;/u&gt;&lt;/em&gt;: ‘Authenticate’ is checked on the queue, however the certificate is not correctly registered. &lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;u&gt;Solution&lt;/u&gt;&lt;/em&gt;: Execute the procedure voor the certificate registration.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Cheers,&lt;/p&gt;  &lt;p&gt;Sander&lt;/p&gt;              &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:fdf329e1-233d-4369-9668-6259fc5d16a1" class="wlWriterEditableSmartContent"&gt;Tags van Technorati: &lt;a href="http://technorati.com/tags/BizTalk" rel="tag"&gt;BizTalk&lt;/a&gt;,&lt;a href="http://technorati.com/tags/MSMQ" rel="tag"&gt;MSMQ&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Dynamics+AX" rel="tag"&gt;Dynamics AX&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Authenticated" rel="tag"&gt;Authenticated&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Internal+Certificate" rel="tag"&gt;Internal Certificate&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-6280754792913171229?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/6280754792913171229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/06/msmq-with-authenticate-enabled-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/6280754792913171229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/6280754792913171229'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/06/msmq-with-authenticate-enabled-for.html' title='MSMQ with ‘Authenticate’ enabled for communicating with Dynamics AX'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-rDE-8B3kK9E/Tebb6FLGDLI/AAAAAAAAAPA/HLCm3_UYOw8/s72-c/image_thumb%25255B2%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-631021939396712450</id><published>2011-05-08T00:28:00.000+02:00</published><updated>2011-05-08T00:28:00.234+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk ESB'/><title type='text'>BizTalk ESB Dynamic port – 3 filter properties</title><content type='html'>&lt;p&gt;This is a quick post for you (and me!) to remember….whenever you want to use the ESB Toolkit and are wondering which filters you need to set to be able to get the send port to send a message….&lt;/p&gt;  &lt;p&gt;SET THESE 3 FILTERS:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Microsoft.Practices.ESB.Itinerary.Schemas.ServiceName&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Make sure that the name of this filter matches the Dynamic Send port that you have chosen in you itinerary!!&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Microsoft.Practices.ESB.Itinerary.Schemas.ServiceState&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;To ensure that the process continues and that the itinerary is continued…set the state to ‘Pending’. The Toolkit will worry on the actual states.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Microsoft.Practices.ESB.Itinerary.Schemas.ServiceType&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Depending on the scenario you can set the ‘ServiceType’ to ‘Messaging’ for a messaging based subscriber or to ‘Orchestration’ for an Orchestration based subscriber.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_4SYOSujD6rw/TcR2RdOUL2I/AAAAAAAAAOc/KJc3dc2DZ18/s1600-h/Filter%5B3%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Filter" border="0" alt="Filter" src="http://lh3.ggpht.com/_4SYOSujD6rw/TcR2R-ojeRI/AAAAAAAAAOg/kQ5w_DyFfKg/Filter_thumb%5B1%5D.png?imgmax=800" width="446" height="367" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Note: the &lt;strong&gt;IsRequestResponse&lt;/strong&gt; property might be useful for solicit response port.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;HTH,&lt;/p&gt;  &lt;p&gt;Sander&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:773e146e-fba9-465c-a7fe-4c8668c7e967" class="wlWriterEditableSmartContent"&gt;Tags van Technorati: &lt;a href="http://technorati.com/tags/BizTalk" rel="tag"&gt;BizTalk&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ESB" rel="tag"&gt;ESB&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ESB+Toolkit" rel="tag"&gt;ESB Toolkit&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-631021939396712450?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/631021939396712450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/05/biztalk-esb-dynamic-port-3-filter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/631021939396712450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/631021939396712450'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/05/biztalk-esb-dynamic-port-3-filter.html' title='BizTalk ESB Dynamic port – 3 filter properties'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_4SYOSujD6rw/TcR2R-ojeRI/AAAAAAAAAOg/kQ5w_DyFfKg/s72-c/Filter_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-2498586869404107809</id><published>2011-05-07T00:15:00.001+02:00</published><updated>2011-05-07T00:17:24.664+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk ESB'/><title type='text'>ESB Portal – powershell error on 64-bit machine</title><content type='html'>&lt;p&gt;Yesterday I was having an issue when trying to install the ESB management portal. Although I opened the gates security wise I still got PowerShell errors…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_4SYOSujD6rw/TcRzEebZZqI/AAAAAAAAAN8/UO4K3KdQs9s/s1600-h/Error_SetPolicy%5B2%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Error_SetPolicy" border="0" alt="Error_SetPolicy" src="http://lh3.ggpht.com/_4SYOSujD6rw/TcRzE0rL4sI/AAAAAAAAAOA/ASqOA9YcLWY/Error_SetPolicy_thumb.png?imgmax=800" width="244" height="96" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I could not figure out what the problem was….then my colleague &lt;a href="http://www.ithero.nl/blog/"&gt;Tomasso Groenendijk&lt;/a&gt; asked….”is it a 64-bit machine? Good luck with that!”&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_4SYOSujD6rw/TcRzFMJCTlI/AAAAAAAAAOE/sJoxKg4zEUQ/s1600-h/64bit%5B2%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="64bit" border="0" alt="64bit" src="http://lh3.ggpht.com/_4SYOSujD6rw/TcRzFffBCvI/AAAAAAAAAOI/FKYSkH78ip4/64bit_thumb.png?imgmax=800" width="244" height="56" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It was so simple, kuch, (if you would think of it)….configure this for 32-bit AND 64-bit.&lt;/p&gt;  &lt;p&gt;a) Start PowerShell 32-bit&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_4SYOSujD6rw/TcRzF9181kI/AAAAAAAAAOM/jbfbEiHacS0/s1600-h/image%5B2%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_4SYOSujD6rw/TcRzGBGkbCI/AAAAAAAAAOQ/DXpipYgyaNA/image_thumb.png?imgmax=800" width="244" height="55" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Right click and choose ‘Run as Administrator’)&lt;/li&gt;    &lt;li&gt;Execute the following command:&lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Set-ExecutionPolicy RemoteSigned&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;a) Start PowerShell 64-bit&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_4SYOSujD6rw/TcRzGqI5yfI/AAAAAAAAAOU/mpHZwPu9M70/s1600-h/image%5B5%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_4SYOSujD6rw/TcRzGw5VJLI/AAAAAAAAAOY/STjnC1iPo_I/image_thumb%5B1%5D.png?imgmax=800" width="244" height="69" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Right click and choose ‘Run as Administrator’) &lt;/li&gt;    &lt;li&gt;Execute the following command: &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Set-ExecutionPolicy RemoteSigned&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;div class="csharpcode"&gt;&lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hope this helps someone….&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Sander&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:82f173d7-59ae-4e00-97fb-e915f6a7ad36" class="wlWriterEditableSmartContent"&gt;Tags van Technorati: &lt;a href="http://technorati.com/tags/BizTalk" rel="tag"&gt;BizTalk&lt;/a&gt;,&lt;a href="http://technorati.com/tags/BizTalk+ESB" rel="tag"&gt;BizTalk ESB&lt;/a&gt;,&lt;a href="http://technorati.com/tags/PowerShell" rel="tag"&gt;PowerShell&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-2498586869404107809?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/2498586869404107809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/05/esb-portal-powershell-error-on-64-bit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/2498586869404107809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/2498586869404107809'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/05/esb-portal-powershell-error-on-64-bit.html' title='ESB Portal – powershell error on 64-bit machine'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_4SYOSujD6rw/TcRzE0rL4sI/AAAAAAAAAOA/ASqOA9YcLWY/s72-c/Error_SetPolicy_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-7478164330667099881</id><published>2011-05-06T19:00:00.000+02:00</published><updated>2011-05-06T19:00:02.659+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>.Net 4.0 is cool</title><content type='html'>&lt;p&gt;Since I wasn’t doing a lot of .Net development and when I did it was for developing pipeline components, mapper helpers or other stuff the whole .Net language improvements didn’t got my attention. &lt;/p&gt;  &lt;p&gt;Since I’m doing some adjustments to the BizUnit steps to enable BizTalk testing I was able to use some new .Net features. I’m probably to last to join the club, but from now on my code has this style;&lt;/p&gt;  &lt;p&gt;&lt;font style="background-color: #ffffff" color="#c0504d" size="1"&gt;// create new entity and assign the instance variable Name the value ‘TestOrch’     &lt;br /&gt;var inputTestCase = new TestCase() { Name = &amp;quot;TestOrch&amp;quot; };&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#c0504d" size="1"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#c0504d"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-7478164330667099881?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/7478164330667099881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/05/net-40-is-cool.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/7478164330667099881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/7478164330667099881'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/05/net-40-is-cool.html' title='.Net 4.0 is cool'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-5443624368115119018</id><published>2011-05-05T18:52:00.001+02:00</published><updated>2011-05-05T19:02:08.176+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tooling'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk Monitoring'/><title type='text'>BizTalk 360 – sharing my experience</title><content type='html'>&lt;p&gt;   &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:78e52b21-da2f-4b0a-ac65-9e5821d643a7" class="wlWriterEditableSmartContent"&gt;Tags van Technorati: &lt;a href="http://technorati.com/tags/BizTalk" rel="tag"&gt;BizTalk&lt;/a&gt;,&lt;a href="http://technorati.com/tags/BizTalk+360" rel="tag"&gt;BizTalk 360&lt;/a&gt;,&lt;a href="http://technorati.com/tags/BTS" rel="tag"&gt;BTS&lt;/a&gt;&lt;/div&gt; Today i was notified about an excellent tool to view the stuff you can see in the administration console in a web based silverlight / pimped GUI.&lt;/p&gt;  &lt;p&gt;Here some quick notes on my first experience as well as some pros- and cons.&lt;/p&gt;  &lt;h3&gt;Installation&lt;/h3&gt;  &lt;p&gt;As described on the documentation you have to perform some steps to get it working. BizTalk 360 is an IIS web application that is installed when you run the setup, additionally it will install a &lt;u&gt;windows service&lt;/u&gt; that will monitor your environment.&lt;/p&gt;  &lt;p&gt;1) Register and run the setup&lt;/p&gt;  &lt;p&gt;2) Configure security&lt;/p&gt;  &lt;p&gt;a) Application pool user should be a member of BizTalk Server Administrators / IIS_IUSRS / SSO Administrators&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_4SYOSujD6rw/TcLVrZ_PTiI/AAAAAAAAANE/pckGvTj5UOI/s1600-h/image%5B2%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_4SYOSujD6rw/TcLVr3GapWI/AAAAAAAAANI/JpNydqRDxsU/image_thumb.png?imgmax=800" width="167" height="73" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;b) Is mixed authentication is disabled make sure you change the web.config to use integrated security&lt;/p&gt;  &lt;p&gt;c) Add some grants on the db (suggestion, only do this when you run into problems)&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font size="1"&gt;GRANT SELECT ON dbo.adm_OtherDatabases TO BTS_ADMIN_USERS &lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="1"&gt;GRANT SELECT ON dbo.adm_Server2HostMapping TO BTS_ADMIN_USERS &lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="1"&gt;GRANT SELECT ON dbo.adm_ServiceClass TO BTS_ADMIN_USERS &lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="1"&gt;GRANT SELECT ON dbo.BizTalkDbVersion TO BTS_ADMIN_USERS&lt;/font&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;3) Verify that the application pool is configured for .Net framework 4.0 (if configured for 2.0 you will get the error below when starting the application)&lt;/p&gt;  &lt;p&gt;‘Error Occurred during initialization’&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_4SYOSujD6rw/TcLVsHyOSrI/AAAAAAAAANM/YzeYp2oRlcA/s1600-h/Error%5B2%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Error" border="0" alt="Error" src="http://lh4.ggpht.com/_4SYOSujD6rw/TcLVskp3joI/AAAAAAAAANQ/LrgCq_uEj_Q/Error_thumb.png?imgmax=800" width="244" height="164" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;See this page for additional &lt;a href="http://www.biztalk360.com/content/Troubleshoot.aspx"&gt;throubleshooting&lt;/a&gt; tips&lt;/p&gt;  &lt;h3&gt;Usage&lt;/h3&gt;  &lt;p&gt;When you go to your environment you can basically &lt;strong&gt;view&lt;/strong&gt; everything that you can on your BizTalk administration console, it allows for some quick overviews of an application (like when you click on configure) and drill down on artefacts like ports / hosts etc. In the screenshot below for example, you will see that apparently the application is not fully started…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_4SYOSujD6rw/TcLVtD9BTJI/AAAAAAAAANU/_Ce6tgOOjk8/s1600-h/App%5B2%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="App" border="0" alt="App" src="http://lh4.ggpht.com/_4SYOSujD6rw/TcLVtaukcPI/AAAAAAAAANY/CGghxiBpl7s/App_thumb.png?imgmax=800" width="244" height="147" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Which brings me to the disadvantage, you can drill down and see everything, however you can not perform any action to enable this port, for this you have to go through the tab ‘Ports’ and enable the port. After you click on the ‘Home’ tab you would expect to see the updated results….nope, you have to click on ‘Refresh’, which gives a déjà vu feeling resembling the administration console (that where I got my F5 RSI thumb from).&lt;/p&gt;  &lt;p&gt;It does has a lot of cool features and I suggest to take the &lt;a href="http://www.biztalk360.com/Content/Tour.aspx"&gt;feature tour&lt;/a&gt;. &lt;/p&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;&lt;font color="#c0504d"&gt;Strengths&lt;/font&gt;&lt;/h2&gt;  &lt;h3&gt;Platform overview&lt;/h3&gt;  &lt;p&gt;This tool lets you view your entire platform in a single overview, as well as the state of your environment, pretty cool stuff.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_4SYOSujD6rw/TcLVt3tTezI/AAAAAAAAANc/cGnB-VmPZJk/s1600-h/Platform%5B3%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Platform" border="0" alt="Platform" src="http://lh4.ggpht.com/_4SYOSujD6rw/TcLVuMwF8PI/AAAAAAAAANg/B2wKhGtpAJw/Platform_thumb%5B1%5D.png?imgmax=800" width="408" height="125" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;Viewing the Topology&lt;/h3&gt;  &lt;p&gt;Most of the BizTalk environments consists of multiple environments and every DTAP document has another variation on a visio sheet describing the topology. This tool comes up with a pretty cool dynamically discovered diagram!&lt;/p&gt;  &lt;p&gt;&lt;img alt="Download" src="http://www.biztalk360.com/Images/tour/topology-multi-small.png" width="412" height="288" /&gt;&lt;/p&gt;  &lt;h3&gt;Governance&lt;/h3&gt;  &lt;p&gt;This part lets you see some (room for improvements) governance on your environment for example when are host instances started and stopped…perfect! At this time I thought I would do a test and stop the host instance outside of BizTalk 360, this was not noticed, but I’m sure that’s because it’s the CTP. Still this type of features are a great selling point.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_4SYOSujD6rw/TcLVzwss1GI/AAAAAAAAANk/4ouDVyHhlto/s1600-h/Governance%5B3%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Governance" border="0" alt="Governance" src="http://lh4.ggpht.com/_4SYOSujD6rw/TcLV0SjQ4jI/AAAAAAAAANo/yOCl1PctBwY/Governance_thumb%5B1%5D.png?imgmax=800" width="432" height="113" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;&lt;font color="#c0504d"&gt;Room for improvement&lt;/font&gt;&lt;/h2&gt;  &lt;p&gt;Here are some parts that have a lot of potential but should be (to my humble opinion) improved.&lt;/p&gt;  &lt;h3&gt;Advanced event viewer&lt;/h3&gt;  &lt;p&gt;The advanced event viewer gives a nice structured interface to build you event viewer filter&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_4SYOSujD6rw/TcLV0v9tfCI/AAAAAAAAANs/CQ2q550Jg28/s1600-h/EventViewer%5B3%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="EventViewer" border="0" alt="EventViewer" src="http://lh4.ggpht.com/_4SYOSujD6rw/TcLV03dCquI/AAAAAAAAANw/Dn28HvkfMKg/EventViewer_thumb%5B1%5D.png?imgmax=800" width="264" height="131" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;However, I could not see any data and when I ran the query I got this nice little fellow&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://lh4.ggpht.com/_4SYOSujD6rw/TcLV1SVQC2I/AAAAAAAAAN0/Jcw3_PcBwQQ/s1600-h/EventViewer_Error%5B3%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="EventViewer_Error" border="0" alt="EventViewer_Error" src="http://lh5.ggpht.com/_4SYOSujD6rw/TcLV19gvkjI/AAAAAAAAAN4/Z4ne_Aj6cBQ/EventViewer_Error_thumb%5B1%5D.png?imgmax=800" width="269" height="204" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Let’s say that this was my quick-and-dirty configuration mistake, or was caused by a glitch due to the fact it is an CTP.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Queries&lt;/h3&gt;    &lt;p&gt;This got my hopes up, I was hoping to see the powerful HAT query designer where you could get your hands dirty revived. However, this was a mere subset of the administration console query console. I’m not sure if I looked in the wrong place, but where is the button to save your carefully crafted query?!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;&lt;font color="#c0504d"&gt;Summary&lt;/font&gt;&lt;/h2&gt;  &lt;p&gt;I do think this is an awesome additional for the BizTalk community, it just looks like an app of the future. I think it has a lot of cool features to consider. The licensing information is not yet clear but I highly recommend to take a look at this tool.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Cheers,&lt;/p&gt;  &lt;p&gt;Sander&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-5443624368115119018?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/5443624368115119018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/05/biztalk-360-sharing-my-experience.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/5443624368115119018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/5443624368115119018'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/05/biztalk-360-sharing-my-experience.html' title='BizTalk 360 – sharing my experience'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_4SYOSujD6rw/TcLVr3GapWI/AAAAAAAAANI/JpNydqRDxsU/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-3069909036256302678</id><published>2011-05-03T23:03:00.001+02:00</published><updated>2011-05-05T19:04:25.669+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk ESB'/><title type='text'>ESB Toolkit 2.1 No itinerary designer</title><content type='html'>&lt;p&gt;   &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:7ef4107d-f876-4e03-a65e-bba66d821ea1" class="wlWriterEditableSmartContent"&gt;Tags van Technorati: &lt;a href="http://technorati.com/tags/BizTalk" rel="tag"&gt;BizTalk&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ESB" rel="tag"&gt;ESB&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ESB+Toolkit" rel="tag"&gt;ESB Toolkit&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ESB+2.1" rel="tag"&gt;ESB 2.1&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ESB+Toolkit+2.1" rel="tag"&gt;ESB Toolkit 2.1&lt;/a&gt;,&lt;a href="http://technorati.com/tags/BizTalk+ESB" rel="tag"&gt;BizTalk ESB&lt;/a&gt;&lt;/div&gt; The itinerary design seems to be only installed for the user that was fortunate the install the ESB Toolkit. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Symptom&lt;/strong&gt; – when you open an itinerary you do not see the itinerary DSL but only the Xml (might be good news for the old school notepad coding guys) but having that experience always makes me back shiver.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_4SYOSujD6rw/TcBtmp1uWqI/AAAAAAAAALc/YUZ99-6Gpm4/s1600-h/1%20OpenItinerary%5B2%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="1 OpenItinerary" border="0" alt="1 OpenItinerary" src="http://lh4.ggpht.com/_4SYOSujD6rw/TcBtnI4v0PI/AAAAAAAAALg/RnQODamoRfM/1%20OpenItinerary_thumb.png?imgmax=800" width="244" height="73" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;When you go to tools / Extension manager&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_4SYOSujD6rw/TcBtni61ioI/AAAAAAAAALk/QXObx0R4T5M/s1600-h/2%20Extensions%5B2%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="2 Extensions" border="0" alt="2 Extensions" src="http://lh3.ggpht.com/_4SYOSujD6rw/TcBtoF3-sbI/AAAAAAAAALo/n1anuQXsdSw/2%20Extensions_thumb.png?imgmax=800" width="244" height="184" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You will not see the ESB Itinerary design&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_4SYOSujD6rw/TcBtodBCSzI/AAAAAAAAALs/IF3WdU0NJTg/s1600-h/3%20ExtensionsManager%5B2%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="3 ExtensionsManager" border="0" alt="3 ExtensionsManager" src="http://lh5.ggpht.com/_4SYOSujD6rw/TcBtoz5VG6I/AAAAAAAAALw/LXTd_2ZTo8Y/3%20ExtensionsManager_thumb.png?imgmax=800" width="244" height="62" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;What’s wrong – &lt;/strong&gt;The VS.Net extensions are installed in the folder of the user, somehow the ESB Toolkit installer does not install the extension for all users (you can verify this by looking for the EsbExtensions in the following folder:&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&lt;u&gt;&amp;lt;DRIVE&amp;gt;\Users\&amp;lt;USERNAME&amp;gt;\AppData\Local\Microsoft\VisualStudio\10.0\&lt;/u&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Solution – &lt;/strong&gt;Close VS.Net (all instances) and go to:&lt;/p&gt;  &lt;p&gt;‘Start\Microsoft BizTalk Server 2010 ESB Toolkit\Install Itinerary designer extension’&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_4SYOSujD6rw/TcDmmTpXkFI/AAAAAAAAAMs/3vNg7oPUW8g/s1600-h/11%20Install%20Designer%5B3%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="11 Install Designer" border="0" alt="11 Install Designer" src="http://lh3.ggpht.com/_4SYOSujD6rw/TcDmmoAweoI/AAAAAAAAAMw/Xcfguch_V4Y/11%20Install%20Designer_thumb%5B1%5D.png?imgmax=800" width="221" height="54" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_4SYOSujD6rw/TcDmnJy5v-I/AAAAAAAAAM0/gE-jazpJWtY/s1600-h/12%20Install%20Extension%5B2%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="12 Install Extension" border="0" alt="12 Install Extension" src="http://lh3.ggpht.com/_4SYOSujD6rw/TcDmnT1tzKI/AAAAAAAAAM4/p4sPCfWLo5U/12%20Install%20Extension_thumb.png?imgmax=800" width="244" height="173" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_4SYOSujD6rw/TcDmns_sdJI/AAAAAAAAAM8/mEvFVMB10JM/s1600-h/13%20Installed%5B2%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="13 Installed" border="0" alt="13 Installed" src="http://lh3.ggpht.com/_4SYOSujD6rw/TcDmoJuucRI/AAAAAAAAANA/UTP6RsZn4rw/13%20Installed_thumb.png?imgmax=800" width="244" height="171" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Open VS and then the itinerary that didn’t open, you should be able to go ahead an continue where you wanted to start!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_4SYOSujD6rw/TcBttjLVZaI/AAAAAAAAAMk/-BdYlOgPC30/s1600-h/10%20BackinBusiness%5B2%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="10 BackinBusiness" border="0" alt="10 BackinBusiness" src="http://lh5.ggpht.com/_4SYOSujD6rw/TcBtuKGsQWI/AAAAAAAAAMo/VHiTDnBzvz8/10%20BackinBusiness_thumb.png?imgmax=800" width="225" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Note, if this didn’t work, my other &lt;a href="http://snefs.blogspot.com/search/label/BizTalk%20ESB"&gt;post on this subject&lt;/a&gt; might help you out.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Cheers,&lt;/p&gt;  &lt;p&gt;Sander&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-3069909036256302678?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/3069909036256302678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/05/esb-toolkit-21-no-itinerary-designer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/3069909036256302678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/3069909036256302678'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/05/esb-toolkit-21-no-itinerary-designer.html' title='ESB Toolkit 2.1 No itinerary designer'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_4SYOSujD6rw/TcBtnI4v0PI/AAAAAAAAALg/RnQODamoRfM/s72-c/1%20OpenItinerary_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-1076259169909786562</id><published>2011-04-28T07:53:00.001+02:00</published><updated>2011-04-28T07:53:23.754+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='Events'/><title type='text'>DevDays – looking forward to day 2</title><content type='html'>&lt;p&gt;Due to my involvement in a project i will only attend the devdays on day 2. Since I’m doing BizTalk my interests are Azure, WCF, SQL, .Net and the goodies. I’ve figured out how my action packed schedule will look like, hoping to see some current/former colleagues then.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;09:15 - 10:30&lt;/strong&gt;    &lt;br /&gt;Speaker: Robert Hartskeerl    &lt;br /&gt;Summary: SQL Server &amp;amp; Powershell&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;10:50 - 12:05&lt;/strong&gt;    &lt;br /&gt;Speaker: Clemens Vasters    &lt;br /&gt;Summary: Windows Azure AppFabric Service Bus: Messaging, Pub/Sub, and Connectivity in and through the Cloud&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Aaaah finally &lt;/em&gt;&lt;/strong&gt;….the well deserved break &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Glimlach" src="http://lh3.ggpht.com/_4SYOSujD6rw/TbkA0pDPiFI/AAAAAAAAALY/HoAGEh7urmI/wlEmoticon-smile%5B2%5D.png?imgmax=800" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;13:15 - 14:30&lt;/strong&gt;    &lt;br /&gt;Speaker: Vittorio Bertocci    &lt;br /&gt;Summary: Windows Azure AppFabric Access Control Service: Deep Dive&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;14:50 - 16:05     &lt;br /&gt;&lt;/strong&gt;Speaker: Christian Weyer    &lt;br /&gt;Summary: Ubiquitous Communication with the Windows Azure Service Bus&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;16:15 - 17:30&lt;/strong&gt;    &lt;br /&gt;Speaker: Vittorio Bertocci    &lt;br /&gt;Summary: Developing SaaS Solutions with the Windows Azure Platform    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;I hope it will be fun, hoping to be able to take some stuff and apply them directly on the project like the powershell bits and apply them on BizTalk.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.techdays.nl/GridAgenda.aspx?day=29"&gt;Agenda&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-1076259169909786562?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/1076259169909786562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/04/devdays-looking-forward-to-day-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/1076259169909786562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/1076259169909786562'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/04/devdays-looking-forward-to-day-2.html' title='DevDays – looking forward to day 2'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_4SYOSujD6rw/TbkA0pDPiFI/AAAAAAAAALY/HoAGEh7urmI/s72-c/wlEmoticon-smile%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-6665239423236040204</id><published>2011-04-08T11:00:00.001+02:00</published><updated>2011-04-08T11:00:04.316+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Passed SQL 70-432</title><content type='html'>&lt;p&gt;An excuse to post something small, just passed the SQL Exam for database implementation and administration. &lt;/p&gt;  &lt;p&gt;Next time when I’m the BizTalk Guy and SQL Guy I’m at least certified &lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Glimlach" src="http://lh6.ggpht.com/_4SYOSujD6rw/TZ7Ok_nsrcI/AAAAAAAAALU/b5KRlbPsHO8/wlEmoticon-smile%5B2%5D.png?imgmax=800" /&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-6665239423236040204?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/6665239423236040204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/04/passed-sql-70-432.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/6665239423236040204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/6665239423236040204'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/04/passed-sql-70-432.html' title='Passed SQL 70-432'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_4SYOSujD6rw/TZ7Ok_nsrcI/AAAAAAAAALU/b5KRlbPsHO8/s72-c/wlEmoticon-smile%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-13900684784424874</id><published>2011-02-18T09:01:00.001+01:00</published><updated>2011-02-18T09:01:30.711+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tooling'/><title type='text'>Tools – Automatically set the proxy</title><content type='html'>&lt;p&gt;When you work at customer settings, setting the proxy can be a hassle, you either forget to do it, or forget to turn it off….After trying some codeproject tools that all seem to crash I found another one that works for me (W7 – 64bit):&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.msdn.com/b/irenak/archive/2008/12/16/sysk-366-tool-to-automatically-set-internet-explorer-proxy.aspx" href="http://blogs.msdn.com/b/irenak/archive/2008/12/16/sysk-366-tool-to-automatically-set-internet-explorer-proxy.aspx"&gt;http://blogs.msdn.com/b/irenak/archive/2008/12/16/sysk-366-tool-to-automatically-set-internet-explorer-proxy.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This tool detects the environment and sets the proxy accordingly based on a xml config file. Not sure if you can set a password, but for basic usage this is great.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Cheers.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-13900684784424874?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/13900684784424874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/02/tools-automatically-set-proxy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/13900684784424874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/13900684784424874'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/02/tools-automatically-set-proxy.html' title='Tools – Automatically set the proxy'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-5640589673976216069</id><published>2011-02-05T18:34:00.000+01:00</published><updated>2011-02-05T18:34:00.683+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><title type='text'>MSI Import error due to HostInstance casing</title><content type='html'>&lt;p&gt;Just a thing I noticed, when you create a HostInstance and you import a host that slightly differs in casing form the bind host in the binding, you will get an error….thus someone forgot to due an ‘IgnoreCase’ comparison.&lt;/p&gt;  &lt;p&gt;I had used a tool to create hosts/host instances and made a typo in the casing…had no idea this would be a problem…well easy to solve!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Greetz.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-5640589673976216069?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/5640589673976216069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/02/msi-import-error-due-to-hostinstance.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/5640589673976216069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/5640589673976216069'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/02/msi-import-error-due-to-hostinstance.html' title='MSI Import error due to HostInstance casing'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-4433201525017247560</id><published>2011-02-04T18:29:00.001+01:00</published><updated>2011-05-05T19:06:51.022+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><title type='text'>BizTalk Debugging - Breakpoint for thousands instances….ooops</title><content type='html'>&lt;p&gt;During training I always tell that when you set a breakpoint to an orchestration you have to be careful, since you have to remove the breakpoint on the class. &lt;/p&gt;    &lt;p&gt;If you would start 100000 orchestrations, you would have a nice job for the weekend when trying to remove all the breakpoints.&lt;/p&gt;  &lt;p&gt;I was wrong, there is an easier way:&lt;/p&gt;  &lt;p&gt;Open the ‘Debugger’&lt;/p&gt;  &lt;p&gt;- Remove breakpoint on the class&lt;/p&gt;  &lt;p&gt;- Suspend all the instances in that are dehydrated due to a breakpoint&lt;/p&gt;  &lt;p&gt;- Resume all the orchestration instances&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Voila!&lt;/p&gt;  &lt;p&gt;   &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:3069b4d8-28eb-42af-9f95-40c95dcdb69a" class="wlWriterEditableSmartContent"&gt;Tags van Technorati: &lt;a href="http://technorati.com/tags/BizTalk" rel="tag"&gt;BizTalk&lt;/a&gt;,&lt;a href="http://technorati.com/tags/BizTalk+Debugger" rel="tag"&gt;BizTalk Debugger&lt;/a&gt;,&lt;a href="http://technorati.com/tags/BizTalk+Debugging" rel="tag"&gt;BizTalk Debugging&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-4433201525017247560?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/4433201525017247560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/02/breakpoint-for-thousands-instancesooops.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/4433201525017247560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/4433201525017247560'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/02/breakpoint-for-thousands-instancesooops.html' title='BizTalk Debugging - Breakpoint for thousands instances….ooops'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-1934374295572706921</id><published>2011-01-17T10:47:00.000+01:00</published><updated>2011-01-17T10:47:00.178+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><title type='text'>BizTalk Map test framework</title><content type='html'>&lt;p&gt;For testing BizTalk solutions the combination of BizUnit and the orchestration profiler are the way to go. Setting it up for a new project can be a hassle, although i appreciate it’s flexibility with the easy of adding custom BizUnit steps.&lt;/p&gt;  &lt;p&gt;I just came across a new framework that provides some usefull means of testing BizTalk artefacts, namely maps. &lt;/p&gt;  &lt;p&gt;As you might have noticed the support for testing in BizTalk 2009 / BizTalk 2010 is somewhat limited and it forces you to build your artefacts with additional code for mere testing only (the check ‘Enable Unit Test’ will generate a wrapper around the components such as the TestableMapBase in the example below)….the most you will get out of the standard map testing is a validate instance of your message:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&lt;font style="background-color: #ffffff" face="Arial"&gt;&lt;em&gt;&lt;strong&gt;Microsoft.BizTalk.TestTools.Mapper.TestableMapBase mapTest = new MapTest.Input2Output();           &lt;br /&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p align="left"&gt;&lt;font style="background-color: #ffffff" face="Arial"&gt;&lt;em&gt;&lt;strong&gt;mapTest.TestMap(           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; @&amp;quot;Input.xml&amp;quot;,&amp;#160;&amp;#160; Microsoft.BizTalk.TestTools.Schema.InputInstanceType.Xml,            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;Output.xml&amp;quot;,&amp;#160; Microsoft.BizTalk.TestTools.Schema.OutputInstanceType.XML);&lt;/strong&gt;&lt;/em&gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This can be overcome by using a mapping helper component (e.g .from &lt;a href="http://geekswithblogs.net/michaelstephenson/archive/2008/03/30/120851.aspx"&gt;Michael Stephenson&lt;/a&gt;) that does a Binary or Xml validation of the result, nevertheless you don’t want to write this on your own.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Arial"&gt;&lt;strong&gt;MapTestingHelper.ValidateMapOutput(&amp;quot;Output.xml&amp;quot;, “Output.xml&amp;quot;);&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I’ve tried out the &lt;a href="http://mtf.codeplex.com/"&gt;BizTalk map test framework&lt;/a&gt; and it allows you to write your testcases using Xpath on fields that you dynamically want to fill with dummy values and predicted outcomes. &lt;/p&gt;  &lt;p&gt;Let’s say you want to test a value mapping that returns different results based on the input you can simply write a method that does this validation in just a few lines:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&lt;font face="Arial"&gt;MapTestCases collection = new MapTestCases(         &lt;br /&gt;&amp;quot;/*[local-name()='Input']/*[local-name()='InputValue']&amp;quot;,          &lt;br /&gt;&amp;quot;/*[local-name()='Output']/*[local-name()='ValueOut']&amp;quot;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; );          &lt;br /&gt;&lt;/font&gt;&lt;font face="Arial"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Arial"&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; collection.AddTestCase(         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new string[] { &amp;quot;TEST&amp;quot; }, new string[] { &amp;quot;TRUE&amp;quot; }          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; );&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;font face="Arial"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; collection.AddTestCase(         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new string[] { &amp;quot;AAH&amp;quot; }, new string[] { &amp;quot;FAL3SE&amp;quot; }          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; );&lt;/font&gt;        &lt;br /&gt;&lt;/strong&gt;&lt;font face="Arial"&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; base.ExecuteMapTest(collection);         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I think i like it….check it out here: &lt;a href="http://mtf.codeplex.com/"&gt;BizTalk map test framework&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-1934374295572706921?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/1934374295572706921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/01/biztalk-map-test-framework.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/1934374295572706921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/1934374295572706921'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/01/biztalk-map-test-framework.html' title='BizTalk Map test framework'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-1150234758006414571</id><published>2011-01-16T22:13:00.002+01:00</published><updated>2011-10-08T09:11:39.516+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unit Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><title type='text'>BizTalk Unit testing – heads up</title><content type='html'>&lt;p&gt;BizTalk Unit testing was before the release of BizTalk 2009 not an integral part of the product. The community anticipated with awesome frameworks and tools:&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://bizunit.codeplex.com/"&gt;BizUnit&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;Very stable framework that is a wrapper around NUnit that allows testing using BizUnit steps, complemented with additional steps (&lt;a href="http://bizunitextensions.codeplex.com/"&gt;BizUnitExtensions&lt;/a&gt;) and incorperated in the (&lt;a href="http://bsf.codeplex.com/"&gt;BizTalk Software Factory&lt;/a&gt;). This is the framework that suits all your needs by allowing custom BizUnit step development in .Net and uses an Xml based approach.&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://github.com/tomasr/pipelinetesting"&gt;Pipelinetesting framework&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;Very stable framework developed by Tomas Restrepo, very nice and easy to understand.&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://biztalkorcprofiler.codeplex.com/"&gt;Orchestration profiler&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;Profiler that allows for code coverage by querying the BizTalk database and generating reports on the orchestration shape coverage, allowing insight in the completeness of the test.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;u&gt;Present day&lt;/u&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;A new framework has been introduced, that is fitted for one purpose, testing maps using an approach of dynamically reading/manipulating Xml fields by XPath expressions that can be set up in code.&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://mtf.codeplex.com/"&gt;BizTalk map test framework&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;In my next posts i will show my positive experience with the latter! &lt;/p&gt;&lt;br /&gt;&lt;p&gt;For your reference here is a list of some common frameworks and areas of expertise;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_4SYOSujD6rw/TTNfbBzVYaI/AAAAAAAAALI/ZtvNHLhkz8Q/s1600-h/image%5B3%5D.png"&gt;&lt;img style="BACKGROUND-IMAGE: none; BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px; PADDING-TOP: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_4SYOSujD6rw/TTNfbZ4E3DI/AAAAAAAAALM/0VOCxKvtnFs/image_thumb%5B1%5D.png?imgmax=800" width="463" height="130" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Note: due to the popularity of BizUnit a lot of blogs are about steps that have been created, including steps that use the Pipelinetesting framework. That’s the reason, BizUnit passes all tests :)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-1150234758006414571?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/1150234758006414571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2011/01/biztalk-unit-testing-heads-up.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/1150234758006414571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/1150234758006414571'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2011/01/biztalk-unit-testing-heads-up.html' title='BizTalk Unit testing – heads up'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_4SYOSujD6rw/TTNfbZ4E3DI/AAAAAAAAALM/0VOCxKvtnFs/s72-c/image_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-5828434213873481419</id><published>2010-12-20T11:43:00.000+01:00</published><updated>2010-12-18T11:43:02.861+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='Dynamic SMTP Port'/><title type='text'>Dynamic SMTP Send Port - Unknown Error Description</title><content type='html'>&lt;p&gt;The other day I was using the Dynamic SMTP port to send an email message after a technical error had occurred in BizTalk.&lt;/p&gt;  &lt;p&gt;I used a BRE Policy to configure the Email settings and had set the SMTP.EmailBodyText property. &lt;/p&gt;  &lt;p&gt;Although there are a lot of things that can go wrong I was convinced it was rooted in my BRE call and result. &lt;/p&gt;  &lt;p&gt;It took me several dreadful minutes before i stumbled on a post of a fellow &lt;a href="http://geekswithblogs.net/LeonidGaneline/archive/2010/03/12/biztalk-dynamic-smtp-port-unknown-error.aspx" target="_blank"&gt;BizTalk developer&lt;/a&gt; who had faced the same issue.&lt;/p&gt;  &lt;p&gt;It turns out that when you use the BodyText you MUST set the charset:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;EmailMessage(SMTP.EmailBodyTextCharset) = &amp;quot;UTF-8&amp;quot;;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Cheers.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-5828434213873481419?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/5828434213873481419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2010/09/dynamic-smtp-send-port-unknown-error.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/5828434213873481419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/5828434213873481419'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2010/09/dynamic-smtp-send-port-unknown-error.html' title='Dynamic SMTP Send Port - Unknown Error Description'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-8972630734277544494</id><published>2010-12-19T11:42:00.001+01:00</published><updated>2011-10-08T09:12:03.499+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><title type='text'>BizTalk 2010 exam review</title><content type='html'>&lt;p&gt;Hi there, I just finished providing some feedback for the upcoming BizTalk 2010 exam and I hope the input was valuable.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;As I am preparing for the SQL Server 70-342 I hope the exam will be finalized early next year so that I can it to my list of exams to take.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Cheers. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-8972630734277544494?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/8972630734277544494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2010/11/biztalk-2010-exam-review.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/8972630734277544494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/8972630734277544494'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2010/11/biztalk-2010-exam-review.html' title='BizTalk 2010 exam review'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-50245518729760516</id><published>2010-12-18T19:41:00.000+01:00</published><updated>2010-12-18T11:42:03.341+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='FILE Adapter'/><title type='text'>File Adapter quirks</title><content type='html'>&lt;p&gt;Since I try to have posts for all the adapters I have encountered it can be that this is a post that it not new for all the people already working with BizTalk for a long time. It just wanted to have it on my blog for the sake of completeness;&lt;/p&gt;  &lt;p&gt;The FILE adapters requires that the Host Instance account user has FULL Control on the folder it tries to read from.&lt;/p&gt;  &lt;p&gt;I was giving a course on security in BizTalk and explained the security modal of BizTalk (like BizTalk operator / BizTalk administrator) and the ability to run Host instances under minimal privileges accounts (BizTalk Application Users member) and had a hard time to explain why the file was not picked up when Read only rights were assigned.&lt;/p&gt;  &lt;p&gt;This answer is: because I said so &lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://lh6.ggpht.com/_4SYOSujD6rw/TPasG4ioq4I/AAAAAAAAAJY/7IOpCVNHuQU/wlEmoticon-winkingsmile%5B2%5D.png?imgmax=800" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Regards.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-50245518729760516?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/50245518729760516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2010/10/file-adapter-quirks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/50245518729760516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/50245518729760516'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2010/10/file-adapter-quirks.html' title='File Adapter quirks'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_4SYOSujD6rw/TPasG4ioq4I/AAAAAAAAAJY/7IOpCVNHuQU/s72-c/wlEmoticon-winkingsmile%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-8167293870519945128</id><published>2010-12-18T11:40:00.000+01:00</published><updated>2010-12-18T11:40:53.622+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='Scheduled Task Adapter'/><title type='text'>Scheduled Task Adapter</title><content type='html'>&lt;p&gt;After considering the options for a project where interfacing in a scheduled manner was required i came across the Scheduled task adapter. This thing is so easy to use, I must speak about it! &lt;/p&gt;  &lt;p&gt;The following section describes the steps required to implement the scheduled task adapter.&lt;/p&gt;  &lt;h5&gt;Installation&lt;/h5&gt;  &lt;h6&gt;Register the components&lt;/h6&gt;  &lt;p&gt;To install the Scheduled task adapter download the adapter from ‘Codeplex’ (&lt;a href="http://biztalkscheduledtask.codeplex.com/"&gt;http://biztalkscheduledtask.codeplex.com/&lt;/a&gt;). Run the setup and follow the steps during the setup.&lt;/p&gt;  &lt;p&gt;Note: In the current version the setup does not register the necessary dll’s in the Global Assembly Cache. These steps have to be performed manually.&lt;/p&gt;  &lt;p&gt;- Start the Visual Studio command prompt&lt;/p&gt;  &lt;p&gt;- Navigate to ‘C:\Program Files\Biztalk ScheduledTask Adapter’&lt;/p&gt;  &lt;p&gt;- Run ‘GACUTIL –i Biztalk.Adapter.ScheduledTaskProperties.dll’&lt;/p&gt;  &lt;p&gt;- Run ‘GACUTIL –i Calendar.Schedules.dll’&lt;/p&gt;  &lt;p&gt;- Run ‘GACUTIL –i ScheduledTaskAdapter.Admin.dll’&lt;/p&gt;  &lt;p&gt;- Run ‘GACUTIL –i ScheduledTaskAdapter.dll’&lt;/p&gt;  &lt;p&gt;- Run ‘GACUTIL –i ScheduledTaskAdapter.TaskComponents.dll’&lt;/p&gt;  &lt;h6&gt;Add the adapter&lt;/h6&gt;  &lt;p&gt;Start the administration console and create a new adapter under ‘Platform settings’.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_4SYOSujD6rw/TPavYKAZTZI/AAAAAAAAAJc/CT3oiegGAl8/s1600-h/clip_image002%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://lh5.ggpht.com/_4SYOSujD6rw/TPavYoZM5JI/AAAAAAAAAJg/V-cfTAwCcjw/clip_image002_thumb.jpg?imgmax=800" width="216" height="98" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Select the Schedule adapter and name it as desired, for example ScheduledTaskAdapter&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_4SYOSujD6rw/TPavZKTtAQI/AAAAAAAAAJk/vBtXucTvJnc/s1600-h/clip_image004%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://lh5.ggpht.com/_4SYOSujD6rw/TPavaLsOkKI/AAAAAAAAAJo/UOig77tLo_8/clip_image004_thumb.jpg?imgmax=800" width="244" height="86" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Restart the host instance&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_4SYOSujD6rw/TPavaV5qcDI/AAAAAAAAAJs/-ty-rTYhEsM/s1600-h/clip_image006%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://lh3.ggpht.com/_4SYOSujD6rw/TPavasmiVgI/AAAAAAAAAJw/C3yfPfxqMK0/clip_image006_thumb.jpg?imgmax=800" width="244" height="51" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h5&gt;Configuration&lt;/h5&gt;  &lt;p&gt;The Scheduled task adapter has the ability to fire a trigger based on a regular interval. This trigger can be defined as desired, the most common usage is to use a String trigger which will submit a predefined String (e.g. an Xml message) to the messagebox so that it can be picked up by an Orchestration.&lt;/p&gt;  &lt;p&gt;The first step is to create a new Receive port that will contain a receive location using the ScheduledTaskAdapter.&lt;/p&gt;  &lt;p&gt;Create a new One-Way receive port&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_4SYOSujD6rw/TPavbxSiGwI/AAAAAAAAAJ0/QEYOu4rZqYk/s1600-h/clip_image008%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image008" border="0" alt="clip_image008" src="http://lh4.ggpht.com/_4SYOSujD6rw/TPavcaxs9sI/AAAAAAAAAJ4/8HcDZTCeOu8/clip_image008_thumb.jpg?imgmax=800" width="244" height="52" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Create a new Receive location and select the ScheduledTaskAdapter, ensure that you choose XMLReceive as the receive pipeline.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_4SYOSujD6rw/TPavdN4rDyI/AAAAAAAAAJ8/NUsnB1awkrQ/s1600-h/clip_image010%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image010" border="0" alt="clip_image010" src="http://lh5.ggpht.com/_4SYOSujD6rw/TPavdvhYpXI/AAAAAAAAAKA/hqrxJ9oQ0PY/clip_image010_thumb.jpg?imgmax=800" width="244" height="131" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Click on Configure and define a name for the schedule&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_4SYOSujD6rw/TPaveP5D8hI/AAAAAAAAAKE/BLFKH20GI_Y/s1600-h/clip_image012%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image012" border="0" alt="clip_image012" src="http://lh5.ggpht.com/_4SYOSujD6rw/TPavees1boI/AAAAAAAAAKI/-AnvS6p9q-M/clip_image012_thumb.jpg?imgmax=800" width="244" height="74" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Define a schedule which executes the tasks periodically&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_4SYOSujD6rw/TPaveyPF0lI/AAAAAAAAAKM/JRDglyHadfU/s1600-h/clip_image014%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image014" border="0" alt="clip_image014" src="http://lh3.ggpht.com/_4SYOSujD6rw/TPavfFU0U8I/AAAAAAAAAKQ/VPAeQAHButI/clip_image014_thumb.jpg?imgmax=800" width="244" height="227" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Select a task component&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_4SYOSujD6rw/TPavfWtTg5I/AAAAAAAAAKU/02_uhVdOsOA/s1600-h/clip_image016%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image016" border="0" alt="clip_image016" src="http://lh6.ggpht.com/_4SYOSujD6rw/TPavgQt2czI/AAAAAAAAAKY/XZ3Zi6uiAD4/clip_image016_thumb.jpg?imgmax=800" width="244" height="94" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This tab allows the usage of implemented Task items. These are the actions performed, you can implement any task as long as it conforms to the API of the ScheduledTaskAdapter. In this case we will use a task type that is included with the Adapter.&lt;/p&gt;  &lt;p&gt;Click on ‘FindTask’, this will show the assembly browser&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_4SYOSujD6rw/TPavg0toMFI/AAAAAAAAAKc/Wai8kYlhJxQ/s1600-h/clip_image018%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image018" border="0" alt="clip_image018" src="http://lh6.ggpht.com/_4SYOSujD6rw/TPavhuHh2LI/AAAAAAAAAKg/BtpMc9zk4Ss/clip_image018_thumb.jpg?imgmax=800" width="244" height="57" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Click on ‘Browse’ and select the assembly ‘ScheduledTaskAdapter.TaskComponents.dll’ (located in the Program Files\Biztalk ScheduledTask Adapter directory).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_4SYOSujD6rw/TPaviCXtrmI/AAAAAAAAAKk/UVJ8eIrGjaU/s1600-h/clip_image020%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image020" border="0" alt="clip_image020" src="http://lh3.ggpht.com/_4SYOSujD6rw/TPaviaTjX3I/AAAAAAAAAKo/QiSKgstol8Y/clip_image020_thumb.jpg?imgmax=800" width="244" height="80" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Double click the XMLStringStreamProvider and click ok&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_4SYOSujD6rw/TPavi9ODUSI/AAAAAAAAAKs/qHxHncFpdMk/s1600-h/clip_image022%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image022" border="0" alt="clip_image022" src="http://lh3.ggpht.com/_4SYOSujD6rw/TPavj-4ZtPI/AAAAAAAAAKw/HUYb_sNh3vA/clip_image022_thumb.jpg?imgmax=800" width="244" height="100" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Under taskproperties, configure the XmlString that will be published on the messagebox at the moment the task is executed&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_4SYOSujD6rw/TPavkgM_-JI/AAAAAAAAAK0/XiDvve3ng0g/s1600-h/clip_image024%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image024" border="0" alt="clip_image024" src="http://lh3.ggpht.com/_4SYOSujD6rw/TPavlKH4esI/AAAAAAAAAK4/KLHDQ43EgU8/clip_image024_thumb.jpg?imgmax=800" width="244" height="114" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Note: this is a xml instance that you can used as the first receive shape in the orchestration that should be started.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Have fun with it!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-8167293870519945128?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/8167293870519945128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2010/12/scheduled-task-adapter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/8167293870519945128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/8167293870519945128'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2010/12/scheduled-task-adapter.html' title='Scheduled Task Adapter'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_4SYOSujD6rw/TPavYoZM5JI/AAAAAAAAAJg/V-cfTAwCcjw/s72-c/clip_image002_thumb.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-4817150215922453229</id><published>2010-12-02T21:43:00.001+01:00</published><updated>2011-10-08T09:12:46.619+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk 2010 Mapper'/><title type='text'>BizTalk 2010 Mapper Pros/Cons</title><content type='html'>&lt;p&gt;I am now using the BizTalk mapper 2010 frequently, I faced 2 changes I don’t appreciate:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;PROS&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;- Search elements&lt;/p&gt;&lt;br /&gt;&lt;p&gt;When you type in a fieldname, it is highlighted! You can even toggle buttons so that only the highlighted elements are shown. Cool&lt;/p&gt;&lt;br /&gt;&lt;p&gt;- Copy Paste&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Copy/paste works like a charm, elements can be selected easily and it now works as it should have been a long time…intuitive.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;CONS&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;- Replace functoid does not work anymore&lt;/p&gt;&lt;br /&gt;&lt;p&gt;It used to be, that when you drag a functoid and drop it over a functoid already on the mapping grid that it would replace the existing functoid. Well, it’s noted, not really what I wanted.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;- Create a message from scratch&lt;/p&gt;&lt;br /&gt;&lt;p&gt;When I make a new message and I don’t have input for it a Assign a new message using a Message variable of type XmlDoc. Assign it a value with the first element of the schema (e.g. &amp;lt;Error /&amp;gt;) and then use the mapper to set all the different elements in the message (using a string concatenate with an empty value). &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_4SYOSujD6rw/TPazsFGXQWI/AAAAAAAAAK8/jSrpk_2Jhk8/s1600-h/CropperCapture%5B1%5D%5B2%5D.png"&gt;&lt;img style="BACKGROUND-IMAGE: none; BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px; PADDING-TOP: 0px" title="CropperCapture[1]" border="0" alt="CropperCapture[1]" src="http://lh6.ggpht.com/_4SYOSujD6rw/TPazshXx3nI/AAAAAAAAALA/lzqSp7ABAXQ/CropperCapture%5B1%5D_thumb.png?imgmax=800" width="244" height="123" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I am not 100% finished with analyzing this, but it looks like this does not work anymore. The mapper does not overwrite the elements and the original input is passed ==&amp;gt; &amp;lt;Error /&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;This means that you would have to provide all the elements that you want to use, this the added value of using the XmlDoc approach for creating a message is than quite low.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I will post an update if I have found some more detailed info and will try to make an example solution.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Cheers.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-4817150215922453229?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/4817150215922453229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2010/12/biztalk-2010-mapper-proscons.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/4817150215922453229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/4817150215922453229'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2010/12/biztalk-2010-mapper-proscons.html' title='BizTalk 2010 Mapper Pros/Cons'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_4SYOSujD6rw/TPazshXx3nI/AAAAAAAAALA/lzqSp7ABAXQ/s72-c/CropperCapture%5B1%5D_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-2223364458687493891</id><published>2010-08-18T11:05:00.002+02:00</published><updated>2011-10-08T09:13:26.179+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk ESB'/><title type='text'>ESB Toolkit not showing itinerary designer</title><content type='html'>&lt;p&gt;I recently used a virtual machine that included the BizTalk ESB Toolkit. When i tried to start the machine everything worked fine, so i decided to startup some projects. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;At the part where i wanted to design an ESB Itinerary i faced the issue that the designer was not showing. At first i suspected that a corrupted registry entry was the cause and was preparing myself for a fresh install untill i noticed something. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_4SYOSujD6rw/TGuiW5C778I/AAAAAAAAAJA/qcp6UNnSuzg/s1600-h/Blog_ItineraryDesigner_VSLinks%5B2%5D.png"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="Blog_ItineraryDesigner_VSLinks" border="0" alt="Blog_ItineraryDesigner_VSLinks" src="http://lh6.ggpht.com/_4SYOSujD6rw/TGuiXenhd6I/AAAAAAAAAJE/-2tc8apcHlM/Blog_ItineraryDesigner_VSLinks_thumb.png?imgmax=800" width="244" height="103" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;The visual studio version link that i used was different than another link i had on the system;’&lt;/p&gt;&lt;br /&gt;&lt;p&gt;"C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe" &lt;/p&gt;&lt;br /&gt;&lt;p&gt;"C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe" /rootSuffix Exp /RANU&lt;/p&gt;&lt;br /&gt;&lt;p&gt;As &lt;a href="http://blogs.msdn.com/b/aaronmar/archive/2007/06/06/developing-packages-as-a-normal-user-i-e.aspx" target="_blank"&gt;Aaron Marten&lt;/a&gt; points out this is related to the new security layer where it should not be required for a visual studio developer to have full access to the machine. In my case this postfix was added due to a earlier installation of the VS.Net CTP or some other not released version. Later on the newer version was installed but the link had remained in the system.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;It seems that the itinerary designer requires some additional rights due to access in the filesystem, registry or whatever. In my case i only had to use another link to get the desired itinerary designer….&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_4SYOSujD6rw/TGuiXmGvrVI/AAAAAAAAAJI/cr3X--nVuDc/s1600-h/Blog_ItineraryDesigner%5B3%5D.png"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="Blog_ItineraryDesigner" border="0" alt="Blog_ItineraryDesigner" src="http://lh6.ggpht.com/_4SYOSujD6rw/TGuiX_oHVGI/AAAAAAAAAJM/_Ob4f_hbTcE/Blog_ItineraryDesigner_thumb%5B1%5D.png?imgmax=800" width="280" height="92" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Cheers!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-2223364458687493891?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/2223364458687493891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2010/08/esb-toolkit-not-showing-itinerary.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/2223364458687493891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/2223364458687493891'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2010/08/esb-toolkit-not-showing-itinerary.html' title='ESB Toolkit not showing itinerary designer'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_4SYOSujD6rw/TGuiXenhd6I/AAAAAAAAAJE/-2tc8apcHlM/s72-c/Blog_ItineraryDesigner_VSLinks_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-6374326462641394819</id><published>2010-08-04T10:27:00.001+02:00</published><updated>2010-08-04T10:27:36.043+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><title type='text'>Migrating BizTalk 2006R2 to BizTalk 2010</title><content type='html'>&lt;p&gt;My colleague Rene Brauwers (Wren’s world) faced some issues when converting BizTalk projects created in 2006 R2 to the new BizTalk 2010 version. Please read his post i you are facing this problem as well: &lt;a href="http://blog.brauwers.nl/post/2010/08/04/Error-converting-project-file-Child-element-3cBIZTALK3e-of-element-3cVisualStudioProject3e-is-not-valid.aspx" target="_blank"&gt;Migrating Biztalk 2006r2 solutions to Biztalk 2010&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-6374326462641394819?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/6374326462641394819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2010/08/migrating-biztalk-2006r2-to-biztalk.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/6374326462641394819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/6374326462641394819'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2010/08/migrating-biztalk-2006r2-to-biztalk.html' title='Migrating BizTalk 2006R2 to BizTalk 2010'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-5546762703503633594</id><published>2010-08-03T11:25:00.001+02:00</published><updated>2010-08-03T15:32:26.351+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><title type='text'>BizTalk Scale-Out Interactive poster</title><content type='html'>&lt;p&gt;Besides the already well known &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=DBBE85C5-4DD4-4B28-B2F1-6197980FD149&amp;amp;displaylang=en" target="_blank"&gt;BizTalk scale out poster&lt;/a&gt; and the MSDN documentation regarding scaling out the &lt;a href="http://msdn.microsoft.com/en-us/library/aa546759(BTS.70).aspx" target="_blank"&gt;BizTalk Server Tier&lt;/a&gt; i found the interactive version that i can higly recommend!&lt;/p&gt;  &lt;p&gt;This version provides the user with spoken comments, a transcript and the ability to click on the scale-out scenario of interest providing you with info in a sort of mini-presentation. Going through the entire presentation will take about 10-15 minutes.&lt;/p&gt;  &lt;p&gt;See: &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;familyID=d9cc7d13-7324-4f24-88de-7b063fde62e8" target="_blank"&gt;BizTalk interactive scale out-poster&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Cheers,&lt;/p&gt;  &lt;p&gt;Sander&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-5546762703503633594?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/5546762703503633594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2010/08/biztalk-interactive-scale-out-poster.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/5546762703503633594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/5546762703503633594'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2010/08/biztalk-interactive-scale-out-poster.html' title='BizTalk Scale-Out Interactive poster'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-829914611316980588</id><published>2010-08-02T11:18:00.001+02:00</published><updated>2010-08-02T11:19:04.953+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='NinTex'/><title type='text'>BizTalk workflow vs NinTex workflow tool</title><content type='html'>&lt;p&gt;A customer recently asked about the interoperability of the Workflow modelling tool NinTex (on top of sharepoint) with other systems like BizTalk. Since i was not familiar with NinTex i downloaded the SDK, some product sheets and the help to find out about the capabilities to interop with other systems.&lt;/p&gt;  &lt;p&gt;Since workfows can be developed quite easily with NinTex the first customer question was;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;‘How can the flows from NinTex be used in developing BizTalk’.&lt;/u&gt; &lt;/p&gt;  &lt;p&gt;NinTex has the ability to export the developed workflow to (unfortenately) an propietary format only. This means that it it not possible to re-use even parts of this workflow in for example visio.&lt;/p&gt;  &lt;p&gt;&lt;i&gt;&amp;quot; A workflow can be exported and saved in the file format &amp;quot;.nwf&amp;quot; in order to be used in &lt;/i&gt;&lt;i&gt;another location. &amp;quot; &lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://nintexdownload.com/HelpFiles/NW2007/NintexWorkflow2007UserManual.html"&gt;http://nintexdownload.com/HelpFiles/NW2007/NintexWorkflow2007UserManual.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The second question was related to integrating with NinTex;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;‘How can BizTalk provide integration in such a way that the back-end is controlled by BizTalk and the front-end is controlled by NinTex’&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;NinTex is a fairly extensive tool and has integration capabilities. The following means make integration possible;&lt;/p&gt;  &lt;p&gt;- Use the schemas defined in the tool and export these as schemas&lt;/p&gt;  &lt;p&gt;- Leverage the integration capabilities of Webservice&lt;/p&gt;  &lt;p&gt;- Use the BizTalk shape inside NinTex to communicate directly with BizTalk&lt;/p&gt;  &lt;p&gt;Note: Communicate directly means that the correlation/schema features are used, on the BizTalk side it means that the orchestration must be published as a webservice.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Conclusion&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;BizTalk is good in integrating with back-end systems by the provided Adapters, NinTex is a tool that can be used to develop workflows in a easy to use interface. Integration capabilities with BizTalk are available and making the combination of NinTex as a Fron-End mediator and BizTalk as a Back-End mediator with systems as SAP / HR Soft and others an obvious choice when NinTex is already the standard within the organisation.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-829914611316980588?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/829914611316980588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2010/08/biztalk-workflow-vs-nintex-workflow.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/829914611316980588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/829914611316980588'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2010/08/biztalk-workflow-vs-nintex-workflow.html' title='BizTalk workflow vs NinTex workflow tool'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-7344000437547219513</id><published>2010-07-19T21:33:00.000+02:00</published><updated>2010-07-19T21:34:33.316+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk ESB'/><title type='text'>BizTalk 2010 ESB Toolkit interactive poster</title><content type='html'>&lt;p&gt;The &lt;a href="http://msdn.microsoft.com/en-us/biztalk/default.aspx" target="_blank"&gt;BizTalk developer center&lt;/a&gt; and &lt;a href="http://www.BizTalk247.com" target="_blank"&gt;BizTalk247.com&lt;/a&gt; contain lots of usefull information and documentation for every BizTalk developer. Today i noticed the &lt;a href="http://services.social.microsoft.com/feeds/FeedItem?feedId=e35bd0a4-2e23-49c1-85d1-e32ed2e42fae&amp;amp;itemId=41b6bc79-0ff1-4892-b4ed-1516e7567e9a&amp;amp;title=BizTalk+ESB+Toolkit+Architecture+Interactive+Poster&amp;amp;uri=http%3a%2f%2fwww.microsoft.com%2fdownloads%2fdetails.aspx%3fdisplaylang%3den%26FamilyID%3dffaddb17-79f4-4a32-a6b8-002a7fe4d986&amp;amp;k=MCcnu9n330HSAEXzN2hKb7lNwy6v8AWWh1DfL%2bTgfhs%3d" target="_blank"&gt;BizTalk 2010 ESB Toolkit Interactive poster&lt;/a&gt; and its quite cool!&lt;/p&gt;  &lt;p&gt;Cheers.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-7344000437547219513?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/7344000437547219513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2010/06/biztalk-2010-esb-toolkit-interactive.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/7344000437547219513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/7344000437547219513'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2010/06/biztalk-2010-esb-toolkit-interactive.html' title='BizTalk 2010 ESB Toolkit interactive poster'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-4475707520146470971</id><published>2010-06-30T21:34:00.001+02:00</published><updated>2011-10-08T09:12:32.952+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='MQSC Adapter'/><title type='text'>BizTalk 2009 migration to 64-bit and the MQSC Adapter</title><content type='html'>&lt;p&gt;The migration from BizTalk 2006 R2 to BizTalk 2009 was a fairly smooth one, untill we faced an issue that the MQSC Adapter was not working on the 64bit environment.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;We tried to define a 64-bit host and run the adapter inside this host, this however did not proved to be the solution;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_4SYOSujD6rw/TDwVQ5IAJaI/AAAAAAAAAI4/U-6Q1Rt7QJg/s1600-h/image001%5B7%5D.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="image001" border="0" alt="image001" src="http://lh6.ggpht.com/_4SYOSujD6rw/TDwVRt9bWiI/AAAAAAAAAI8/8qa_MhDvOzA/image001_thumb%5B3%5D.png?imgmax=800" width="315" height="199" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;After browsing through the MSDN pages we found that it just wasn’t going to be a 9till5 workday;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;“Only x86 (32-bit) Windows operating systems that are supported by BizTalk Server 2006 are supported by the MQSC Adapter. WebSphere MQ on Windows is not supported on 64-bit Windows operating systems. This means that the MQSC Adapter is not supported on either X64 (64-bit) Windows or a 32-bit BizTalk Host Instance on x64.” (&lt;a title="http://msdn.microsoft.com/en-us/library/aa705007(BTS.10).aspx" href="http://msdn.microsoft.com/en-us/library/aa705007(BTS.10).aspx"&gt;http://msdn.microsoft.com/en-us/library/aa705007(BTS.10).aspx&lt;/a&gt;)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The setup we had previously used was;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;- BizTalk 2006 R2 32-bit / MQ Client 6.2.5 + SSL / MQSC Adapter&lt;/p&gt;&lt;br /&gt;&lt;p&gt;“IBM WebSphere MQ Client 5.3 with CSD10, &lt;strong&gt;or&lt;/strong&gt; IBM Websphere MQ Client 6.0 with Fix Pack 6.0.1.1.” (&lt;a title="http://msdn.microsoft.com/en-us/library/aa705007(BTS.10).aspx" href="http://msdn.microsoft.com/en-us/library/aa705007(BTS.10).aspx"&gt;http://msdn.microsoft.com/en-us/library/aa705007(BTS.10).aspx&lt;/a&gt;)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The new setup was;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;- BizTalk 2009 64-bit / MQ Client 6.2.5 + SSL / MQSC Adapter&lt;/p&gt;&lt;br /&gt;&lt;p&gt;We looked for information on a bunch of pages likes forums/MSDN/technet/articles and came to the following conclusion;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;u&gt;BizTalk 2006 MQSC adapter&lt;/u&gt; &lt;strong&gt;does not &lt;/strong&gt;support 64-bit and &lt;strong&gt;can only&lt;/strong&gt; be used in conjunction with the MQ Client version 6.0.2.5.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;u&gt;BizTalk 2009 MQSC Adapter&lt;/u&gt; has the same limitation when used with version 6.0.2.5 but &lt;strong&gt;does support the new version of the MQ Client (7.x).&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;We installed the latest version 7.1.1.2 and ran into another problem; &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;error code AMQ9716. &lt;/strong&gt;&lt;span style="color:#000000;"&gt;This was related to the usage of SSL and the new feature: &lt;/span&gt;&lt;/span&gt;certificate validation (OCSP Authentication) that was already in place in earlier versions, but was only actively refusing certificates in V7 of the MQ Client (&lt;a title="http://www-01.ibm.com/support/docview.wss?uid="" href="http://www-01.ibm.com/support/docview.wss?uid=swg21399255"&gt;http://www-01.ibm.com/support/docview.wss?uid=swg21399255&lt;/a&gt;).&lt;/p&gt;&lt;br /&gt;&lt;p&gt;A collegae of mine noticed the sentence “&lt;strong&gt;This was ignored before V7.0.1.0”&lt;/strong&gt; which led hem to believe that a V7 release existed without this validation. He searched and managed to get version 7.0.0.2…&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I am glad to report that this is a winning team when you want to use 64-bit in BizTalk 2009;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;BizTalk 2009 64-bit / MQ Client 7.0.0.2 + SSL / MQSC Adapter&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color:#008000;"&gt;Solution: install the MQ Client version 7.0.0.2&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-4475707520146470971?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/4475707520146470971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2010/07/biztalk-2009-migration-to-64-bit-and.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/4475707520146470971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/4475707520146470971'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2010/07/biztalk-2009-migration-to-64-bit-and.html' title='BizTalk 2009 migration to 64-bit and the MQSC Adapter'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_4SYOSujD6rw/TDwVRt9bWiI/AAAAAAAAAI8/8qa_MhDvOzA/s72-c/image001_thumb%5B3%5D.png?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-272548248421119092</id><published>2010-05-31T21:35:00.000+02:00</published><updated>2010-07-19T21:35:26.981+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>SQL Server – Searching through an XML Field</title><content type='html'>&lt;p&gt;In our project we are doing some additional logging like message payload, customer ids etc. The other day i want to provide the request/response times based on the starting point of the business transaction and information in an XML column that was filled when the message was sent. On a lot of websites i could find some examples but they all involved using namespaces etc. I thought i could do that with the lazy-goggles on and hereby the starting point of what is now a monster query ;)&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;SELECT      &lt;br /&gt;m.id as MessageID,       &lt;br /&gt;i.createdon MessageReceived,       &lt;br /&gt;CAST(&lt;strong&gt;m.messagesent.query('//*[local-name() = ''Timestamp'']/text()') as varchar) MessageSent&lt;/strong&gt;       &lt;br /&gt;FROM instance i, message m       &lt;br /&gt;WHERE       &lt;br /&gt;m.parentid = i.id and i.customerref = 'CUSTID_00014041'       &lt;br /&gt;and CAST       &lt;br /&gt;&lt;strong&gt;(m.messagesent.query('//*[local-name() = ''Action'']/text()') as varchar) = 'SendResponse' &lt;/strong&gt;      &lt;br /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Note: the is required for the &amp;lt;xmlcolumn&amp;gt;. The query returns a Xml datatype, if you do not perform a cast you will receive an error.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-272548248421119092?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/272548248421119092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2010/04/sql-server-searching-through-xml-field.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/272548248421119092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/272548248421119092'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2010/04/sql-server-searching-through-xml-field.html' title='SQL Server – Searching through an XML Field'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-6750924552364954176</id><published>2010-04-08T19:35:00.000+02:00</published><updated>2010-04-08T19:37:25.214+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><title type='text'>Back to the future - Microsoft.XLANGs.Core.TimeoutException</title><content type='html'>&lt;p&gt;I recently faced this not so welcome friend of mine. This was the case on mine development environment consisting of:&lt;/p&gt;  &lt;p&gt;- separate BizTalk machine + separate SQL Server&lt;/p&gt;  &lt;p&gt;I could track down the source of this message being an atomic scope with a timeout of 60 seconds (receive shape waiting for a web service response). Since the error was pretty clear i finally found the cause….please take note of this for future generations ;)&lt;/p&gt;  &lt;p&gt;&lt;u&gt;The SQL Server machine clock was advanced 2 minutes compared to the BizTalk server running the orchestrations&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Therefore the orchestration was ‘running in the past’ forcing a time-out in the atomic scope shape.&lt;/p&gt;  &lt;p&gt;Somehow the time synchronisation service was not doing it’s job. I fixed the issue by using the ‘w32tm’ command line tool.&lt;/p&gt;  &lt;p&gt;“w32tm /resync” (force the machine to resync the windows time using the PDC time)&lt;/p&gt;  &lt;p&gt;Note: to view the difference between the current machine and the PDC you can you the monitor parameter;&lt;/p&gt;  &lt;p&gt;“w32tm /monitor”&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-6750924552364954176?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/6750924552364954176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2010/04/back-to-future-microsoftxlangscoretimeo.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/6750924552364954176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/6750924552364954176'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2010/04/back-to-future-microsoftxlangscoretimeo.html' title='Back to the future - Microsoft.XLANGs.Core.TimeoutException'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-335433922495016093</id><published>2010-01-25T22:43:00.001+01:00</published><updated>2010-01-25T22:43:38.572+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='MQSC Adapter'/><title type='text'>MQSC Adapter…BizTalk against IBM MQ + SSL</title><content type='html'>&lt;p&gt;This article will go into detail about one of the possible approaches to connect from BizTalk to IBM MQ. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;h5&gt;Note: This is not the only or best approach and this article serves as an example for the few out there facing the problem in setting up MQSC Adapter for IBM MQ + Certificates.&lt;/h5&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;For starters i would like to quote a fellow BizTalker that spoke at the BTUG last week and said that in order to do SAP with BizTalk you would have to fulfill requirement #1: ‘Search for a SAP buddy’. &lt;/p&gt;  &lt;p&gt;Well although i think this will apply to other adapters as well (e.g. Dynamics AX 2009!) it is a good general rule to have someone at the other side for support. It can get tough!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;When communicating with IBM MQ there are a number of scenarios, although i might forget some, i believe the following are possible:&lt;/p&gt;  &lt;p&gt;1) MQ Server hosted within your BizTalk environment&lt;/p&gt;  &lt;p&gt;This would require the use of the MQSeries Adapter.&lt;/p&gt;  &lt;p&gt;2) MQ Server hosted outside your BizTalk environment&lt;/p&gt;  &lt;p&gt;This would be possible using 2 implementations:&lt;/p&gt;  &lt;p&gt;- MQ Series Bridge as an MQ interface + Internal MSMQ (or another protocol)&lt;/p&gt;  &lt;p&gt;- MQSC Adapter that directly communicates with the MQ Server &amp;amp; MQ Client in the BizTalk environment&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Note: In this article i will discuss the latter, a Microsoft employee informed me later that the MQ Series Bridge is the most flexible and underpriced option when more interfaces are expected in the future.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;MQSC Adapter&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;For my client we were obligated to use MQ, we received a license for the MQ Client (transactional) and received the configuration (tab) file to communicate with the MQ Server.&lt;/p&gt;  &lt;p&gt;Although we could have implemented the API of the MQ Client, or extended the example .Net application we figured, why don’t use the free MQSC Adapter included in the ‘BizTalk Server Adapters for Host Systems’ (free in combination with a BizTalk license).&lt;/p&gt;  &lt;p&gt;The Adapter assumes a Server on the outbound side that communicates with a MQ Client on the inbound side. The communication on MQ is performed on port 1414, the session is initialized by the client which requires an firewall configuration on port 1414 from inbound to outbound.&lt;/p&gt;  &lt;p&gt;To enable communication with the B2B interface (BizTalk) with the MQ Client a dedicated MQ Client Adapter is required. The MQSC Adapter is a component of the ‘BizTalk 2006 - Adapters for Host Systems’ package. This adapter is known to only officially support MQ Client version 6.0.2.5. &lt;/p&gt;  &lt;h5&gt;Installation&lt;/h5&gt;  &lt;p&gt;In &lt;a href="http://zeetalks.wordpress.com/2008/09/12/biztalk2006-using-the-mqsc-adapter/" target="_blank"&gt;this&lt;/a&gt; article the installation is explained, i will go into detail of the relevant steps;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Connection Name&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Name of the MQSeries Server that contains the Queue Manager and Queues that the BizTalk Adapter receives messages from. For the TCP transport type, the format to specify is SERVERNAME(PORT). Port number is equivalent to the port number defined in the Listener associated with the Queue Manager. &lt;/p&gt;  &lt;p&gt;&lt;u&gt;Value: &amp;lt;ip&amp;gt;(port) e.g. 145.1.1.1(1414)&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Channel Name&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Name of the channel defined on the MQSeries Server computer that the client communicates with. This must be a ‘Server Connection’ Channel type (case sensitive property).&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Queue&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;MQSeries queue from which the adapter will receive (MQGet) or send messages to (MQPUT).&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Queue Manager&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Name of MQSeries Queue Manager that contains the Queues from which the adapter will retrieve messages.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;SSL&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;When using SSL in a scenario where the outbound is responsible for the Server this means that;&lt;/p&gt;  &lt;p&gt;- Client certificates are provided by this party&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;- User for which the client certificates are requested MUST BE the same user under which BizTalk host the Adapter runs!*&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;- SSL Key repository is the most flexible and easy way to configure the certificates (no client installation required, only the path to the SSL Key repository has to be configured&lt;/p&gt;  &lt;p&gt;&lt;u&gt;The following additional adapter settting must be configured&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;- &lt;/strong&gt;SSL Cipher specification&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;This is a fixed value, defining the algorithm e.g. : NULL_MD5&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;- SSL Key Repository location&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;This is the location where the repository is stored. &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Note: do not provide the extension, only provide the path in the form of C:\SSL\qmkeys&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;- SSL Peer name&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This is a fixed value, this should be provided to you by the party that provided the key repository.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Gotcha&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Since the certificate is requested for a specific user, this user must also set up the connection, otherwise the certificate can not be found. Since we use MQ through the MQSC Adapter, the host under which this adapter runs must also run under this user. &lt;/p&gt;  &lt;p&gt;Reference [Error codes]&lt;/p&gt;  &lt;p&gt;&lt;a href="http://webmail.motion10.com/exchweb/bin/redir.asp?URL=http://middleware.its.state.nc.us/middleware/Documentation/en_US/htm/csqzak06/csqzak065m.htm"&gt;http://middleware.its.state.nc.us/middleware/Documentation/en_US/htm/csqzak06/csqzak065m.htm&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;  &lt;h5&gt;Relevant facts&lt;/h5&gt;  &lt;p&gt;- Only version 6.0.2.5 of the MQ Client is supported due to adapter limitations.&lt;/p&gt;  &lt;p&gt;- The Certificates should be provided by the external party&lt;/p&gt;  &lt;p&gt;- The required port for MQ Communication 1414 is configured in the firewall that communicates from inbound to outbound. Because the MQ Client initiates communication the firewall doesn’t have to be configured bi-directional (this might make some administrators less worried about security ;)&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;- The Certificates are requested for a specific user, this has the implication that all future &lt;b&gt;MQ communication &lt;/b&gt;must be set up for this specific user!&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;- Due to the aforementioned restriction the MQSC Adapter should run under the user &lt;b&gt;specified in the certificate.&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;After contact with Microsoft the suggested approach when multiple parties require MQ Communication, is to introduce a MQ Bridge.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;This means that outside the BizTalk environment MQ is used between the Bridge and the customer and internally MSMQ is used to communicate between the BizTalk environment and the Bridge.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Additional advantages: MQBridge is included in the BizTalk license / Extended MQClient is costly.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Suggestions to setup the communication&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;- MQ Client incorporates some command line tools (PUTC / GETC) to test the channel. &lt;/p&gt;  &lt;p&gt;- Telnet can indicate whether communication is possible&lt;/p&gt;  &lt;p&gt;- When ‘standard’ BizTalk-IBM MQ communication has been achieved, it does not mean you are there, the extra effort for SSL might consume more time than initial communication!&lt;/p&gt;  &lt;p&gt;- A trial MQ Server can be used to understand MQ Client / Server architecture&lt;/p&gt;  &lt;p&gt;- When using SSL first determine under which account you want to run the Adapter (forever!) and communicate this with all client&lt;/p&gt;  &lt;p&gt;- Keep in mind that when multiple MQ clients are expected in the future the MQ Bridge is the logical way to implement MQ Communication&lt;/p&gt;  &lt;p&gt;- Find an IBM MQ Buddy :)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Have fun!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-335433922495016093?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/335433922495016093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2010/01/mqsc-adapterbiztalk-against-ibm-mq-ssl.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/335433922495016093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/335433922495016093'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2010/01/mqsc-adapterbiztalk-against-ibm-mq-ssl.html' title='MQSC Adapter…BizTalk against IBM MQ + SSL'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-7101848302947443973</id><published>2009-12-01T22:06:00.001+01:00</published><updated>2009-12-01T22:06:25.450+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='Orchestration designer'/><title type='text'>Orchestration designer – errors exist for one or more children</title><content type='html'>&lt;p&gt;Sometimes life is just cruel; you receive an error, search for the cause and are utterly frustrated when you can find the reason. I recently had a visit from this ‘good’ friend of mine: &lt;u&gt;‘Errors exist for one or more children’&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Apparently it is possible that during compilation time an error occurs, and even though you solve it, the error will still occur. The error that can occur is shown in the picture below:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://lh4.ggpht.com/_4SYOSujD6rw/SxWFS4TX6FI/AAAAAAAAAH4/CKPrf5LRYhc/s1600-h/orchestration_errorExists_buildmsg%5B2%5D.png"&gt;&lt;img title="orchestration_errorExists_buildmsg" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="48" alt="orchestration_errorExists_buildmsg" src="http://lh5.ggpht.com/_4SYOSujD6rw/SxWFTeW-X8I/AAAAAAAAAH8/PEioeRFcx-w/orchestration_errorExists_buildmsg_thumb.png?imgmax=800" width="256" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;What i did to solve this bugger….&lt;/p&gt;  &lt;p&gt;- open the ODX file in Notepad (important if you do not want to meet your friend encoding mismatch)&lt;/p&gt;  &lt;p&gt;- search for ‘#error’ (should be in the XLANG body() {…} )&lt;/p&gt;  &lt;p&gt;- remove the line (shown in the screenshot below)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_4SYOSujD6rw/SxWFTjwGSYI/AAAAAAAAAIA/p2xGQeq5qfU/s1600-h/orchestration_errorExists_odx%5B2%5D.png"&gt;&lt;img title="orchestration_errorExists_odx" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="61" alt="orchestration_errorExists_odx" src="http://lh4.ggpht.com/_4SYOSujD6rw/SxWFUGJ-oVI/AAAAAAAAAIE/RgcbSHSPCKY/orchestration_errorExists_odx_thumb.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This worked for me, sincerely hoping that you will not use this, if so hoping that you can take the advantage of this post….&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-7101848302947443973?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/7101848302947443973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2009/12/orchestration-designer-errors-exist-for.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/7101848302947443973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/7101848302947443973'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2009/12/orchestration-designer-errors-exist-for.html' title='Orchestration designer – errors exist for one or more children'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_4SYOSujD6rw/SxWFTeW-X8I/AAAAAAAAAH8/PEioeRFcx-w/s72-c/orchestration_errorExists_buildmsg_thumb.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-848472901307185556</id><published>2009-12-01T21:41:00.001+01:00</published><updated>2009-12-03T20:52:19.340+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><title type='text'>[BizTalk 2006 R2 Exception handling trick] #2 Catching the XLANGPipelineManagerException</title><content type='html'>&lt;p&gt;Another item that is open for discussion is when to use a pipeline inside an orchestration. Whatever your opinion of using pipelines inside your orchestration is, please keep in mind that when any exception occurs in the pipeline, you want to catch the: &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Microsoft.XLANGs.Pipeline.XLANGPipelineManagerException!&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;“Any failure in pipeline execution which would have resulted in a suspended message were this pipeline to be called from within the BizTalk Server Messaging Infrastructure will instead result in an exception being thrown. The exception thrown is of type &lt;strong&gt;Microsoft.XLANGs.Pipeline.XLANGPipelineManagerException&lt;/strong&gt;. This thrown exception can be handled in a catch block within the calling orchestration. If the orchestration does not catch the thrown exception, the XLANGs engine reports an error the text of which includes the exception information in the thrown exception.”&lt;/p&gt;&lt;p&gt;Ref: &lt;a title="http://msdn.microsoft.com/en-us/library/aa562035(BTS.10).aspx" href="http://msdn.microsoft.com/en-us/library/aa562035(BTS.10).aspx"&gt;http://msdn.microsoft.com/en-us/library/aa562035(BTS.10).aspx&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-848472901307185556?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/848472901307185556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2009/12/biztalk-2006-r2-exam-reminder-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/848472901307185556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/848472901307185556'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2009/12/biztalk-2006-r2-exam-reminder-2.html' title='[BizTalk 2006 R2 Exception handling trick] #2 Catching the XLANGPipelineManagerException'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-465568451834071403</id><published>2009-12-01T21:28:00.001+01:00</published><updated>2009-12-03T20:52:36.305+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><title type='text'>[BizTalk 2006 R2 Exception handling trick] #1 Runtime Validation for the Orchestration Engine</title><content type='html'>&lt;p&gt;I have recently taken the BizTalk 2006 R2 exam and came across some interesting stuff;&lt;/p&gt;&lt;p&gt;- Runtime validation&lt;/p&gt;&lt;p&gt;With this it is possible to force runtime validation for assemblies/correlations/schemas etc ensuring that everything is correctly deployed!&lt;/p&gt;&lt;p&gt;See: &lt;a title="http://msdn.microsoft.com/en-us/library/aa561963(BTS.10).aspx" href="http://msdn.microsoft.com/en-us/library/aa561963(BTS.10).aspx"&gt;http://msdn.microsoft.com/en-us/library/aa561963(BTS.10).aspx&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-465568451834071403?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/465568451834071403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2009/12/runtime-validation-for-orchestration.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/465568451834071403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/465568451834071403'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2009/12/runtime-validation-for-orchestration.html' title='[BizTalk 2006 R2 Exception handling trick] #1 Runtime Validation for the Orchestration Engine'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-2672908545431952866</id><published>2009-11-15T10:53:00.000+01:00</published><updated>2009-11-15T10:53:22.840+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTTP Receive Adapter'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><title type='text'>Using the BizTalk HTTPReceiver</title><content type='html'>&lt;p&gt;During the creation of the ebMS Getting started environment i ran into problems with using IIS and the HTTPReceiver. Some problems that i had were:&lt;/p&gt;  &lt;p&gt;- messages would not be picked up the the HTTP Receive Adapter&lt;/p&gt;  &lt;p&gt;- messages remain in the dehydrated state&lt;/p&gt;  &lt;p&gt;One of the most difficult things about the HTTPReceive Adapters is the dis-ability to do some hi-tech debugging…even the tool ‘DebugView’ / ‘Fiddler’ will not help when trying to find out what the problem is, TCP/IP Listeners might provide some help but the best thing you should be doing is to walk through all the MSDN steps.&lt;/p&gt;  &lt;p&gt;Since i had some trouble finding the steps, hereby the steps for setting up the Adapter for IIS 6 en IIS7.&lt;/p&gt;  &lt;p&gt;‘Creating the virtual directory for the HTTPReceiver’ &lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The BizTalk HTTP Receive Adapter can be used in a http receive location configured in Internet Information Services (IIS) inside a virtual directory. Read the Microsoft guidelines for setting up an HTTP BizTalk Receive location (see reference ‘Enable the BTS ISAPI Filter’).&lt;/p&gt;  &lt;h5&gt;&lt;a name="_Toc231896290"&gt;1.1.1 Internet information services 6&lt;/a&gt;&lt;/h5&gt;  &lt;p&gt;To enable the BTS ISAPI Filter perform the following actions:&lt;/p&gt;  &lt;p&gt;1) Click Start, point to All Programs, point to Administrative Tools, and then click Internet Information Services (IIS) Manager.&lt;/p&gt;  &lt;p&gt;2) In the IIS Manager dialog box, right-click Web Service Extensions, and then click Add a new Web service extension.&lt;/p&gt;  &lt;p&gt;3) In the New Web Service Extension dialog box, enter BTS Http Receive ISAPI Filter in Extension Name.&lt;/p&gt;  &lt;p&gt;4) Click &lt;b&gt;Add&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;5) In the &lt;b&gt;Add file&lt;/b&gt; dialog box, browse to &lt;i&gt;drive&lt;/i&gt;:\Program Files\Microsoft BizTalk Server &amp;lt;version&amp;gt;\HttpReceive. Select &lt;b&gt;BTSHTTPReceive.dll&lt;/b&gt;, and then click &lt;b&gt;Open&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;6) In the &lt;b&gt;Add&lt;/b&gt; file dialog box, click &lt;b&gt;OK&lt;/b&gt;.     &lt;table cellpadding="0" border="1"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="bottom"&gt;           &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_4SYOSujD6rw/Sv8v3-gJQ5I/AAAAAAAAAGw/eLz5wta33yM/s1600-h/clip_image0015.gif"&gt;&lt;img title="clip_image001" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="10" alt="clip_image001" src="http://lh3.ggpht.com/_4SYOSujD6rw/Sv8v4CNXK2I/AAAAAAAAAG0/FCOO-ht89wQ/clip_image001_thumb.gif?imgmax=800" width="10" border="0" /&gt;&lt;/a&gt;Note &lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;When you perform step 6, you may receive the following (or a similar) message: &amp;quot;This file is already required by HWSMessages HttpReceive.&amp;quot; If you receive this message, click &lt;b&gt;Cancel&lt;/b&gt;, and then click &lt;b&gt;Cancel&lt;/b&gt; again. In this case, the BTSHTTPReceive.dll file is already required by another Web service extension, and you do not have to complete this &amp;quot;Add File&amp;quot; or &amp;quot;Add a new Web service extension&amp;quot; procedure. &lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;7) In the &lt;b&gt;New Web Service Extension&lt;/b&gt; dialog box, click &lt;b&gt;OK&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;8) In the &lt;b&gt;Web Service Extension&lt;/b&gt; pane of IIS Manager, right-click &lt;b&gt;BTS Http Receive ISAPI Filter&lt;/b&gt;, and then click &lt;b&gt;Allow&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;To create the virtual directory, perform the following actions: &lt;/p&gt;  &lt;p&gt;Start Internet Information Services and select the Default Web Site. Right click and select New/Virtual Directory. &lt;b&gt;The alias name is very important and must match the port configuration!&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Type ‘&lt;b&gt;ebMSReceive&lt;/b&gt;’ as shown in the figure below;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_4SYOSujD6rw/Sv8v44TK1wI/AAAAAAAAAG4/DJ4DP8bpMKA/s1600-h/clip_image0033.jpg"&gt;&lt;img title="clip_image003" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="165" alt="clip_image003" src="http://lh4.ggpht.com/_4SYOSujD6rw/Sv8v5bOvkcI/AAAAAAAAAG8/pLoOVPOtfEU/clip_image003_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The HTTPReceive uses the BizTalk receive dll, this dll is located in the Program Files\BizTalk Server 2006\HttpReceive directory. Select the Web site context directory as shown in the figure below.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_4SYOSujD6rw/Sv8v5yp3wII/AAAAAAAAAHA/Eew8469jJYQ/s1600-h/clip_image0053.jpg"&gt;&lt;img title="clip_image005" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="190" alt="clip_image005" src="http://lh4.ggpht.com/_4SYOSujD6rw/Sv8v6M2Qc1I/AAAAAAAAAHE/fZl6VznE7y8/clip_image005_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Select the permissions as shown in the figure below to allow access to the http location.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_4SYOSujD6rw/Sv8v6qyRCqI/AAAAAAAAAHI/tIt3_m7m6sA/s1600-h/clip_image0073.jpg"&gt;&lt;img title="clip_image007" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="121" alt="clip_image007" src="http://lh3.ggpht.com/_4SYOSujD6rw/Sv8v6ynwK0I/AAAAAAAAAHM/7JKnujluApE/clip_image007_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;     &lt;br /&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The properties of the virtual directory should look like the figure below&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_4SYOSujD6rw/Sv8v7Yace8I/AAAAAAAAAHQ/u2LSXj76zHs/s1600-h/clip_image0093.jpg"&gt;&lt;img title="clip_image009" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="244" alt="clip_image009" src="http://lh4.ggpht.com/_4SYOSujD6rw/Sv8v7lYiRvI/AAAAAAAAAHU/F4U5ap8r6qE/clip_image009_thumb.jpg?imgmax=800" width="242" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;An Application Pool can contain one or more applications. This allows us to configure a level of isolation between different Web applications&lt;b&gt;. &lt;/b&gt;In the example we have used the ‘DefaultAppPool’. &lt;/p&gt;  &lt;p&gt;To ensure that the BizTalk HTTPReceive Adapter is able to process the messages, the identity of the application pool must be set to a user account that is a member of the ‘BizTalk Isolated Host users’. Right click the properties of the application pool under which the virtual directory is created. Go to the tab ‘Identity’ and configure the user to an account that is a member of the ‘&lt;u&gt;BizTalk Isolated Host users’&lt;/u&gt; as shown in the figure below;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_4SYOSujD6rw/Sv8v8Aqk0pI/AAAAAAAAAHY/kH6mQd0cbeg/s1600-h/clip_image0113.jpg"&gt;&lt;img title="clip_image011" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="129" alt="clip_image011" src="http://lh5.ggpht.com/_4SYOSujD6rw/Sv8v8eSsyxI/AAAAAAAAAHc/Gpi9ScRWRFo/clip_image011_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ensure that the correct port is used, in this screenshot port 8080 was used, to configure the website to use this port change the configuration of the appropriate web site. In this case we have chosen the Default Website, right click the default web site and select properties from the context menu. Modify the TCP port as shown in the figure below.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_4SYOSujD6rw/Sv8v8lr-_TI/AAAAAAAAAHg/E7zKvRTvKak/s1600-h/clip_image0133.jpg"&gt;&lt;img title="clip_image013" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="106" alt="clip_image013" src="http://lh6.ggpht.com/_4SYOSujD6rw/Sv8v9DGq51I/AAAAAAAAAHk/tg809KjRsR8/clip_image013_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;     &lt;br /&gt;&lt;/b&gt;&lt;/p&gt;  &lt;h5&gt;&lt;a name="_Toc231896291"&gt;1.1.2 Internet information services 7&lt;/a&gt;&lt;/h5&gt;  &lt;p&gt;To enable the BTS ISAPI Filter perform the following actions:&lt;/p&gt;  &lt;p&gt;1) Click Start, point to All Programs, point to Administrative Tools, and then click Internet Information Services (IIS) Manager.&lt;/p&gt;  &lt;p&gt;2) Select the root Web server entry and in the &lt;b&gt;Features View&lt;/b&gt;, double-click &lt;b&gt;Handler Mappings&lt;/b&gt; and then in the &lt;b&gt;Actions&lt;/b&gt; pane, click &lt;b&gt;Add Script Map&lt;/b&gt;.     &lt;table cellpadding="0" border="1"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="bottom"&gt;           &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_4SYOSujD6rw/Sv8v9aY6LvI/AAAAAAAAAHo/a2kYEEPDRLs/s1600-h/clip_image00112.gif"&gt;&lt;img title="clip_image001[1]" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="10" alt="clip_image001[1]" src="http://lh6.ggpht.com/_4SYOSujD6rw/Sv8v9ja8S2I/AAAAAAAAAHs/wPkL2uY5J7M/clip_image0011_thumb.gif?imgmax=800" width="10" border="0" /&gt;&lt;/a&gt;Note &lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;Configuring the script mapping at the Web server level will cause this mapping to apply to all child Web sites. If you wish to restrict the mapping to a specific Web site or virtual folder, select the target site or folder instead of the Web server.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;3) In the Add Script Map dialog box, enter BtsHttpReceive.dll in the Request path field.&lt;/p&gt;  &lt;p&gt;4) In the &lt;b&gt;Executable&lt;/b&gt; field, click the &lt;b&gt;ellipsis (…)&lt;/b&gt; button and browse to &lt;i&gt;drive&lt;/i&gt;:\Program Files\Microsoft BizTalk Server &amp;lt;version&amp;gt;\HttpReceive. Select &lt;b&gt;BtsHttpReceive.dll&lt;/b&gt;, and then click &lt;b&gt;OK&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;5) Enter BizTalk HTTP Receive in the Name field, and then click Request Restrictions.&lt;/p&gt;  &lt;p&gt;6) In the &lt;b&gt;Request Restrictions&lt;/b&gt; dialog box, select the &lt;b&gt;Verbs&lt;/b&gt; tab and then select &lt;b&gt;One of the following verbs&lt;/b&gt;. Enter &lt;b&gt;POST&lt;/b&gt; as the verb.&lt;/p&gt;  &lt;p&gt;7) On the &lt;b&gt;Access&lt;/b&gt; tab, select &lt;b&gt;Script&lt;/b&gt;, and then click &lt;b&gt;OK&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;8) Click &lt;b&gt;OK&lt;/b&gt; and when prompted to allow the ISAPI extension, click &lt;b&gt;Yes&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;9) Right-click the BTSHttpReceive.dll entry, and then select &lt;b&gt;Edit Feature Permissions&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;10) Ensure that &lt;b&gt;Read&lt;/b&gt;, &lt;b&gt;Script&lt;/b&gt; and &lt;b&gt;Execute&lt;/b&gt; are selected, and then click &lt;b&gt;OK&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;11) Click Features View, and then double-click ISAPI and CGI Restrictions.&lt;/p&gt;  &lt;p&gt;12) Ensure that an entry for BTSHTTPReceive.dll exists, and that &lt;b&gt;Restriction&lt;/b&gt; is set to &lt;b&gt;Allowed&lt;/b&gt;.     &lt;table cellpadding="0" border="1"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="bottom"&gt;           &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_4SYOSujD6rw/Sv8v98eI1lI/AAAAAAAAAHw/Hx_CbyjdAZ0/s1600-h/clip_image00122.gif"&gt;&lt;img title="clip_image001[2]" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="10" alt="clip_image001[2]" src="http://lh4.ggpht.com/_4SYOSujD6rw/Sv8v-Eo4XYI/AAAAAAAAAH0/_Q64Ow--uEk/clip_image0012_thumb.gif?imgmax=800" width="10" border="0" /&gt;&lt;/a&gt;Note &lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;The ISAPI and CGI Restriction entry for BTSHTTPReceive.dll is created automatically when you create the script map.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;13) Create the Virtual Directory. The procedure was described previously in this section.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;That it….&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-2672908545431952866?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/2672908545431952866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2009/11/using-biztalk-httpreceiver.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/2672908545431952866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/2672908545431952866'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2009/11/using-biztalk-httpreceiver.html' title='Using the BizTalk HTTPReceiver'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_4SYOSujD6rw/Sv8v4CNXK2I/AAAAAAAAAG0/FCOO-ht89wQ/s72-c/clip_image001_thumb.gif?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-4623105940504057006</id><published>2009-11-14T23:22:00.001+01:00</published><updated>2009-11-14T23:23:34.543+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='Covast ebMS Adapter'/><title type='text'>Using the Covast ebMS Adapter (part 3)</title><content type='html'>&lt;p&gt;In the previous posts (&lt;a title="http://snefs.blogspot.com/2009/11/using-covast-ebms-adapter-part-2.html" href="http://snefs.blogspot.com/2009/11/using-covast-ebms-adapter-part-1.html"&gt;part1&lt;/a&gt; and &lt;a title="http://snefs.blogspot.com/2009/11/using-covast-ebms-adapter-part-2.html" href="http://snefs.blogspot.com/2009/11/using-covast-ebms-adapter-part-2.html"&gt;part2&lt;/a&gt;) i have described some features of the Covast ebMS Adapter and the usage of pipelines to set the message properties and destination.&lt;/p&gt;&lt;p&gt;When using orchestrations, the message can be sent directly to the message box because the message context properties can be set inside the orchestration. This approach can be used to implement additional requirements in inter party communication such as error handling, correlation and other implementations where more dynamic control is required beyond the static configuration of pipelines. &lt;/p&gt;&lt;p&gt;Let’s build an orchestration using the ebMS context properties to send message to a specific party and collaboration protocol agreement (CPA).&lt;/p&gt;&lt;p&gt;&lt;strong&gt;‘Building an orchestration for ebMS messaging’&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The orchestration in this scenario used message context properties to ensure that the correct collaboration protocol agreement was used during processing. The following paragraph, will explain the construction of this Orchestration.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_4SYOSujD6rw/Sv8tPikbCyI/AAAAAAAAADY/W7qITfyYL8Q/s1600-h/clip_image002%5B3%5D.jpg"&gt;&lt;img title="clip_image002" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="93" alt="clip_image002" src="http://lh5.ggpht.com/_4SYOSujD6rw/Sv8tP-XugEI/AAAAAAAAADc/tZxaPl4OZqE/clip_image002_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;h4&gt;&lt;/h4&gt;&lt;p&gt;The figure below shows the message context properties used in the scenario. These properties are set in an expression in the sample orchestration.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_4SYOSujD6rw/Sv8tQazVVwI/AAAAAAAAADg/Kkmy9vUzQi4/s1600-h/clip_image004%5B3%5D.jpg"&gt;&lt;img title="clip_image004" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="138" alt="clip_image004" src="http://lh4.ggpht.com/_4SYOSujD6rw/Sv8tQtUqZwI/AAAAAAAAADk/nrCZ6IzWEfY/clip_image004_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;h5&gt;&lt;a name="_Toc231896308"&gt;1.1.1 Create the solution&lt;/a&gt;&lt;/h5&gt;&lt;p&gt;First we must create a new solution project. This must be of the type BizTalk project ‘Empty BizTalk Server project’. Name the project ‘GettingStarted’.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_4SYOSujD6rw/Sv8tRb11miI/AAAAAAAAADo/1qJJyRrEpw4/s1600-h/clip_image006%5B3%5D.jpg"&gt;&lt;img title="clip_image006" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="161" alt="clip_image006" src="http://lh5.ggpht.com/_4SYOSujD6rw/Sv8tRnqn7mI/AAAAAAAAADs/WOchDJ-I8Go/clip_image006_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;h5&gt;&lt;a name="_Toc231896309"&gt;1.1.2 Add reference to Covast ebXML Message Service Adapter propertyschema&lt;/a&gt;&lt;/h5&gt;&lt;p&gt;This orchestration will set the message context properties to control routing of the message. To make these properties visible to the orchestration, add a reference to the property schema in the BizTalk project as shown in the figure below. The location of the property schema is ‘C:\Program Files\Covast\ebXML Message Service Adapter\Pipeline\CovastEbmsPropertySchema.dll’.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_4SYOSujD6rw/Sv8tSAaZ3nI/AAAAAAAAADw/_RpZE6EZu94/s1600-h/clip_image008%5B3%5D.jpg"&gt;&lt;img title="clip_image008" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="227" alt="clip_image008" src="http://lh4.ggpht.com/_4SYOSujD6rw/Sv8tSV7bOPI/AAAAAAAAAD0/flxI3OrUHfc/clip_image008_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;h5&gt;&lt;a name="_Toc231896310"&gt;1.1.3 Create the orchestration&lt;/a&gt;&lt;/h5&gt;&lt;p&gt;The next step is to actually create the orchestration. This orchestration will be created step by step. The figure below shows how to create the orchestration.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_4SYOSujD6rw/Sv8tS8AdjXI/AAAAAAAAAD4/tzzPlMYcn-E/s1600-h/clip_image010%5B3%5D.jpg"&gt;&lt;img title="clip_image010" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="179" alt="clip_image010" src="http://lh5.ggpht.com/_4SYOSujD6rw/Sv8tTPit_fI/AAAAAAAAAD8/MMYEQUOka5s/clip_image010_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;h5&gt;&lt;a name="_Toc231896311"&gt;1.1.4 Define a message type&lt;/a&gt;&lt;/h5&gt;&lt;p&gt;The test message content is Xml. To accommodate this we have to create a new message type. This can be done by creating a multipart message, containing 1 part of type System.Xml.Xmldocument. Select the orchestration and go to the Orchestration view, expand types and create a message type as shown in the figure below.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_4SYOSujD6rw/Sv8tThpSwlI/AAAAAAAAAEA/29iikVPZ_7E/s1600-h/clip_image012%5B3%5D.jpg"&gt;&lt;img title="clip_image012" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="235" alt="clip_image012" src="http://lh3.ggpht.com/_4SYOSujD6rw/Sv8tT3z4l-I/AAAAAAAAAEE/uQUrPQPxJb0/clip_image012_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;h5&gt;&lt;a name="_Toc231896312"&gt;1.1.5 Create messages&lt;/a&gt;&lt;/h5&gt;&lt;p&gt;After creating the message types, the messages themselves must be created. One that represents the incoming message and another that represents the outgoing message. Both messages are of the type GetingStarted.ebMxmlMessage.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_4SYOSujD6rw/Sv8tUf-b5-I/AAAAAAAAAEI/ij6exOpkFtE/s1600-h/clip_image014%5B3%5D.jpg"&gt;&lt;img title="clip_image014" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="237" alt="clip_image014" src="http://lh4.ggpht.com/_4SYOSujD6rw/Sv8tU4OpslI/AAAAAAAAAEM/B3VZBdxFXE4/clip_image014_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;h5&gt;&lt;a name="_Toc231896313"&gt;1.1.6 Create receive port&lt;/a&gt;&lt;/h5&gt;&lt;p&gt;The orchestration starts at the moment a message is received. In BizTalk terminology, it is described as ‘instance activated’. In order to send and receive messages, we must define ports. Right click on the port surface and click ‘New Configured port’. Use the configuration as shown in the figures below.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_4SYOSujD6rw/Sv8tVES6Z_I/AAAAAAAAAEQ/d2pNDCcGkOw/s1600-h/clip_image016%5B3%5D.jpg"&gt;&lt;img title="clip_image016" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="244" alt="clip_image016" src="http://lh5.ggpht.com/_4SYOSujD6rw/Sv8tVQHAesI/AAAAAAAAAEU/RlB4fSQAY1Y/clip_image016_thumb.jpg?imgmax=800" width="237" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The next step is to define the message type used for the ports as shown in the figure below.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_4SYOSujD6rw/Sv8tVxyUmwI/AAAAAAAAAEY/7bH55VSTQW8/s1600-h/clip_image018%5B3%5D.jpg"&gt;&lt;img title="clip_image018" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="244" alt="clip_image018" src="http://lh6.ggpht.com/_4SYOSujD6rw/Sv8tWMFCFPI/AAAAAAAAAEc/bQ4OE5XUNVw/clip_image018_thumb.jpg?imgmax=800" width="201" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Note: perform this step for all the ports&lt;/p&gt;&lt;h5&gt;&lt;a name="_Toc231896314"&gt;1.1.7 Create receive shape&lt;/a&gt;&lt;/h5&gt;&lt;p&gt;To connect the message to the port, we must to create a Receive shape. Right click on the orchestration and select Receive. &lt;/p&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_4SYOSujD6rw/Sv8tWlsHcdI/AAAAAAAAAEg/PsOywJUrtz8/s1600-h/clip_image020%5B3%5D.jpg"&gt;&lt;img title="clip_image020" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="89" alt="clip_image020" src="http://lh3.ggpht.com/_4SYOSujD6rw/Sv8tW6-wOvI/AAAAAAAAAEk/ZvGFtJVRllk/clip_image020_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;After this, we can assign a message and operation to the receive shape as shown in the figure below.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_4SYOSujD6rw/Sv8tXV-DyPI/AAAAAAAAAEo/zjmm6fB9PSM/s1600-h/clip_image022%5B3%5D.jpg"&gt;&lt;img title="clip_image022" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="189" alt="clip_image022" src="http://lh5.ggpht.com/_4SYOSujD6rw/Sv8tXvxrTpI/AAAAAAAAAEs/aEBIPPmlLj0/clip_image022_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;h5&gt;&lt;a name="_Toc231896315"&gt;1.1.8 Create receive shape&lt;/a&gt;&lt;/h5&gt;&lt;p&gt;After the receive shape is created, we must assign the message that will be submitted to the messagebox. This can be done using a Message Assignment shape. Right click below the receive shape and select ‘Message Assignment’. &lt;/p&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_4SYOSujD6rw/Sv8tYAPp7aI/AAAAAAAAAEw/bTNztSZHjzc/s1600-h/clip_image024%5B3%5D.jpg"&gt;&lt;img title="clip_image024" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="133" alt="clip_image024" src="http://lh3.ggpht.com/_4SYOSujD6rw/Sv8tYT5-nhI/AAAAAAAAAE0/KwqeO_3EZSk/clip_image024_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Configure the ‘Assign message’ shape to construct the outgoing message ‘clientMessage’ as shown in the figure below.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_4SYOSujD6rw/Sv8tY-c_oYI/AAAAAAAAAE4/zvrq5dNlJrQ/s1600-h/clip_image026%5B3%5D.jpg"&gt;&lt;img title="clip_image026" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="149" alt="clip_image026" src="http://lh5.ggpht.com/_4SYOSujD6rw/Sv8tZKi9JlI/AAAAAAAAAE8/a_kL9h0m9Gw/clip_image026_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;In the next step we can implement the code to configure the correct CPA by setting the context properties. The code is shown in the figure below and can be copy-pasted. &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="598"&gt;&lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;//Precondition: &lt;/p&gt;&lt;p&gt;// CPA is imported from: CPA_gettingstarted_Orchestration.xml&lt;/p&gt;&lt;p&gt;clientMessage = clientRequest;&lt;/p&gt;&lt;p&gt;clientMessage(*) = clientRequest(*);&lt;/p&gt;&lt;p&gt;//configure the context properties based on the CPA &lt;/p&gt;&lt;p&gt;clientMessage(ebMSProperties.Action) = "RequestServiceOne";&lt;/p&gt;&lt;p&gt;clientMessage(ebMSProperties.Cpaid) = "urn:nl:covast:orchdemo:ebms";&lt;/p&gt;&lt;p&gt;clientMessage(ebMSProperties.PartyName) = "OtherParty";&lt;/p&gt;&lt;p&gt;clientMessage(ebMSProperties.ServiceName) = &lt;/p&gt;&lt;p&gt;"urn:nl:covast:orchdemo:ebms:ServiceOne:0:01";&lt;/p&gt;&lt;p&gt;//send the message to the retry orchestration&lt;/p&gt;&lt;p&gt;clientMessage(ebMSProperties.ToRetry) = true;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;a href="http://lh3.ggpht.com/_4SYOSujD6rw/Sv8tZfiKgtI/AAAAAAAAAFA/lDeFsyGubzs/s1600-h/clip_image028%5B3%5D.jpg"&gt;&lt;img title="clip_image028" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="145" alt="clip_image028" src="http://lh6.ggpht.com/_4SYOSujD6rw/Sv8tZ4eHGfI/AAAAAAAAAFE/pWpOu9fC1j4/clip_image028_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;h5&gt;&lt;a name="_Toc231896316"&gt;1.1.9 Create &lt;/a&gt;send port&lt;/h5&gt;&lt;p&gt;To submit the message we must create a send port. This port is direct-bound to the BizTalk messagebox because the ebMS orchestrations must process this message later. Create the send port using the configuration steps shown in the figure below.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_4SYOSujD6rw/Sv8taZ7pnwI/AAAAAAAAAFI/y2S2G76f3Rk/s1600-h/clip_image030%5B3%5D.jpg"&gt;&lt;img title="clip_image030" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="242" alt="clip_image030" src="http://lh3.ggpht.com/_4SYOSujD6rw/Sv8ta5wc1-I/AAAAAAAAAFM/c__Ujatzvr4/clip_image030_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The next step is to define the message type used for the ports as shown in the figure below.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_4SYOSujD6rw/Sv8tbg5N4yI/AAAAAAAAAFQ/PROshPT6RbM/s1600-h/clip_image032%5B3%5D.jpg"&gt;&lt;img title="clip_image032" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="244" alt="clip_image032" src="http://lh6.ggpht.com/_4SYOSujD6rw/Sv8tcFAiptI/AAAAAAAAAFU/X3rwLDtBzKc/clip_image032_thumb.jpg?imgmax=800" width="185" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Note: assign the correct message type&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;h5&gt;&lt;a name="_Toc231896317"&gt;1.1.10 Create correlation&lt;/a&gt;&lt;/h5&gt;&lt;p&gt;Because the ebMS retry orchestration listens for messages using a direct-bound port with a filter on the property ‘ebMSProperties.ToRetry’, we need to ensure that the property is ‘promoted’ (the value of a property is present in the BizTalk message context at runtime).&lt;/p&gt;&lt;p&gt;We can ensure that this is the case by creating a correlation type and set using the aforementioned property. The configuration is shown in the figures below. &lt;/p&gt;&lt;p&gt;To create a correlation type, perform the following actions:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Go to the Orchestration view in the &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_4SYOSujD6rw/Sv8tccJoTxI/AAAAAAAAAFY/kqSnCajmGN0/s1600-h/clip_image034%5B3%5D.jpg"&gt;&lt;img title="clip_image034" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="44" alt="clip_image034" src="http://lh6.ggpht.com/_4SYOSujD6rw/Sv8tcl9YmUI/AAAAAAAAAFc/rmH88ZtXO8o/clip_image034_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Expand the ‘Types’ node &lt;/li&gt;&lt;li&gt;Right click the ‘Correlation Types’ node and click ‘New correlation type’ &lt;/li&gt;&lt;li&gt;A Correlation properties dialog will appear. Expand the ebMSProperties node. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_4SYOSujD6rw/Sv8tc4CnJbI/AAAAAAAAAFg/MtQwAHW52lI/s1600-h/clip_image036%5B3%5D.jpg"&gt;&lt;img title="clip_image036" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="176" alt="clip_image036" src="http://lh4.ggpht.com/_4SYOSujD6rw/Sv8tddZbWDI/AAAAAAAAAFk/txV1EN2GsQM/clip_image036_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Select the ToRetry property and click Add &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_4SYOSujD6rw/Sv8tdj3NXcI/AAAAAAAAAFo/67STckkV-d4/s1600-h/clip_image038%5B3%5D.jpg"&gt;&lt;img title="clip_image038" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="168" alt="clip_image038" src="http://lh6.ggpht.com/_4SYOSujD6rw/Sv8teM--qaI/AAAAAAAAAFs/ubJmUQN2bYQ/clip_image038_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Click Ok &lt;/li&gt;&lt;li&gt;Select the created correlation type and change: &lt;ul&gt;&lt;li&gt;Identifier à ‘CorrelationType_ebMS’ &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;To create the correlation set (this is an instance of the correlation type), perform the following actions:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Right click on Correlation Set and select ‘New correlation set’ &lt;/li&gt;&lt;li&gt;Select the create correlation set and change the following information: &lt;ul&gt;&lt;li&gt;Identifier à ‘Correlation_ebMSRetry’ &lt;/li&gt;&lt;li&gt;Correlation Type à select the create correlation type ‘CorrelationType_ebMS’ &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_4SYOSujD6rw/Sv8teRtrg6I/AAAAAAAAAFw/1Scjys7nBH0/s1600-h/clip_image040%5B3%5D.jpg"&gt;&lt;img title="clip_image040" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="244" alt="clip_image040" src="http://lh6.ggpht.com/_4SYOSujD6rw/Sv8te-d_X_I/AAAAAAAAAF0/25ZdGxQ8ohY/clip_image040_thumb.jpg?imgmax=800" width="232" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;h5&gt;&lt;a name="_Toc231896318"&gt;1.1.11 Create send shape&lt;/a&gt;&lt;/h5&gt;&lt;p&gt;The final step is to link the port, correlation set and message together using a send shape. Right click on the last element in the orchestration and create a Send shape.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_4SYOSujD6rw/Sv8tfKA6yiI/AAAAAAAAAF4/irAyB6zrOv4/s1600-h/clip_image042%5B3%5D.jpg"&gt;&lt;img title="clip_image042" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="70" alt="clip_image042" src="http://lh5.ggpht.com/_4SYOSujD6rw/Sv8tfu43ruI/AAAAAAAAAF8/lv-uybqTxYE/clip_image042_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;After this, we can assign a message, operation and correlation set to the send shape as shown in the figure below.&lt;/p&gt;&lt;p&gt;Actions:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Choose the initializing correlation Set ‘Correlation_ebMSRetry’ &lt;/li&gt;&lt;li&gt;Choose the message ‘clientMessage’ &lt;/li&gt;&lt;li&gt;Change the name to ‘SendToRetryOrchestration’ &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_4SYOSujD6rw/Sv8tf1Y2fHI/AAAAAAAAAGA/MmZcBBaLkdM/s1600-h/clip_image044%5B3%5D.jpg"&gt;&lt;img title="clip_image044" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="156" alt="clip_image044" src="http://lh4.ggpht.com/_4SYOSujD6rw/Sv8tgatbjYI/AAAAAAAAAGE/Y5qKqh_K_k0/clip_image044_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;h5&gt;&lt;a name="_Toc231896319"&gt;1.1.12 Deployment setting&lt;/a&gt;&lt;/h5&gt;&lt;p&gt;After creating the solution, the orchestration must be deployed. Go to the solution properties and configure the deployment settings as shown in the figure below.&lt;/p&gt;&lt;p&gt;BizTalk requires that all assemblies are signed with a strong name. This can be generated, but the GettingStarted package already contains a strong name key. This can be found in: &lt;/p&gt;&lt;p&gt;C:\GettingStarted\Scenarios\Scenario with Orchestration context properties\Solution\ GettingStarted.snk&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_4SYOSujD6rw/Sv8tgkqmstI/AAAAAAAAAGI/Oi8AH8JWZus/s1600-h/clip_image046%5B3%5D.jpg"&gt;&lt;img title="clip_image046" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="196" alt="clip_image046" src="http://lh3.ggpht.com/_4SYOSujD6rw/Sv8thK8T-jI/AAAAAAAAAGM/_hKR0GWC7oQ/clip_image046_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;When the configuration is complete, the solution can be deployed. This will create the application if it did not already exist.&lt;/p&gt;&lt;p&gt;Note: it is recommended to close the BizTalk Administration console during deployment.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_4SYOSujD6rw/Sv8thR4bJ3I/AAAAAAAAAGQ/9rccLtYd3VA/s1600-h/clip_image048%5B3%5D.jpg"&gt;&lt;img title="clip_image048" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="189" alt="clip_image048" src="http://lh3.ggpht.com/_4SYOSujD6rw/Sv8th0QE7aI/AAAAAAAAAGU/-5uwfT1BwTU/clip_image048_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;h5&gt;&lt;a name="_Toc231896320"&gt;1.1.13 Configure the application&lt;/a&gt;&lt;/h5&gt;&lt;p&gt;When the application is deployed, the orchestration is unbound. This means that the logical ports are not mapped to physical ports. This can be done by opening the orchestration properties in the BizTalk Administration console. &lt;/p&gt;&lt;p&gt;Select the correct receive location as shown in the figure below.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_4SYOSujD6rw/Sv8tiaWJroI/AAAAAAAAAGY/ViiXqWUHolY/s1600-h/clip_image050%5B3%5D.jpg"&gt;&lt;img title="clip_image050" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="102" alt="clip_image050" src="http://lh4.ggpht.com/_4SYOSujD6rw/Sv8tisc2bpI/AAAAAAAAAGc/y-1jz3-4Sew/clip_image050_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;h5&gt;&lt;a name="_Toc231896321"&gt;1.1.14 Starting the application&lt;/a&gt;&lt;/h5&gt;&lt;p&gt;To start the application, perform the following actions:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Right click on the application ebMS.GettingStarted &lt;/li&gt;&lt;li&gt;Select ‘Start’ from the context menu &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_4SYOSujD6rw/Sv8tiwaGYBI/AAAAAAAAAGg/gnUpbxbLa1c/s1600-h/clip_image052%5B3%5D.jpg"&gt;&lt;img title="clip_image052" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="92" alt="clip_image052" src="http://lh6.ggpht.com/_4SYOSujD6rw/Sv8tjaWxr2I/AAAAAAAAAGk/wPvlwWV5T0c/clip_image052_thumb.jpg?imgmax=800" width="236" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Select ‘Start’ in the popup dialog &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_4SYOSujD6rw/Sv8tj1JV5cI/AAAAAAAAAGo/f52_fll2q8A/s1600-h/clip_image054%5B3%5D.jpg"&gt;&lt;img title="clip_image054" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="73" alt="clip_image054" src="http://lh5.ggpht.com/_4SYOSujD6rw/Sv8tkP09WTI/AAAAAAAAAGs/DwPOcGhmeQo/clip_image054_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-4623105940504057006?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/4623105940504057006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2009/11/using-covast-ebms-adapter-part-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/4623105940504057006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/4623105940504057006'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2009/11/using-covast-ebms-adapter-part-3.html' title='Using the Covast ebMS Adapter (part 3)'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_4SYOSujD6rw/Sv8tP-XugEI/AAAAAAAAADc/tZxaPl4OZqE/s72-c/clip_image002_thumb.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-8118463800861204769</id><published>2009-11-14T23:10:00.001+01:00</published><updated>2009-11-14T23:24:22.538+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='Covast ebMS Adapter'/><title type='text'>Using the Covast ebMS Adapter (part 2)</title><content type='html'>&lt;p&gt;As described in my previous post on the Covast ebMS Adapter (&lt;a title="http://snefs.blogspot.com/2009/11/using-covast-ebms-adapter-part-1.html" href="http://snefs.blogspot.com/2009/11/using-covast-ebms-adapter-part-1.html"&gt;part1&lt;/a&gt;) there are 2 ways of leveraging the functionality of the ebMS Adapter&lt;/p&gt;&lt;p&gt;1) Pipelines&lt;/p&gt;&lt;p&gt;2) Orchestration&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Using pipelines&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The ebXML Messaging Service pipeline components can be configured to use a specific collaboration protocol agreement (CPA) when assembling, encrypting and signing or disassembling and authenticating the ebXML message. This configuration is performed when the pipeline is selected for usage in a BizTalk port. &lt;/p&gt;&lt;p&gt;This requires that pipeline properties are configured so that they match the corresponding properties of the collaboration protocol agreement (CPA). The configuration is used at runtime to process messages. When a message arrives, the properties of the message, in addition to the pipeline properties, are used to locate the correct CPA and to apply the settings during message exchange.&lt;/p&gt;&lt;p&gt;For instance: the CPA can dictate the requirement to return an Acknowledge message and the message destination. The CPA is also used to authenticate the point of origin for the message and the identity of the sender.&lt;/p&gt;&lt;p&gt;1) Configure the ebMS Receive pipeline&lt;/p&gt;&lt;p&gt;The receive pipeline removes the message envelope, logs transaction activity to the Communication Tracking Data table, promotes message properties and passes the BizTalk compatible XML message back to the pipeline to be published to the BizTalk messagebox. The configuration phase of the installation process deploys the receive pipeline to the chosen BizTalk application where it can then be selected for use in a receive port.&lt;/p&gt;&lt;p&gt;2) Configure the ebMS Send pipeline&lt;/p&gt;&lt;p&gt;The primary purpose of the ebMS Send Pipeline is to envelope an XML message to meet ebXML transmission standards. The send pipeline serves several additional purposes.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Envelopes the BizTalk XML message to meet ebMS messaging standards.&lt;/li&gt;&lt;li&gt;Handles message payload encryption and signing.&lt;/li&gt;&lt;li&gt;Creates ebMS standard acknowledgements in response to incoming messages.&lt;/li&gt;&lt;li&gt;Generates the Ping and Pong message types.&lt;/li&gt;&lt;li&gt;Generates detail into the Communication Tracking Data table.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The ebMSSend pipeline uses the CPA contract to determine how to process the message, whether to expect acknowledgements etc.&lt;/p&gt;&lt;p&gt;When a message is passed through a port that uses the ebMSSend pipeline this message will be picked up by the ‘PickupMessagesToSend’ orchestration. This orchestration will set the required retry flag to ensure correct processing and passes the message through to the ‘RetryOrchestration’ that will submit the message to the outbound destination&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_4SYOSujD6rw/Sv8qyxcfJII/AAAAAAAAADI/EtNRS2TQApU/s1600-h/clip_image002%5B4%5D%5B2%5D.jpg"&gt;&lt;img title="clip_image002[4]" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="96" alt="clip_image002[4]" src="http://lh5.ggpht.com/_4SYOSujD6rw/Sv8qzHmxNYI/AAAAAAAAADM/jQErcftREh8/clip_image002%5B4%5D_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The properties should match the CPA configuration for the message exchange that is required from the port. The Action and Party determines which configuration record is used and how the message is exchanged.&lt;/p&gt;&lt;p&gt;Note: the URI is overruled in the pipeline based on the CPA configuration&lt;/p&gt;&lt;p&gt;Note2: the ping property can be used to test connections between ebMS parties.&lt;/p&gt;&lt;p&gt;3) Acknowledgements&lt;/p&gt;&lt;p&gt;Messages that need to be acknowledged should be routed to a send port with the ebMSSendpipeline configured. The pipeline recognizes that an acknowledgment should be generated and replaces the payload of the message with the ebXML acknowledgment.&lt;/p&gt;&lt;p&gt;The sendpipeline will use the context properties (ReceiveCPaId,….) to determine the recipient of the acknowledgment. A filter must be added to the send port configuration for the condition “AckResponseNeeded” = “True”.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_4SYOSujD6rw/Sv8qzXzEWsI/AAAAAAAAADQ/bdgzULWix48/s1600-h/clip_image002%5B3%5D.jpg"&gt;&lt;img title="clip_image002" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="77" alt="clip_image002" src="http://lh5.ggpht.com/_4SYOSujD6rw/Sv8qz3UimQI/AAAAAAAAADU/e1Jysnd9NkA/clip_image002_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-8118463800861204769?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/8118463800861204769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2009/11/using-covast-ebms-adapter-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/8118463800861204769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/8118463800861204769'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2009/11/using-covast-ebms-adapter-part-2.html' title='Using the Covast ebMS Adapter (part 2)'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_4SYOSujD6rw/Sv8qzHmxNYI/AAAAAAAAADM/jQErcftREh8/s72-c/clip_image002%5B4%5D_thumb.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-6072494216377328551</id><published>2009-11-14T22:26:00.001+01:00</published><updated>2009-11-14T23:13:10.226+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='Covast ebMS Adapter'/><title type='text'>Using the Covast ebMS Adapter (part 1)</title><content type='html'>&lt;p&gt;&lt;b&gt;Getting started with the Covast ebMS adapter&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The Covast ebMS Adapter for BizTalk Server 2006/2009 is a suite of components that can be used to develop and deploy BizTalk solutions, which require secure and reliable data transmission. A getting started package is included with the demo version of this adapter, using a loopback scenario to demonstrate the usage of this adapter. In this multipart series i will explain the 2 methods of using the adapter.&lt;/p&gt;&lt;p&gt;The Covast ebMS Adapter implements the specifications of ebXML Message Services.&lt;/p&gt;&lt;p&gt;To get started with the ebMS Adapter, the following steps have to be followed:&lt;/p&gt;&lt;p&gt;· Install the adapter&lt;/p&gt;&lt;p&gt;· Define the collaboration protocol agreement&lt;/p&gt;&lt;p&gt;· Configure the adapter using pipelines or context properties inside an orchestration&lt;/p&gt;&lt;p&gt;This part will explain the steps to follow for setting up the adapter….Here we go…&lt;/p&gt;&lt;p&gt;· &lt;b&gt;Install the Covast ebMS adapter&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The Covast ebMS Adapter consists of several components that aid in the development of ebMS solutions. The installation process consists of a wizard that installs the necessary components and configuration database. The ebMS Adapter installs resources to a BizTalk application that can be selected during the setup. When the installation is completed the following resources are installed:&lt;/p&gt;&lt;p&gt;&lt;b&gt;Orchestrations&lt;/b&gt;&lt;/p&gt;&lt;p&gt;· Covast.Ebxml.Retry.PickupMessageToSend&lt;/p&gt;&lt;p&gt;When messages are received, the ebXml Message Service Adapter Orchestration ‘PickUpMessagesToSend’ will process this message and ensure that it is processed and submitted into the message box.&lt;/p&gt;&lt;p&gt;· Covast.Ebxml.Retry.RetryOrchestration &lt;/p&gt;&lt;p&gt;The ebMS standard defines means of reliable messaging by using Acknowledge messages. To ensure that this standard is followed there is an orchestration that picks up messages submitted by the ‘PickUpMessagesToSend’ orchestration. This orchestration tries to send the message to the outbound destination.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Pipelines&lt;/b&gt;&lt;/p&gt;&lt;p&gt;· ebMSReceivePipeline.ebMSReceivePipeline&lt;/p&gt;&lt;p&gt;This pipeline is used to decode ebMS messages based on the CPA defined in the steps above.&lt;/p&gt;&lt;p&gt;· ebMSSendPipeline.ebMSSendPipeline&lt;/p&gt;&lt;p&gt;This pipeline is used to encode messages to ebMS messages based on the CPA defined in the steps above.&lt;/p&gt;&lt;p&gt;note: a filter in the port allows to require acknowledge messages; ebMSProperties.AckResponseNeeded == true &lt;/p&gt;&lt;p&gt;&lt;b&gt;Schemas&lt;/b&gt;&lt;/p&gt;&lt;p&gt;· ebMSProperties.CovastPropertyschema&lt;/p&gt;&lt;p&gt;This schema contains all the properties that can be used in the ebMS Adapter.&lt;/p&gt;&lt;p&gt;· Covast.Ebxml.Retry.StatusMessage&lt;/p&gt;&lt;p&gt;Schema that defines a status message.&lt;/p&gt;&lt;p&gt;· &lt;b&gt;Define the &lt;/b&gt;&lt;b&gt;collaboration protocol agreement&lt;/b&gt;&lt;/p&gt;&lt;p&gt;To be able to communicate between parties, a so called collaboration protocol agreement (CPA) must be configured. This collaboration protocol agreement defines the services and technical implementation between parties; where are the services located, is an acknowledgement required, how many retries are allowed before a message is considered to be failed. This collaboration protocol agreement can be defined in any ebMS supporting tool that is capable of exporting to xml. &lt;/p&gt;&lt;p&gt;To use the collaboration protocol agreement with the ebMS Adapter, the xml file should be imported using the ebMS Administration console.&lt;/p&gt;&lt;p&gt;Each collaboration protocol agreement defines roles, these are used to determine how to &lt;/p&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_4SYOSujD6rw/Sv8gYJ0bbwI/AAAAAAAAACw/a1ve399BbRY/s1600-h/clip_image0023.jpg"&gt;&lt;img title="clip_image002" style="BORDER-TOP-WIDTH: 0px; DISPLAY: inline; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="32" alt="clip_image002" src="http://lh4.ggpht.com/_4SYOSujD6rw/Sv8gYUBnkJI/AAAAAAAAAC0/efdS0BEunog/clip_image002_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Figure administration console: right click and select ‘Import CPA’ in the context menu&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_4SYOSujD6rw/Sv8gYra7T3I/AAAAAAAAAC4/UjZU3UaWECQ/s1600-h/clip_image0043.jpg"&gt;&lt;img title="clip_image004" style="BORDER-TOP-WIDTH: 0px; DISPLAY: inline; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="106" alt="clip_image004" src="http://lh5.ggpht.com/_4SYOSujD6rw/Sv8gZLblgKI/AAAAAAAAAC8/JbIXN7RdJb0/clip_image004_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Figure select party: define for which role the CPA is imported&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_4SYOSujD6rw/Sv8gZv6uvrI/AAAAAAAAADA/1kspv3eiDCs/s1600-h/clip_image0063.jpg"&gt;&lt;img title="clip_image006" style="BORDER-TOP-WIDTH: 0px; DISPLAY: inline; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="100" alt="clip_image006" src="http://lh4.ggpht.com/_4SYOSujD6rw/Sv8gZ615qqI/AAAAAAAAADE/dT0_q90cvbY/clip_image006_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Next…..&lt;/p&gt;&lt;p&gt;· &lt;b&gt;Configure the adapter using pipelines or context properties inside an orchestration&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The message is routed and processed based on the CPA properties. The message properties are contained in the BizTalk ‘message context’. The adapter supports two methods to set the message context properties, using Pipelines and by using an Orchestration to set the context properties….i will describe this in more detail in &lt;strong&gt;&lt;a href="http://snefs.blogspot.com/2009/11/using-covast-ebms-adapter-part-2.html"&gt;part2&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href="http://snefs.blogspot.com/2009/11/using-covast-ebms-adapter-part-3.html"&gt;part3&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-6072494216377328551?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/6072494216377328551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2009/11/using-covast-ebms-adapter-part-1.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/6072494216377328551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/6072494216377328551'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2009/11/using-covast-ebms-adapter-part-1.html' title='Using the Covast ebMS Adapter (part 1)'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_4SYOSujD6rw/Sv8gYUBnkJI/AAAAAAAAAC0/efdS0BEunog/s72-c/clip_image002_thumb.jpg?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-5550905137656009840</id><published>2009-11-12T21:23:00.001+01:00</published><updated>2009-11-14T21:45:22.038+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>Use an existing SQL Server for your BizTalk environment</title><content type='html'>&lt;p&gt;Recently i had the ability to use 2 dedicated development machines, one for setting up BizTalk and i figured to use the other for SQL Server. &lt;/p&gt;  &lt;p&gt;I sounds easy enough, be it that there are some steps that you should not forget. &lt;/p&gt;  &lt;p&gt;Possible error to look for: &lt;em&gt;“Cannot open database BizTalkMgmtDb on server &amp;lt;dummy&amp;gt;.Verify that you have the required security permissions and that communication between Distributed Transaction Coordinator services on the machines involved is not prevented by current DTC security,&amp;#160;&amp;#160; firewall or authentication settings.”&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Setting up the machines&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Preconditions: &lt;/p&gt;  &lt;p&gt;o SQL Server is installed&lt;/p&gt;  &lt;p&gt;o BizTalk is installed but not configured&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Setting up the SQL Server machine&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;1) Start ‘SQL Server Surface Area Configuration’&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;o Enable remote connections&lt;/p&gt;  &lt;p&gt;(Choose: TCP/IP or TCP/IP and named pipes, disable shared memory)&lt;/p&gt;  &lt;p&gt;o Start the SQL Agent&lt;/p&gt;  &lt;p&gt;o Start the SQL Browser&lt;/p&gt;  &lt;p&gt;&lt;u&gt;2) Start ‘SQL Server Configuration Management’&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;o Goto ‘Protocols for MSSQL Server’ to enable TCP/IP&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;· Set Active to ‘Yes’&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;· Set Enabled to ‘Yes’&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;· Enable named pipes&lt;/p&gt;  &lt;p&gt;&lt;img height="243" alt="" src="http://docs.google.com/File?id=dfsgfprq_3hp4h99v4_b" width="391" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;3) Configure DTC&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;a) Start ‘Component Services’&lt;/p&gt;  &lt;p&gt;In the control panel, browse to ‘Administrative Tools’\’Component Services’&lt;/p&gt;  &lt;p&gt;&lt;img height="306" alt="" src="http://docs.google.com/File?id=dfsgfprq_4dvz9qcgh_b" width="402" /&gt;&lt;/p&gt;  &lt;p&gt;Right click on properties on the context menu under:&lt;/p&gt;  &lt;p&gt;\Component Services\Computers\My Computer\Properties&lt;/p&gt;  &lt;p&gt;&lt;u&gt;b) Configure MSDTC&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Check the following settings:&lt;/p&gt;  &lt;p&gt;· Allow remote connections (remote administration is not required)&lt;/p&gt;  &lt;p&gt;· No Authentication required&lt;/p&gt;  &lt;p&gt;· Enable XA Transactions&lt;/p&gt;  &lt;p&gt;· Enable TIP (not sure is this is required)&lt;/p&gt;  &lt;p&gt;&lt;img height="337" alt="" src="http://docs.google.com/File?id=dfsgfprq_5fbtxsdgc_b" width="421" /&gt;&lt;/p&gt;  &lt;p&gt;for more info see: &lt;a href="http://msdn.microsoft.com/en-us/library/aa544733.aspx"&gt;&lt;u&gt;http://msdn.microsoft.com/en-us/library/aa544733.aspx&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Setting up the BizTalk machine&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;o Manually create the required SSO groups &lt;/p&gt;  &lt;p&gt;o For SSO: add user to the SSO Administrators group &lt;/p&gt;  &lt;p&gt;o Add authenticated database users to the BizTalk Administrators group&lt;/p&gt;  &lt;p&gt;o Repeat steps 3a-b for setting up DTC&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-5550905137656009840?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/5550905137656009840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2009/11/use-existing-sql-server-for-your.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/5550905137656009840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/5550905137656009840'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2009/11/use-existing-sql-server-for-your.html' title='Use an existing SQL Server for your BizTalk environment'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-7239900816913068732</id><published>2009-11-12T21:09:00.002+01:00</published><updated>2011-10-08T09:13:08.773+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tooling'/><title type='text'>Live writer.Enable = true;</title><content type='html'>&lt;p&gt;Previous posts were published using the WYSIWYG webeditor of blogspot.com, hereby the first post using live writer:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Hello world….&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-7239900816913068732?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/7239900816913068732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2009/11/live-writerenable-true.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/7239900816913068732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/7239900816913068732'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2009/11/live-writerenable-true.html' title='Live writer.Enable = true;'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-921207278767280975</id><published>2009-10-21T21:22:00.000+02:00</published><updated>2009-10-21T21:35:26.740+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><title type='text'>BizTalk 2006 R2 Certification passed</title><content type='html'>After taking the BizTalk 2009 Deep Dive training the next step was to upgrade my certifications on BizTalk. Today was the day and i am very happy that i have passed the BizTalk 2006 R2 70-241 exam. I am now certified on both the BizTalk exams 70-235 and 70-241 :)&lt;br /&gt;&lt;br /&gt;I found the 70-235 exam to be focused on usage of tooling and terms, and a really nice exam that is based on experience.&lt;br /&gt;&lt;br /&gt;The 70-241 exam was focused on more 'advanced' knowledge on exception handling, orchestration design, pipeline processing etc, also a nice exam (except for the 20 questions i had to fill in before i could actually take it). Completing the exam i was nervous and reviewed all the questions that i had marked for review 3 times. When i decided that is was time for the verdict i clicked 'End exam'. Each time i do this on a exam my internal timer starts ticking; 1...did i pass?, 2....oh no i forgot that!....3....come on! 4..what's the verdict....it was a 972, that made my day!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Happy studying for everybody that is taking the exam.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-921207278767280975?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/921207278767280975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2009/10/biztalk-2006-r2-certification-passed.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/921207278767280975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/921207278767280975'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2009/10/biztalk-2006-r2-certification-passed.html' title='BizTalk 2006 R2 Certification passed'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-8249324193745564771</id><published>2009-10-12T00:07:00.000+02:00</published><updated>2009-11-14T23:37:22.453+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='AIF Adapter for Dynamics AX 2009'/><title type='text'>Taming the BizTalk AIF Adapter for Microsoft Dynamics AX 2009</title><content type='html'>Microsoft Dynamics AX 2009 is a new version of one of Microsoft ERP systems tailored for a specific market. The advantages of the new Dynamics AX 2009 version is that the technical integration of trading partner integration is much more robust and interfacing with other applications using BizTalk has now become even easier because the accompanied BizTalk AIF Adapter.&lt;br /&gt;&lt;br /&gt;Dynamics AX 2009 exposes documents using an application platform called AIF. AIF enables the integration of Microsoft Dynamics AX through Web services, Microsoft Message Queuing (MSMQ), the file system (using a directory), or BizTalk Server.&lt;br /&gt;The AIF framework uses documents wrapped in envelopes for processing. A downside to not using the BizTalk adapter is that the envelope processing has to be performed additionally while the BizTalk adapter will solve this for you. A colleague of mine has an article on how to do AIF processing without the AIF adapter (see: &lt;a href="http://www.microtalk.net/2009/04/23/AssignAHeaderValueInAnAIFDynamicsAXMessageWithBizTalk.aspx"&gt;http://www.microtalk.net/2009/04/23/AssignAHeaderValueInAnAIFDynamicsAXMessageWithBizTalk.aspx&lt;/a&gt;), this article will show you how to integrate with AIF using the BizTalk AIF Adapter.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Prerequisites: &lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Installed version of Dynamics AX 2009&lt;br /&gt;(All available service packs / fix packs must be installed, this is not easy to forget since the installation wizard forces you to install all service / fix packs before you can continue) &lt;/li&gt;&lt;li&gt;BizTalk environment &lt;/li&gt;&lt;li&gt;BizTalk AIF Adapter installed in the BizTalk environment&lt;br /&gt;(This can be found on the installation disc of Dynamics AX 2009) &lt;/li&gt;&lt;li&gt;Active directory account with access to Dynamics AX 2009&lt;br /&gt;(Used for authorization) &lt;/li&gt;&lt;li&gt;Active directory account (used for the proxy) &lt;/li&gt;&lt;li&gt;&lt;span style="color:#993300;"&gt;GOTCHA: Run the host instance under the active directory user with access to Dynamics AX 2009 &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Developing the BizTalk solution&lt;/strong&gt;&lt;/p&gt;Perform the following steps to develop a BizTalk solution using the BizTalk AIF Adapter;&lt;br /&gt;&lt;br /&gt;1) Create a reference to the Dynamics AX DLL (used for the AX Documents)&lt;br /&gt;&lt;br /&gt;C:\Program Files\Microsoft Dynamics AX\50\Client\Bin\Microsoft.Dynamics.BizTalk.Adapter.Schemas.dll&lt;br /&gt;&lt;br /&gt;2) Walk through the ‘Add Generated Items wizard’ and select the process you want to implement&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Right click the BizTalk project, add new item, add generated items&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://1.bp.blogspot.com/_4SYOSujD6rw/StJajw656hI/AAAAAAAAABY/tB-S1m0HfCU/s1600-h/1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5391471274389793298" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 280px; CURSOR: hand; HEIGHT: 185px" alt="" src="http://1.bp.blogspot.com/_4SYOSujD6rw/StJajw656hI/AAAAAAAAABY/tB-S1m0HfCU/s320/1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Select Adapter: Microsoft Dynamics AX 2009 &lt;/li&gt;&lt;/ul&gt;&lt;a href="http://3.bp.blogspot.com/_4SYOSujD6rw/StJY1kVEJVI/AAAAAAAAAA4/Hj3bvYbIbsI/s1600-h/2.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5391469381224244562" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand; HEIGHT: 218px" alt="" src="http://3.bp.blogspot.com/_4SYOSujD6rw/StJY1kVEJVI/AAAAAAAAAA4/Hj3bvYbIbsI/s320/2.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Enter values for the following fields:&lt;br /&gt;Set Server name = &lt;ax-instance&gt;.&lt;br /&gt;Set TCP/IP Port = &lt;ax-instance&gt;.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Select the process that you want to implement &lt;/li&gt;&lt;/ul&gt;&lt;a href="http://1.bp.blogspot.com/_4SYOSujD6rw/StJY1zXNGiI/AAAAAAAAABA/UFwv9p31RoI/s1600-h/3.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5391469385259751970" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand; HEIGHT: 179px" alt="" src="http://1.bp.blogspot.com/_4SYOSujD6rw/StJY1zXNGiI/AAAAAAAAABA/UFwv9p31RoI/s320/3.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#336666;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#336666;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#336666;"&gt;TIP: You can communicate Synchronous or A-Synchronous with the obvious pros and cons. I found however that for the initial setup when you are finding your way, synchronous is much more helpful when debugging the initial setup.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3) Configure Dynamics AX 2009 (it might post this in detail in a second blog post)&lt;br /&gt;&lt;br /&gt;To be able to communicate with Dynamics AX 2009, the configuration of Dynamics has to be set up correctly. Since this is the non BizTalk point, this might not be of interest. The following steps must be performed and be found in a Microsoft whitepaper ‘Application Integration Framework(AIF) BizTalk adapter configuration for data exchange’;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Configure transport adapters (activate the dynamics side for send/receive) &lt;/li&gt;&lt;li&gt;Configure channels (configure one-way / bi-directional channels) &lt;/li&gt;&lt;li&gt;Configure services (configure what functionality to expose, used in the add generated items wizard) &lt;/li&gt;&lt;li&gt;Configure endpoint (this is used to configure how to expose the services, set authorization etc, e.g. a unique endpoint ID per service is configured so that the BizTalk orchestration can address this endpoint easily ) &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;4) Set the context properties&lt;br /&gt;&lt;br /&gt;When the orchestration is developed, some context properties must be set to be able to send/receive messages using the BizTalk AIF adapter as shown below;&lt;br /&gt;PORequest = POCanonical;&lt;br /&gt;PORequest(*) = POCanonical(*);&lt;br /&gt;&lt;br /&gt;PORequest(DynamicsAx5.DestinationEndpoint) = "OrderEndpoint";&lt;br /&gt;PORequest(DynamicsAx5.SourceEndpoint) = " OrderEndpoint ";&lt;br /&gt;PORequest(DynamicsAx5.SourceEndpointUser) = @"activedirectory\axuser"; //a valid active directory user with access to dynamics&lt;br /&gt;PORequest(DynamicsAx5.MessageId) = POCanonical(BTS.MessageID); &lt;span style="color:#003300;"&gt;//unique message id&lt;br /&gt;&lt;/span&gt;PORequest(DynamicsAx5.Action) =&lt;br /&gt;"http://schemas.microsoft.com/dynamics/2008/01/services/PurchaseOrderService/create"; &lt;span style="color:#003300;"&gt;//action to identify the service that is required&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;5) Configure the port and specify the users&lt;br /&gt;&lt;br /&gt;The final step is to configure the ports;&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Active directory proxy account (port configuration) à used to authenticate to the AIF framework &lt;/li&gt;&lt;li&gt;Use an active directory account with access to Dynamics AX 2009 à used to authorize&lt;br /&gt;Configure the host instance with an user that is allowed to use Dynamics AX 2009. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_4SYOSujD6rw/StJaImO5q_I/AAAAAAAAABQ/Fv0t1Cfko2s/s1600-h/4.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5391470807664405490" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand; HEIGHT: 297px" alt="" src="http://4.bp.blogspot.com/_4SYOSujD6rw/StJaImO5q_I/AAAAAAAAABQ/Fv0t1Cfko2s/s320/4.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;This should do the trick!&lt;br /&gt;&lt;br /&gt;Happy BizTalking…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-8249324193745564771?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/8249324193745564771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2009/10/taming-biztalk-aif-adapter-for.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/8249324193745564771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/8249324193745564771'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2009/10/taming-biztalk-aif-adapter-for.html' title='Taming the BizTalk AIF Adapter for Microsoft Dynamics AX 2009'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_4SYOSujD6rw/StJajw656hI/AAAAAAAAABY/tB-S1m0HfCU/s72-c/1.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-481157834649030861</id><published>2009-09-28T22:02:00.000+02:00</published><updated>2009-11-14T21:46:05.223+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk - XPath mutator'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><title type='text'>Developing and testing a Streaming Pipeline using the Xpath mutator</title><content type='html'>&lt;p&gt;When developing pipeline components it is higly recommended to do any processing in a streaming manner to ensure that the performance hit is minimal.&lt;br /&gt;&lt;br /&gt;The other day I had to build a pipeline component to strip Attachments from the messagestream. I decided to use an XPath mutator because of the streaming features, in this blog I try to describe what steps I followed to implement and test the pipeline.&lt;br /&gt;&lt;br /&gt;· &lt;u&gt;Extracting the BizTalk message dll’s from the GAC&lt;br /&gt;&lt;/u&gt;· &lt;u&gt;Creating the pipeline component Using the XPath mutator&lt;br /&gt;&lt;/u&gt;· &lt;u&gt;Testing the pipeline component&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;&lt;strong&gt;1) Extracting the BizTalk message dll’s from the GAC&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Because some of the nicest BizTalk assemblies are only in the GAC it requires some effort to extract these. The assembies are: Microsoft.BizTalk.Streaming.dll and Microsoft.BizTalk.XPathReader.dll.&lt;br /&gt;&lt;br /&gt;See the following link for information on how to extract the dll's:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bloggingabout.net/blogs/wellink/archive/2006/07/12/12947.aspx"&gt;http://bloggingabout.net/blogs/wellink/archive/2006/07/12/12947.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2) Creating the pipeline component Using the XPath mutator&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;The XPath mutator allows a stream to be mutated using XPath queries that fire like C# events; on this event you are able to modify the current stream. Although the XPath mutator is explained on several sites, I still had to do some research in how to use the mutator and how to create a new stream using the mutated stream.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ffcc00;"&gt;&lt;span style="color:#663300;"&gt;Gotcha: when the event is fired, the outputstream is mutated, so when an Xpath statement is used and it fires multiple times on the same node, the ORGINAL value is provided, not the mutated.&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The basic steps in how to implement a pipeline component can be found anywhere so I won’t go into detail.&lt;br /&gt;&lt;br /&gt;The following code will process the message, mutates the stream and creates a new stream based on the mutations.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000066;"&gt;public IBaseMessage Execute(IPipelineContext pc, IBaseMessage inmsg)&lt;br /&gt;{&lt;br /&gt;inmsg.BodyPart.Data = ProcessMessage(inmsg);&lt;br /&gt;return inmsg;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#003300;"&gt;// Process the incoming message and extract the attachment.&lt;br /&gt;&lt;/span&gt;private Stream ProcessMessage(IBaseMessage inmsg)&lt;br /&gt;{&lt;br /&gt;byte[] buffer = new byte[4096];&lt;br /&gt;int count = 0;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#003300;"&gt;//new memory stream to manipulate the message.&lt;br /&gt;&lt;/span&gt;MemoryStream messageStream = new MemoryStream();&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#003300;"&gt;//stream pointer to the original stream.&lt;/span&gt;&lt;br /&gt;Stream originalStream = inmsg.BodyPart.Data;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#003300;"&gt;//write the original message to the memory stream &lt;/span&gt;&lt;br /&gt;while (0 != (count = originalStream.Read(buffer, 0, 4096)))&lt;br /&gt;{&lt;br /&gt;messageStream.Write(buffer, 0, count);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#003300;"&gt;//rewind the stream to the beginning &lt;/span&gt;&lt;br /&gt;messageStream.Position = 0;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#003300;"&gt;// 1) Extract / replace the content&lt;br /&gt;&lt;/span&gt;XPathCollection xPathCollection = new XPathCollection();&lt;br /&gt;xPathCollection.Add(new XPathExpression(AttachmentXpath));&lt;br /&gt;ValueMutator mutator = new ValueMutator(this.AttachmentMutator);&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#003300;"&gt;// Define the XpathMutator&lt;br /&gt;&lt;/span&gt;XPathMutatorStream mutatorStream = new XPathMutatorStream(messageStream, xPathCollection, mutator);&lt;br /&gt;&lt;br /&gt;MemoryStream resultStream = new MemoryStream();&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#003300;"&gt;// Read the stream and process the Xpath results&lt;br /&gt;// 2) - write the content to disk and return the file location&lt;br /&gt;// 3) - replace the content with the file location&lt;br /&gt;&lt;/span&gt;while (0 != (count = mutatorStream.Read(buffer, 0, 4096)))&lt;br /&gt;{&lt;br /&gt;resultStream.Write(buffer, 0, count);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#003300;"&gt;// 4) set the output stream to the beginning&lt;br /&gt;&lt;/span&gt;resultStream.Position = 0;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#003300;"&gt;// 5) promote a context property and store the file location&lt;br /&gt;&lt;/span&gt;inmsg.Context.Promote(AttachmentContextPropertyName, AttachmentContextPropertyNamespace, AttachmentFileName);&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#333300;"&gt;&lt;span style="color:#003300;"&gt;// 6) return the updated message stream &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;return resultStream;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#003300;"&gt;// Modifies the attachment value in the message&lt;br /&gt;&lt;/span&gt;private void AttachmentMutator(int matchIdx, XPathExpression matchExpr, string origVal, ref string finalVal)&lt;br /&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#000066;"&gt;&lt;span style="color:#003300;"&gt;// write the content to a file&lt;br /&gt;&lt;/span&gt;AttachmentFileName = WriteContentToLocation(FileLocation, origVal);&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#003300;"&gt;//replace the content value with the file location&lt;br /&gt;&lt;/span&gt;finalVal = AttachmentFileName;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Note: The following link helped me a lot &lt;a href="http://bloggingabout.net/blogs/wellink/archive/2006/03/03/11207.aspx"&gt;http://bloggingabout.net/blogs/wellink/archive/2006/03/03/11207.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3) Testing the pipeline component&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;The most important step, is the testing stage! I have used the pipeline testing library from Tomas Restepo (&lt;a href="http://winterdom.com/2007/08/pipelinetesting11released"&gt;http://winterdom.com/2007/08/pipelinetesting11released&lt;/a&gt;) that provides an clean and easy interface.&lt;br /&gt;&lt;br /&gt;After unpacking the pipeline testing library, the following dll’s are used to do pipeline component testing:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000066;"&gt;Microsoft.BizTalk.Pipeline&lt;br /&gt;Microsoft.BizTalk.Pipeline.Components&lt;br /&gt;Microsoft.XLANGs.BaseTine&lt;br /&gt;PipelineObjects&lt;br /&gt;Winterdom.BizTalk.PipelineTesting&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The following code is then implemented to test the actual component, pretty nice and easy.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000066;"&gt;string expectedContent = File.ReadAllText(@"TestData\attachment");&lt;br /&gt;&lt;br /&gt;string XPATH_CONTENT = "/*[local-name()='Message']/*[local-name()='Body']/*/*[local-name()='Attachments']/*[local-name()='attachment']/*[local-name()='content']";&lt;br /&gt;&lt;br /&gt;string testStep = File.ReadAllText(@"TestData\InputSendTest.xml");&lt;br /&gt;testStep = testStep.Replace("FILELOCATION", @"TestData\attachment");&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#003300;"&gt;//create the inputmessage based on a xml file&lt;br /&gt;&lt;/span&gt;IBaseMessage inputMessage = MessageHelper.CreateFromString(testStep);&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#003300;"&gt;//create an empty pipeline &lt;/span&gt;&lt;br /&gt;SendPipelineWrapper sendPipeline = PipelineFactory.CreateEmptySendPipeline();&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#003300;"&gt;//create the pipeline component &lt;/span&gt;&lt;br /&gt;IBaseComponent component = new Custom.B2B.PipelineComponents.Attachments.AttachmentAssembler();&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#003300;"&gt;//add the pipeline component&lt;br /&gt;&lt;/span&gt;sendPipeline.AddComponent(component, PipelineStage.Encode);&lt;br /&gt;&lt;br /&gt;string fileLocation = System.IO.Path.GetFullPath(@"TestData");&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#003300;"&gt;//configure the pipeline component&lt;br /&gt;&lt;/span&gt;(component as AttachmentAssembler).FileLocation = fileLocation;&lt;br /&gt;(component as AttachmentAssembler).AttachmentLocationXpath = XPATH_CONTENT;&lt;br /&gt;(component as AttachmentAssembler).AttachmentContentXpath = XPATH_CONTENT;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#003300;"&gt;//create a list to store the BizTalk message&lt;br /&gt;&lt;/span&gt;List&lt;ibasemessage&gt; inputMessages = new List&lt;ibasemessage&gt;();&lt;br /&gt;inputMessages.Add(inputMessage);&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#003300;"&gt;//execute the pipeline &lt;/span&gt;&lt;br /&gt;IBaseMessage resultMessage = sendPipeline.Execute(inputMessages.ToArray());&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#003300;"&gt;//process the result &lt;/span&gt;&lt;br /&gt;StreamReader sr = new StreamReader(resultMessage.BodyPart.Data);&lt;br /&gt;string result = sr.ReadToEnd();&lt;br /&gt;&lt;br /&gt;XmlDocument xDoc = new XmlDocument();&lt;br /&gt;xDoc.LoadXml(result);&lt;br /&gt;&lt;br /&gt;string content = xDoc.SelectSingleNode(XPATH_CONTENT).InnerText;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#003300;"&gt;//test the result&lt;br /&gt;&lt;/span&gt;Assert.AreEqual&lt;string&gt;(content, expectedContent, "The attachment is not identical to the expected data!");&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-481157834649030861?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/481157834649030861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2009/09/developing-and-testing-streaming.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/481157834649030861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/481157834649030861'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2009/09/developing-and-testing-streaming.html' title='Developing and testing a Streaming Pipeline using the Xpath mutator'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-3738274680913330127</id><published>2009-05-26T05:27:00.001+02:00</published><updated>2009-11-14T21:46:28.413+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><title type='text'>BizTalk first steps</title><content type='html'>When you are a developer taking the first steps into the BizTalk realm, you might find these issues that i have encountered usefull to be aware of;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;[WS Adressing]&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Using WS Adressing can be realized by the leverage of the WCF (WS)Http adapter. An important thing to remember when using the WCF adapters is to set the SoapParameterStyle to ‘Bare’, this prevents the serialization process to wraps the Message, since this is not expected by the WCF adapter.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;[Bindings]&lt;/strong&gt;&lt;br /&gt;Port configuration is lost during deploy&lt;br /&gt;When the binding configuration is not maintained during redeploy (eg. the ports are reset to a different pipeline) there is a chance that is caused by an old binding file.&lt;br /&gt;&lt;br /&gt;\Documents and Settings\\Application Data\Microsoft\BizTalk Server\Deployment&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Problem: Orchestration version is different so bindings are lost&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;binding files contain all the bindings, back up these frequently&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;[Comparision of Biztalk 2004 vs 2006 + (R2)]&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;2004&lt;br /&gt;&lt;br /&gt;- Routing for failed messages not available&lt;br /&gt;&lt;br /&gt;2006&lt;br /&gt;- routing for failed messages available&lt;br /&gt;- debugging with insight in variables&lt;br /&gt;- administration console&lt;br /&gt;&lt;br /&gt;2006 R2&lt;br /&gt;- messages are shown&lt;br /&gt;- routing failures shows the messages&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;[What are Unit Testing opportunities]&lt;/strong&gt;&lt;br /&gt;Nunit&lt;br /&gt;BizUnit&lt;br /&gt;PipelineTestingFramework&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;[Debugging / Tracing Errors]&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;em&gt;How to test failure in orchestration  MAP&lt;/em&gt;&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;Create a direct routing:&lt;br /&gt;&lt;br /&gt;- PORT (receive)&lt;br /&gt;- MAP&lt;br /&gt;- PORT (send, with the receive port as filter)&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;em&gt;Error Can not locate assembly (GAC)&lt;/em&gt; &lt;/u&gt;&lt;br /&gt;&lt;u&gt;&lt;/u&gt;&lt;br /&gt;Assembly is installed in the GAC but can not be found when starting orchestrations (refreshed, build, deployed with the new dll):&lt;br /&gt;&lt;br /&gt;- stop all Host instances / Orchestrations&lt;br /&gt;&lt;br /&gt;restart the machine&lt;br /&gt;&lt;br /&gt;- start all Host instances / Orchestrations&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;em&gt;Routing failure&lt;/em&gt;&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;Check listening ports (are there ports listening)&lt;br /&gt;Check filters in ports/orchestration and verify this with the message instance&lt;br /&gt;Check bindings&lt;br /&gt;Check Orchestration in active state (not processing)&lt;br /&gt;Check port/orchestration/hostinstance state (is it running)?&lt;br /&gt;Check Port type Xml or Passthrough (and correlation on type)?&lt;br /&gt;Delete port&lt;br /&gt;&lt;br /&gt;do not delete the port on Receive Location level, but remove on Port level!!&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;em&gt;Map with multiple message parts, howto change the scheme&lt;/em&gt;&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;When changing the scheme / refactoring the structure for maps with multiple message parts, reassigning the transformation shape will not succeed.&lt;br /&gt;&lt;br /&gt;The map can be changed with the correct types (from the transformation shape). Adding the links can be done by copying the element from the original Map. This will re-enstate the correct transformation links within the map.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;em&gt;Testing multi part messages&lt;/em&gt;&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;Use the aggschema:&lt;br /&gt;&lt;br /&gt;Message 1&lt;br /&gt;Message 2&lt;br /&gt;&lt;br /&gt;see: http://www.blogbiztalk.com/?p=55&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;em&gt;Modify resource&lt;/em&gt; &lt;/u&gt;&lt;br /&gt;&lt;br /&gt;The binding files are stored on disk and are reloaded when modifiying resources. If there are problems, it is wise to manually check the Binding files. There are located in:&lt;br /&gt;&lt;br /&gt;\Application Data\Microsoft\BizTalk Server\Deployment\BindingFiles&lt;br /&gt;&lt;br /&gt;This is applicable for errors like:&lt;br /&gt;&lt;br /&gt;- location not specified&lt;br /&gt;- transport type not defined&lt;br /&gt;- failed to complete end typec change request&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;em&gt;Error when calling a webservice; Could not create type &lt;/em&gt;&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;When the webport is used in multiple orchestrations they should refer to the same webport. If they all use a new webport type the orchestration can not determine which type to instantiate and will throw an error: 'could not create type'&lt;br /&gt;&lt;br /&gt;You must specify …already-initialized correlation set …non-activation receive that is on a non-selfcorrelating port&lt;br /&gt;&lt;br /&gt;If I was to guess, this error occurs when you are trying to compile an Orchestration. View the property settings for the first Receive Shape and change the [Activate] property to True. This essentially tells the Orchestration to initialize when receiving a new message. If this doesn't resolve your problem, please provide more information on when you are seeing this error message.&lt;br /&gt;&lt;br /&gt;http://www.ureader.com/message/1286860.aspx&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;em&gt;Deployment error ‘Access to the …. Is denied’&lt;/em&gt; &lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Orchestrations are designed in a visual editor, based on the orchestration the C# class is generated. If somehow the process of generating the C# classes fails the solution is to remove the files.&lt;br /&gt;&lt;br /&gt;Note: these files will likely be of 0kb in size.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Deployment&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Watch for the cached binding files!!!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Deploy takes long time&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;- is redeploy checked&lt;br /&gt;- tracking disabled&lt;br /&gt;- running instances&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Actions&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;em&gt;How to deploy&lt;/em&gt;&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;1) kill instances&lt;br /&gt;2) deploy&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;em&gt;How to update&lt;/em&gt; and XSD (schema) if you haven't used multipart messages&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;1)Delete all connections between messages and logical ports&lt;br /&gt;2)update all messages (select the correct XSD)&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;u&gt;Convoying&lt;/u&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Why?&lt;br /&gt;&lt;br /&gt;Ensure that the messages are handled in the correct sequence&lt;br /&gt;Throttling&lt;br /&gt;Note: Ordered delivery is also a common scenario&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What is&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;u&gt;promotions&lt;br /&gt;&lt;/u&gt;&lt;/em&gt;&lt;br /&gt;Property promotion. Used by messaging services to route messages based on the content of the message&lt;br /&gt;&lt;br /&gt;Distinguished fields. Used by orchestration services to access specific data fields contained in a message within an orchestration&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;em&gt;What is correlation?&lt;br /&gt;&lt;/em&gt;&lt;/u&gt;Correlation is the process of matching an incoming message to the appropriate instance of an orchestration. This is commonly used with long-running transactions in which the orchestration instance may be waiting for additional information to be received before it can continue with the business process.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;u&gt;Filtering&lt;br /&gt;&lt;/u&gt;&lt;/em&gt;You can use BizTalk Explorer or the BizTalk Administration console to create one or more filter expressions by using the promoted properties from your schema or BizTalk global properties. The filter expressions define the subscription information that determines which messages are routed to a specific send port or send port group.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;u&gt;Content-based routing&lt;br /&gt;&lt;/u&gt;&lt;/em&gt;&lt;br /&gt;The send port filter can be used for content-based routing without the need for an orchestration when the application does not require any additional processing required by an orchestration. Filtering can also be used to route a message to an orchestration when additional processing is required.&lt;br /&gt;&lt;br /&gt;Both BizTalk global properties and promoted properties from a BizTalk schema can be used for content-based routing.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;em&gt;Transactions&lt;/em&gt;&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;If a long-running business process times out, use exception handling to handle any errors. Compensation is only called for successful transactions. By default, long-running transactions do no time out. This is a configurable property that can be changed if desired.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;em&gt;Message fields&lt;/em&gt; &lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Distinqueshed&lt;br /&gt;Properties can be used internally inside an orchestration.&lt;br /&gt;Additional information can be retrieved using Xpath&lt;br /&gt;&lt;br /&gt;promoted properties&lt;br /&gt;Properties can be used for correlations and port filtering&lt;br /&gt;Messages&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;how-to&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;u&gt;&lt;em&gt;copy data between messages&lt;/em&gt;&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;msg(*) = blaMsg(*)&lt;br /&gt;&lt;br /&gt;note: this will not handle mandatory fields! Workaround ==&gt; set an initial value&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Untyped Message Processing and external projects&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;http://martijnh.blogspot.com/2005/04/untyped-message-processing-and.html&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;u&gt;Direct bound ports and Correlations&lt;br /&gt;&lt;/u&gt;&lt;/em&gt;&lt;br /&gt;When Correlations are required in direct bound port communication, the sending orchestration should initialize the correlation that is used in the receiving orchestration.&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;u&gt;Promote a property used in as filter in another orchestration&lt;/u&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Send the message to the directbound port using an correlation set based on the property that is required as filter.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-3738274680913330127?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/3738274680913330127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2009/05/biztalk-first-steps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/3738274680913330127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/3738274680913330127'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2009/05/biztalk-first-steps.html' title='BizTalk first steps'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-7679162581044813569</id><published>2009-05-26T05:15:00.001+02:00</published><updated>2009-05-26T05:28:52.091+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>Windows Communication Foundation</title><content type='html'>Tired of searching the meaning and specification of all the WCF bindings, hereby a summary of all bindings that are available in a single document...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://groups.google.com/group/snefs/web/WCF_CONFIGURATION.doc"&gt;WCF Configuration&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-7679162581044813569?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://groups.google.com/group/snefs/web/WCF_CONFIGURATION.doc' title='Windows Communication Foundation'/><link rel='enclosure' type='application/msword' href='http://groups.google.com/group/snefs/web/WCF_CONFIGURATION.doc' length='0'/><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/7679162581044813569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2009/05/windows-communication-foundation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/7679162581044813569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/7679162581044813569'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2009/05/windows-communication-foundation.html' title='Windows Communication Foundation'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-3096410278740482939</id><published>2009-05-25T22:55:00.000+02:00</published><updated>2009-05-25T23:13:27.022+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><title type='text'>New years resolution, revised</title><content type='html'>After the swift change of employer this year i've decided to revise my new year resolution:&lt;br /&gt;&lt;br /&gt;- i will blog again&lt;br /&gt;- the main language is english (archives remain in dutch)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;My linked profile is the first online activity that is up te date, after that i will start writing blogs about various subjects in the area of integration and mainly focused on BizTalk.&lt;br /&gt;&lt;br /&gt;Next month will be a perfect source of inspiration since i will attend the BizTalk 2009 Deep dive, can't wait.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-3096410278740482939?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/3096410278740482939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2009/05/new-years-resolution-revised_25.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/3096410278740482939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/3096410278740482939'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2009/05/new-years-resolution-revised_25.html' title='New years resolution, revised'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-2801200215169737485</id><published>2009-05-25T22:48:00.001+02:00</published><updated>2009-05-26T04:56:49.026+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle snippets</title><content type='html'>Below is a collection of snippets i've used during a project implementation. If you're working with Oracle, you might be able to gain some quick insight how you can use it for the benefit of your project.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Grant / permissions&lt;/strong&gt;&lt;br /&gt;GRANT ALL ON &lt;Package/View/etc&gt; TO &lt;user&gt;;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;PL/SQL&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Cursors&lt;br /&gt;&lt;br /&gt;CURSOR  c_orderlines    &lt;br /&gt;    IS &lt;br /&gt;        SELECT order_pk&lt;br /&gt;        FROM orders;&lt;br /&gt;BEGIN&lt;br /&gt;&lt;br /&gt;    -- !!turn off the notifications!!&lt;br /&gt;&lt;br /&gt;    v_process := 1;&lt;br /&gt;    v_id := 0;&lt;br /&gt;&lt;br /&gt;    DBMS_OUTPUT.put_line('Started @' || sysdate);&lt;br /&gt;&lt;br /&gt;    OPEN c_orderlines;&lt;br /&gt;    FETCH c_orderlines INTO v_id;&lt;br /&gt;    &lt;br /&gt;    WHILE c_orderlines%found LOOP&lt;br /&gt;&lt;br /&gt;    FETCH c_orderlines INTO v_id;&lt;br /&gt;&lt;br /&gt;    END LOOP;&lt;br /&gt;&lt;br /&gt;    CLOSE c_orderlines;&lt;br /&gt;&lt;br /&gt;END;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;System tables&lt;/strong&gt;&lt;br /&gt;all_tab_columns  This is like the syscolumns/systables in SQL Server&lt;br /&gt;all_source    This allow searches in all entities that exist &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Inline SQL&lt;/strong&gt;&lt;br /&gt;DECLARE &lt;br /&gt;   .....&lt;br /&gt;BEGIN&lt;br /&gt;END;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Retrieve the name of the package&lt;/strong&gt;&lt;br /&gt;$$PLSQL_UNIT&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;br /&gt;DBMS_OUTPUT.put_line&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Queries&lt;/strong&gt;&lt;br /&gt;Top selection: where rownum &lt; 5  &lt;br /&gt;&lt;br /&gt;http://www.oracle.com/technology/oramag/oracle/06-sep/o56asktom.html&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Statistical queries&lt;/strong&gt;&lt;br /&gt;select id as a, max(reference_id) keep ( dense_rank last order by order_creation_ts)  as b&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Variables – RowTypes&lt;/strong&gt;&lt;br /&gt;Variables defined as:&lt;br /&gt;c_orderlines%rowtype;&lt;br /&gt;allows usage in the PL/SQL by:&lt;br /&gt;c_orderlines.fieldx&lt;br /&gt;c_orderlines.fieldy&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Updating&lt;/strong&gt;&lt;br /&gt;-- this will check if the field 'x' has changed&lt;br /&gt;updating('long_desc')) THEN&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;usefull tools&lt;/strong&gt;&lt;br /&gt;Toad&lt;br /&gt;SQLPlus&lt;br /&gt;SQLPlusW&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Calling webservices from a database&lt;/strong&gt;&lt;br /&gt;http://mennan.kagitkalem.com/HowToCallWebServicesInsideOracleViaPLSQL.aspx&lt;br /&gt;&lt;br /&gt;ERRORS:&lt;br /&gt;No listener ==&gt; use the IPADRESS RATHER THAN THE NAME&lt;br /&gt;Action header ==&gt; do NOT set the Action header, this is obsolete&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Toad knowledge&lt;/strong&gt;&lt;br /&gt;Key combinations&lt;br /&gt;CTRL+T  Intellisense&lt;br /&gt;F9     execute, output in grid&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-2801200215169737485?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/2801200215169737485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2009/05/oracle-snippets.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/2801200215169737485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/2801200215169737485'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2009/05/oracle-snippets.html' title='Oracle snippets'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-3902789642162539998</id><published>2008-02-25T22:46:00.000+01:00</published><updated>2010-01-25T22:45:32.264+01:00</updated><title type='text'>I admit…i did not post any blogpost in 2008</title><content type='html'>&lt;p&gt;Sorry, i have no excuse and can only say…nice to be back ;)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-3902789642162539998?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/3902789642162539998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2008/02/i-admiti-did-not-post-any-blogpost-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/3902789642162539998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/3902789642162539998'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2008/02/i-admiti-did-not-post-any-blogpost-in.html' title='I admit…i did not post any blogpost in 2008'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-444100936751090544</id><published>2007-01-09T21:03:00.000+01:00</published><updated>2007-01-09T21:21:43.997+01:00</updated><title type='text'>Handige links</title><content type='html'>In het kader van nieuwe technieken is het handig om op de hoogte te blijven. Momenteel ben ik me in het .net 3.0 framework aan het verdiepen waarbij ik vooral kijk naar:&lt;br /&gt;&lt;br /&gt;* wcf&lt;br /&gt;* wf&lt;br /&gt;&lt;br /&gt;en hun relatie tov Biztalk en elkaar.&lt;br /&gt;&lt;br /&gt;Om een goede introductie te krijgen en een aantal handige overzichten te zien raad ik aan je in te schrijven voor de gratis (tot 2008!) e-learning's mbt het .net 3.0 framework&lt;br /&gt;&lt;br /&gt;[E-Learnings]&lt;br /&gt;https://www.microsoftelearning.com/eLearning/offerDetail.aspx?offerPriceId=109340&lt;br /&gt;&lt;br /&gt;Verder nog de MS site mbt de .net 3.0 onderdelen (vol met docs/presentaties etc/samples etc):&lt;br /&gt;&lt;br /&gt;[.Net 3.0 site]&lt;br /&gt;http://www.netfx3.com/default.aspx&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Veel plezier!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-444100936751090544?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/444100936751090544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2007/01/handige-links.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/444100936751090544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/444100936751090544'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2007/01/handige-links.html' title='Handige links'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-3309589965069014316</id><published>2006-10-19T20:21:00.000+02:00</published><updated>2009-05-26T05:03:23.579+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>Verdwijnen van relaties binnen SQL Server 2005</title><content type='html'>Omdat ik al meer dan eens heb gezocht naar een oplossing voor bovenstaand probleem (spontaan verdwijnen van relaties) heb ik nog eens op een aantal msdn sites gekeken. Hieronder een interessant stukje, samengevat:&lt;br /&gt;&lt;br /&gt;De diagram view alleen gebruiken om het schema te BEKIJKEN, NOOIT OM WIJZIGINGEN DOOR TE VOEREN.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;Dus:&lt;br /&gt;&lt;br /&gt;1) niet vanuit het diagram werken&lt;br /&gt;&lt;br /&gt;2) elke actie opslaan, zodat er zo min mogelijk tegelijk wordt opgeslagen na wijzigingen. Het is dus zo dat als er iets fout gaat tijdens het opslaan dat daardoor relaties/keys kunnen verdwijnen!&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Kort stuk uit een post mbt dit onderwerp:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Relationships between tables disappear without explanation in the&lt;br /&gt;&gt; database diagram using SQL Server 2005.&lt;br /&gt;&gt;&lt;br /&gt;&gt; Many thanks for any thoughts/questions on the topic![/color]&lt;br /&gt;If you press save for some table changes that fails half way, you can&lt;br /&gt;indeed lose constraints and foreign keys. There are several severe bugs&lt;br /&gt;with the Table Designer in Mgmt Studio. If you ever use it to develop&lt;br /&gt;changes, never press Save, but always generate change scripts and&lt;br /&gt;review these carefully.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[zie: http://www.thescripts.com/forum/thread503351.html]&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-3309589965069014316?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/3309589965069014316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2006/10/sql-server-verdwijnen-van-relaties.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/3309589965069014316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/3309589965069014316'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2006/10/sql-server-verdwijnen-van-relaties.html' title='Verdwijnen van relaties binnen SQL Server 2005'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-3936718895877159477</id><published>2006-10-13T22:16:00.000+02:00</published><updated>2009-05-26T05:04:04.775+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>[Feature] Dotnet</title><content type='html'>You may receive a "Could not find file 'Microsoft.Windows.CommonLanguageRuntime" error message when you build a solution of a Visual Basic 2005 Windows Application project in Visual Studio 2005&lt;br /&gt;&lt;br /&gt;Op deze melding kwam ik....vrijdag 5 voor half 6, toen ik net na een tijd programmeren iets wilde testen.....Aaah, waarom?&lt;br /&gt;&lt;br /&gt;Nou.......hou je vast&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;Er zijn 2 mogelijke oorzaken en 1 gegarandeerde oorzaak:&lt;br /&gt;&lt;br /&gt;feit: De solution is met VB.Net 2005 gemaakt&lt;br /&gt;&lt;br /&gt;mogelijkheid 1: De solution bevat een project met een referentie naar een ander project in dezelfde solution&lt;br /&gt;&lt;br /&gt;==&gt; geen oplossing :( , gebruik file references volgens MS&lt;br /&gt;&lt;br /&gt;http://support.microsoft.com/?kbid=907757&lt;br /&gt;&lt;br /&gt;mogelijkheid 2: Een van een projecten die in de references is opgenomen is een keer gepublished&lt;br /&gt;&lt;br /&gt;==&gt;  Ga dan naar je project properties / security /&lt;br /&gt;&lt;br /&gt;         uitvinken van: Enable click one security settings&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-3936718895877159477?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/3936718895877159477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2006/10/feature-dotnet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/3936718895877159477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/3936718895877159477'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2006/10/feature-dotnet.html' title='[Feature] Dotnet'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-994051239750184618</id><published>2006-10-13T22:13:00.000+02:00</published><updated>2009-05-26T05:04:34.387+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>SQL Server 2005 installatie issues</title><content type='html'>Een remote connection maken met SQL Server 2005 kan default niet omdat er tijdens de installatie van SQL Server 2005 een aantal settings dit DEFAULT niet toelaten (TCP/IP is disabled, Remote connections is disabled, SQL Browser staat standaard uit etc)&lt;br /&gt;&lt;br /&gt;Deze post beschrijft mijn bevindingen en wat ik heb gedaan om het probleem te verhelpen....&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt; &lt;br /&gt;&lt;br /&gt;eerst een korte introductie in wat er gebeurd tijdens de installatie van VS.Net 2005, SQL Server 2005, ASP.Net 2.0 met de bestaande software, en wat is nog niet correct als default geinstalleerd:&lt;br /&gt;&lt;br /&gt;[1] SQL Server 2005, installeert met een default onlogische configuratie; remote connections kunnen uit staan, TCP/IP als protocol is disabled, en de configuratie van SQL Server 2005 wordt soms om zeep geholpen&lt;br /&gt;&lt;br /&gt;http://www.datamasker.com/SSE2005_NetworkCfg.htm (opsomming van problemen en oplossingen mbt SQL Svr 2005 Configuratie)&lt;br /&gt;&lt;br /&gt;http://support.microsoft.com/?id=905618 (opsomming van problemen en oplossingen mbt SQL Svr 7 na installatie SQL Svr 2005)&lt;br /&gt;&lt;br /&gt;[2] VS.Net 2005 installeert SQL Express en laat in de Machine config een setting achter waarbij er een verbinding met de LocalHost wordt gemaakt. Bij het gebruiken van features in ASP.Net 2.0 waarbij een database gebruikt kunnen worden (bijvoorbeeld webparts) zal er de machine config ervoor zorgen dat de local database worden gebruikt, wat vaak niet handig is en problemen kan veroorzaken!!!&lt;br /&gt;&lt;br /&gt;http://bloggingabout.net/blogs/arjen/archive/2006/02/09/SQL_Server_Error_26.aspx (oplossing bij problemen met ASPNet en SQL Server 2005, door een bug in de machine config bij installatie VS.Net 2005)&lt;br /&gt;&lt;br /&gt;SQL Server 2005 heeft de volgende tools:&lt;br /&gt;&lt;br /&gt;* SQL Server Management Studio; dit is de beheertool van de database vergelijkbaar met de enterprise manager&lt;br /&gt; &lt;br /&gt;* [1] Configuration Tools\SQL Server Surface Area Configuration; instellen van de verschillende services en instellingen&lt;br /&gt;&lt;br /&gt;* [2] Configuration Tools\SQL Server Configuration Manager; low level manier om instellingen te doen (verbindingen en properties), en het herstarten van de services&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-994051239750184618?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/994051239750184618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2006/10/sql-server-2005-installatie-issues.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/994051239750184618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/994051239750184618'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2006/10/sql-server-2005-installatie-issues.html' title='SQL Server 2005 installatie issues'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-3480837617501788732</id><published>2006-10-13T22:08:00.000+02:00</published><updated>2009-05-26T05:04:48.805+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tooling'/><title type='text'>OR Mapper</title><content type='html'>Een databaselaag zelf maken kost veel tijd. Vandaar dat een OR/Mapper een nuttige toevoeging kan zijn om de Database laag te genereren. Als deze laag kan worden gegenereerd door een ORMapper zal het onderhoud niet meer in de code komen te liggen maar in de configuratie van de (gebruiksvriendelijke tool).&lt;br /&gt;&lt;br /&gt;Verder is het met de nieuw ObjectSource databinding mogelijk om eenvoudig met objecten in de applicatie te werken. Het gebruik van een tool zal de onderhoudbaarheid en duidelijkheid verhogen.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt; &lt;br /&gt;&lt;br /&gt;Voor de OR Mapper gaat mijn voorkeur uit naar:&lt;br /&gt;&lt;br /&gt;* LLBLGen, dit is een van oorsprong open source tool met een commerciele variant (Pro) waarbij het uitgangspunt is om een structuur te genereren op basis van templates. Hierdoor is deze tool inzetbaar dmv custom templates, meertalig en is het ook mogelijk deels de stubs van de businesslaag te genereren en features die beschikbaar zijn in VS.Net / SQL Server 2005 te benutten.&lt;br /&gt;&lt;br /&gt;Met de huidige release is er reeds ondersteuning voor VS.Net / SQL Server 2005, echter versie 2.0 is op komst. Aan de support afdeling is een verzoek om versie 2.0 te evalueren, aangezien de beta alleen voor klanten beschikbaar is. De huidige policy is het aanschaffen van versie 1 en een upgrade naar versie 2 te doen (in totaal 300 euro).&lt;br /&gt;&lt;br /&gt;http://www.llblgen.com/defaultgeneric.aspx&lt;br /&gt;&lt;br /&gt;Afgevallen zijn:&lt;br /&gt;&lt;br /&gt;* Objectspaces geimplementeerd door Paul Wilson toen microsoft dit nog aan het ontwikkelen was. Hiervoor heeft paul een eerste opzet gemaakt. Het verhaal objectspaces is echter geschrapt en de tool van Paul wilson is een te simpele niet fijn werkbare tool en ondersteund alleen one-way generation (verder is objectspaces door microsoft geschrapt) en voorzien van een aantal fouten.&lt;br /&gt;&lt;br /&gt;* LINQ, dit is een nieuwe feature in het nieuwe WinFX systeem, maar echter nog lang niet definitief. Hierdoor zou er lang gewacht moeten worden op een volledige niet Beta versie, en biedt het bovendien nog niet de mogelijkheden die we nu nodig hebben (DLINQ etc). Verder is het DLINQ op attributes gebaseerd met als uitgangspunt meerdere databases makkelijk te kunnen ondersteunen. Het werken met attributes is iets waar de meeste OR Mappers van zijn afgestapt, dus het is mogelijk de huidige implementatie in de Beta herzien zal worden.&lt;br /&gt;&lt;br /&gt;===&gt; LINQ is momenteel al in een vergevorderd stadium en hier zal ik later nog eens naar kijken.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Voorbeelden gebruik LLBLGEN:&lt;br /&gt;&lt;br /&gt;Ophalen van een object&lt;br /&gt;&lt;br /&gt;Dim customer As New CustomerEntity("keyvalue") ==&gt; dit instantieert een Customer op basis van de primairy key 'keyvalue'&lt;br /&gt;&lt;br /&gt;Opslaan van een object&lt;br /&gt;&lt;br /&gt;customer.Fax = "(604)555-1233"&lt;br /&gt;customer.Phone = "(604)555-1234"&lt;br /&gt;customer.PostalCode = "90211"&lt;br /&gt;' save it&lt;br /&gt;customer.Save()&lt;br /&gt;&lt;br /&gt;Gerelateerde data ophalen&lt;br /&gt;&lt;br /&gt;Dim product As New ProductEntity(10)&lt;br /&gt;Dim orders As OrderCollection = product.Orders&lt;br /&gt;&lt;br /&gt;Ophalen verzamelingen&lt;br /&gt;&lt;br /&gt;Dim orders As New OrderCollection()&lt;br /&gt;orders.GetMulti(Nothing) ' all orders will be read into the collection&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-3480837617501788732?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/3480837617501788732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2006/10/or-mapper.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/3480837617501788732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/3480837617501788732'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2006/10/or-mapper.html' title='OR Mapper'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-9023086499308535290</id><published>2006-10-13T22:03:00.000+02:00</published><updated>2009-05-26T05:04:59.099+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>SQL Database Naming Convention</title><content type='html'>Van naming conventions mbt code zijn er legio voorbeelden. Hieronder een door mij gebruikte database naming convention.&lt;br /&gt;&lt;br /&gt;Hierbij is nog niet rekening gehouden met een aantal (nog onbekende features in SQL Svr 2005):&lt;br /&gt;&lt;br /&gt;    * naamgeving .net assemblies in de CLR van SQL Server (niet relevant in eerste instantie)&lt;br /&gt;    * rules in SQL Server (onbekend wat dit is, niet relevant in eerste instantie)&lt;br /&gt;    * overige management zaken (DTS etc, wat nu ook nog niet speelt...)&lt;br /&gt;&lt;br /&gt;Gebaseerd op: http://vyaskn.tripod.com/object_naming.htm&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;[Algemeen]&lt;br /&gt;&lt;br /&gt;Geen spaties&lt;br /&gt;&lt;br /&gt;CamelCasing&lt;br /&gt;&lt;br /&gt;[Tabellen]&lt;br /&gt;&lt;br /&gt;De naam van de tabel geeft het entiteit soort weer wat er in wordt opgeslagen (bijvoorbeeld: 'Customer'). Omdat er meerdere 'Customer' objecten worden opgeslagen wordt er een meervoudsvorm aangenomen:&lt;br /&gt;&lt;br /&gt;customer ==&gt; 'Customer'.&lt;br /&gt;&lt;br /&gt;order storage ==&gt; 'Order'.&lt;br /&gt;&lt;br /&gt;error messages ==&gt; 'ErrorMessage'.&lt;br /&gt;&lt;br /&gt;[Views]&lt;br /&gt;&lt;br /&gt;Een view op tabel Customers en Orders wordt is een combinatie van de tabellen, deze informatie wordt als view aan elkaar geplakt. Het is dan ook logisch om de namen aan elkaar te plakken in 'CustomersOrders'&lt;br /&gt;&lt;br /&gt;[Stored procedures]&lt;br /&gt;&lt;br /&gt;De prefix sp_ is evil! Hierdoor zal Sql server EERST in de master tabel kijken en vervolgens in de huidige database (performance technisch niet handig. Verder zijn stored procedures gebaseerd op acties. Dus laat de acties ook terug komen in de naam:&lt;br /&gt;&lt;br /&gt;Toevoegen van klantgegevens, vrij vertaald 'insert a customer his information' zou dan heten ==&gt; InsertCustomerInfo&lt;br /&gt;&lt;br /&gt;[Triggers]&lt;br /&gt;&lt;br /&gt;Triggers zijn in feite stored procedures die op basis van 'events' (toevoegen van data in een tabel) worden gedefinieerd. Hierbij is het goed mogelijk dat er meerdere triggers zijn met verschillende functies. In deze zou ik willen afwijken van de standaard in de gebruikte bron. Hier zou ik de acties in 3 letterige vorm uitdrukken met de variaties:&lt;br /&gt;&lt;br /&gt;Orders_Upd&lt;br /&gt;&lt;br /&gt;Orders_Del&lt;br /&gt;&lt;br /&gt;Orders_Ins&lt;br /&gt;&lt;br /&gt;Orders_IoU ==&gt; Instead of Update (als bijvoorbeeld een actie voor de update zou willen doen)&lt;br /&gt;&lt;br /&gt;[Columns]&lt;br /&gt;&lt;br /&gt;Gebruik de camelcasing. Schrijf de ID uit, zoals in onderstaande voorbeelden:&lt;br /&gt;&lt;br /&gt;CustomerID&lt;br /&gt;&lt;br /&gt;CustomerFirstName&lt;br /&gt;&lt;br /&gt;CustomerAddress&lt;br /&gt;&lt;br /&gt;Als er velden van het datatype Xml worden gedefinieerd, dit type er dan ook achter vermelding. Dus Xml waarin een fiets wordt geschreven krijgt de veldnaam:&lt;br /&gt;&lt;br /&gt;FietsXml ==&gt; dit geeft duidelijkheid over wat er in dit type wordt opgeslagen.&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-9023086499308535290?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/9023086499308535290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2006/10/sql-database-naming-convention.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/9023086499308535290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/9023086499308535290'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2006/10/sql-database-naming-convention.html' title='SQL Database Naming Convention'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-6259617978413347341</id><published>2006-10-13T22:00:00.000+02:00</published><updated>2009-05-25T23:11:03.904+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>SQL Server 2005 Diagramming</title><content type='html'>Tip mbt SQL Server 2005. Vanuit het diagram wijzigingen doorvoeren heeft soms als gevolg dat er spontaan relaties verdwijnen!&lt;br /&gt;&lt;br /&gt;De oorzaak heb ik nog niet kunnen achterhalen....hier kom ik ooit nog op terug hoop ik...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-6259617978413347341?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/6259617978413347341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2006/10/sql-server-2005-diagramming.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/6259617978413347341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/6259617978413347341'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2006/10/sql-server-2005-diagramming.html' title='SQL Server 2005 Diagramming'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-7584058778405928094</id><published>2006-10-13T21:52:00.000+02:00</published><updated>2009-05-26T05:09:15.389+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>SQL Server 2005 issues</title><content type='html'>In de nieuwe versie van Sql Server is Xml + Xsd (schema) een belangrijk begrip. Enerzijds wordt het Xsd gebruikt om de Xml in te beschrijven, anderszijds om hiertegen te valideren. &lt;br /&gt;&lt;br /&gt;Een van de x-aantal nieuwe features in Sql Server 2005 is de introductie van het datatype Xml. Hiermee kan xml direct in de database worden opgeslagen zonder lastige mappings te hoeven maken naar relationele data. &lt;br /&gt;&lt;br /&gt;Het gebruik van het Xml datatype, lijkt extra aantrekkelijk omdat er tevens Xsd schema's aan kolommen gekoppeld kunnen worden zodat afzonderlijke delen kunnen worden gevalideerd.....MAAR.....hier wordt echter gelijk duidelijk waar de Xml ondersteuning nog wat aandacht zou mogen krijgen van MS:&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;- schema wijzigingen/schema beheer is alleen mogelijk dmv T-SQL&amp;nbsp;(queries schrijven dus)&lt;br /&gt;&lt;br /&gt;- schema evolution is niet ondersteund, tenzij er afgeweken wordt van de namespace, of een version wordt gedefinieerd per xml versie&lt;br /&gt;&lt;br /&gt;- file links worden niet ondersteund, alle referenties moeten in 1 schema komen (hier is een tool voor om dit te realiseren)&lt;br /&gt;&lt;br /&gt;De schema's zijn vaak nogal aan wijzigingen onderhevig. Als we toch willen valideren door middel van het schema moeten we dus&amp;nbsp;zorgen dat het schema altijd actueel is in de database (dit is toch al een eis). Hiervoor biedt een simpele update van het schema niet voldoende functionaliteit omdat de Xml data dan nog niet geldig is. Dus aan de standaard features hebben we niet genoeg.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;U&gt;Er zal gekozen moeten worden uit:&lt;/U&gt;&lt;br /&gt;&lt;br /&gt;*&amp;nbsp;validatie die wordt gedaan in de database&lt;br /&gt;&lt;br /&gt;Zolang er geen tool van MS is, zal er een&amp;nbsp;'frameworkje'/'mechanisme' moeten komen die zorgt dat het wijzigen van het schema enigzins automatisch gaat. (uitvoeren, genereren van SQL script) Dit is een minimale inspanning maar zorgt voor de meeste flexibiliteit en zekerheid.&lt;br /&gt;&lt;br /&gt;* valideren in de sofware (hierdoor is er geen afhankelijkheid met het schema in de database, maar kan voor inconsistente data zorgen)&lt;br /&gt;&lt;br /&gt;Een 'wrapper' laag om de database zal dan extra validatie functionaliteit krijgen die alleen maar werkt indien de software wordt gebruikt maar niet uitsluit dat er ongeldige Xml in de database komt.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Ps; &lt;br /&gt;&lt;br /&gt;Het is toch al geen feest door een aantal andere 'features' in 2005:&lt;br /&gt;&lt;br /&gt;Encoding ==&amp;gt; intern in Sql server 2005 UTF-16. De Xml die in UTF-8 wordt aangeleverd zal altijd geconverteerd moeten worden, anders wordt deze niet begrepen...&lt;BR&gt;&lt;br /&gt;&lt;br /&gt;Het formaat van Time zones is nogal bizar, de GMT moet nl worden opgegeven op een creatieve manier; dateformat: 2005-01-01 ==&amp;gt; 2005-01-01Z of 2005-01-01+01:00&lt;BR&gt;Time format: 2005-1-1 ==&amp;gt; 2005-01-01&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-7584058778405928094?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/7584058778405928094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2006/10/sql-server-2005-issues.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/7584058778405928094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/7584058778405928094'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2006/10/sql-server-2005-issues.html' title='SQL Server 2005 issues'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32172410.post-115468943083226823</id><published>2006-08-04T13:02:00.000+02:00</published><updated>2006-10-13T21:48:24.844+02:00</updated><title type='text'>Welkom</title><content type='html'>Hier zal ik mijn ervaringen / bevindingen neerzetten die ik tijdens het ontwikkelen tegen kom....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32172410-115468943083226823?l=snefs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snefs.blogspot.com/feeds/115468943083226823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://snefs.blogspot.com/2006/08/welkom_04.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/115468943083226823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32172410/posts/default/115468943083226823'/><link rel='alternate' type='text/html' href='http://snefs.blogspot.com/2006/08/welkom_04.html' title='Welkom'/><author><name>Sander Nefs</name><uri>http://www.blogger.com/profile/01266584947996077874</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/-7exRfvbTGdw/TefFU_9rNLI/AAAAAAAAAPk/lQXr_QMhdec/s220/ME3.jpg'/></author><thr:total>0</thr:total></entry></feed>
