<?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-7345719</id><updated>2011-10-12T03:11:17.811+01:00</updated><title type='text'>Ben Cops</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default?start-index=101&amp;max-results=100'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>109</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7345719.post-6235605027827708488</id><published>2010-06-29T16:57:00.001+01:00</published><updated>2010-06-29T16:58:16.685+01:00</updated><title type='text'>SQL Azure; under the hood</title><content type='html'>&lt;blockquote&gt;the basic setup in SQL Azure is this; each database occupies multiple nodes through a single primary database that processes your queries and two secondary copies that provide HA (and the guaranteed %99.9 SLA). If the primary fails for any reason, secondary copies pick up immediately and carry on. When it comes to computational capacity; SQL Azure cluster contain 100s of nodes that provides massive scale. Each node serves many tenants. Through load balancing and throttling mechanisms we keep the clustered balanced.&lt;/blockquote&gt;&lt;br /&gt;&lt;a href="http://microsoftpdc.com/Sessions/SVC12"&gt;http://microsoftpdc.com/Sessions/SVC12&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(from this &lt;a href="http://social.msdn.microsoft.com/Forums/en/ssdsgetstarted/thread/48923938-e8fb-4c40-885a-be2b79fe0b89"&gt;thread&lt;/a&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-6235605027827708488?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/6235605027827708488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=6235605027827708488' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/6235605027827708488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/6235605027827708488'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2010/06/sql-azure-under-hood.html' title='SQL Azure; under the hood'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-8049947904450520381</id><published>2010-06-23T10:33:00.001+01:00</published><updated>2010-06-23T10:34:33.247+01:00</updated><title type='text'>BizTalk support for SysPrep</title><content type='html'>Back in 2005 or so I spent a chunk of time trying to make BizTalk work with SysPrep so that we could clone developer images for a BizTalk development team.  At the point at which I was writing scripts to edit SIDs in the database, I gave up.  &lt;br /&gt;&lt;br /&gt;Its nice to see then, that this is now a supported procedure!  Ace:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee358636(BTS.10).aspx"&gt;http://msdn.microsoft.com/en-us/library/ee358636(BTS.10).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Sysprep creates a VHD of a BizTalk Server 2009 installation (including the operating system and all prerequisites) for quick deployment on other virtual machines. An image created using Sysprep will choose a new computer name in order to join the domain the first time it starts. To get BizTalk Server running properly, it is necessary to update various instances of the computer name that are stored in the registry and databases.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-8049947904450520381?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/8049947904450520381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=8049947904450520381' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/8049947904450520381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/8049947904450520381'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2010/06/biztalk-support-for-sysprep.html' title='BizTalk support for SysPrep'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-6836338858758174724</id><published>2010-05-18T15:26:00.001+01:00</published><updated>2010-05-18T15:26:58.728+01:00</updated><title type='text'>BizTalk Support Cycles</title><content type='html'>&lt;p&gt;Not just BizTalk in fact, the whole lot, although this gets you straight to BTS.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://support.microsoft.com/lifecycle/search/default.aspx?sort=PN&amp;amp;alpha=biztalk&amp;amp;Filter=FilterNO"&gt;http://support.microsoft.com/lifecycle/search/default.aspx?sort=PN&amp;amp;alpha=biztalk&amp;amp;Filter=FilterNO&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Took me a long time to find this!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-6836338858758174724?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/6836338858758174724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=6836338858758174724' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/6836338858758174724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/6836338858758174724'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2010/05/biztalk-support-cycles.html' title='BizTalk Support Cycles'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-1278051823029635862</id><published>2010-05-17T18:21:00.003+01:00</published><updated>2010-05-17T19:31:52.060+01:00</updated><title type='text'>Introducing NQueue</title><content type='html'>&lt;a href="http://nqueue.codeplex.com/" title="http://NQueue.codeplex.com/"&gt;http://NQueue.codeplex.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I needed a batch processing framework for reliable scheduling and execution of jobs with no single point of failure.&amp;nbsp; There really wasn’t one available (that I could find anyway) so I wrote one.&amp;nbsp; It borrows elements of its architecture from BizTalk and other places and uses a competing consumers model to run both the work and the scheduling aspect. Its pretty stable, even if elements of the UI are a bit kooky.&amp;nbsp; Its available on codeplex now, take a look.&amp;nbsp; &lt;/p&gt;&lt;p&gt;Codeplex site here, with full source code and installers &lt;a href="http://nqueue.codeplex.com/" title="http://NQueue.codeplex.com/"&gt;http://NQueue.codeplex.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Documentation here &lt;a href="http://nqueue.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=122325"&gt;NQueue Overview.docx&lt;/a&gt;&lt;/p&gt;&lt;u&gt;Project Description&lt;/u&gt;   &lt;br /&gt;NQueue is intended to provide a work scheduling and execution framework and toolset that contains no single point of failure. Using a farm of servers and a clustered SQL server backend, multiple NQueue windows services compete to evaluate configured schedules and execute work NQueue is a distributed system written in C# composed of the following high level components; &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Admin tool – A windows form application that enables add and delete operations against the various artefacts in a NQueue installation (jobs, schedules, host instances). This would typically be used to view or change the system configuration although it can also be used to immediately enqueue items of work for execution (during testing for example) &lt;/li&gt;&lt;li&gt;NQueue Monitor website – A website allowing operations and support staff to view the progress of configured jobs. They may also pause or disable job instances from this tool. &lt;/li&gt;&lt;li&gt;SQL Database – all state for the system is stored in a central (clustered) SQL database. &lt;/li&gt;&lt;li&gt;Windows services – NQueue processing services running on any number of configured servers competing to evaluate job schedules and execute job code. &lt;/li&gt;&lt;li&gt;Client API – A .net class library that users can consume/inherit from to allow their job code to interact with the framework. &lt;/li&gt;&lt;li&gt;NQueueCmd – command line enqueuing of work to execute immediately. &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-1278051823029635862?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/1278051823029635862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=1278051823029635862' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/1278051823029635862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/1278051823029635862'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2010/05/introducing-nqueue.html' title='Introducing NQueue'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-8026712455006258810</id><published>2010-05-17T12:59:00.001+01:00</published><updated>2010-05-17T12:59:02.995+01:00</updated><title type='text'>Lap Round Azure – Steve Marx</title><content type='html'>&lt;p&gt;I’m on the Azure self paced course at the moment and enjoyed this overview from Steve Marx&lt;/p&gt;  &lt;p&gt;&lt;a href="http://live.visitmix.com/MIX10/Sessions/SVC04"&gt;http://live.visitmix.com/MIX10/Sessions/SVC04&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Most impressed with this, which is his slide deck.&amp;#160; A single SVG file which is zoomed around while he talks, all served out of Azure.&amp;#160; Very, very cool!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.smarx.com/posts/my-slides-from-mix10-lap-around-the-windows-azure-platform"&gt;http://blog.smarx.com/posts/my-slides-from-mix10-lap-around-the-windows-azure-platform&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/7345719-8026712455006258810?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/8026712455006258810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=8026712455006258810' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/8026712455006258810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/8026712455006258810'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2010/05/lap-round-azure-steve-marx.html' title='Lap Round Azure – Steve Marx'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-5744414720937529223</id><published>2010-03-25T16:30:00.002Z</published><updated>2010-03-25T16:33:04.293Z</updated><title type='text'>Every BizTalk install is different</title><content type='html'>here's a new one - a BizTalk server in a different domain to the SQL server.&lt;br /&gt;SSO configuration fails with Login failed for user &lt;user&gt;, even though the account is correct, the correct username and password is supplied and the user is in the right group (which you can see in SQL server).&lt;/user&gt;&lt;br /&gt;&lt;br /&gt;The state parameter to the error gives a further clue: state 12 =&amp;nbsp;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: 'Courier New'; font-size: small;"&gt;Valid login but server access failure&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/sql_protocols/archive/2006/02/21/536201.aspx"&gt;http://blogs.msdn.com/sql_protocols/archive/2006/02/21/536201.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In our case it was because the groups were set up as Domain Local Groups from the domain that SQL wasn't in - I assume this causes the issue because permissions can't be assigned to the group because its local to another domain. &amp;nbsp;Changing the groups to domain global fixed it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Calibri; font-size: x-small;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://support.microsoft.com/kb/872924"&gt;http://support.microsoft.com/kb/872924&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;If you configure BizTalk Server to use domain groups, you must create and specify &lt;b&gt;domain global groups&lt;/b&gt;&lt;/blockquote&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Calibri; font-size: x-small;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://support.microsoft.com/kb/884417"&gt;http://support.microsoft.com/kb/884417&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;span class="apple-style-span"&gt;If you plan to use one domain for all your servers and no Wide Area Network (WAN) exists, we recommend that you use &lt;b&gt;domain local groups&lt;/b&gt;.&lt;/span&gt;&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;If you plan to have a multiple-domain topology, and the following conditions are true, we recommend that you use &lt;b&gt;domain global groups&lt;/b&gt;:&lt;br /&gt;&lt;ul type="disc"&gt;&lt;li class="MsoNormal" style="line-height: 12.0pt; mso-list: l0 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 36.0pt;"&gt;The SQL Server-based server is in      a data center.&lt;br /&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; line-height: 12.0pt; mso-list: l0 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 36.0pt;"&gt;You have a perimeter network (also known as      DMZ, demilitarized zone, and screened subnet).&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;br /&gt;So, the recommendation is Domain Local Groups for single domain installs, and Domain Global Groups for multi-domain installs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-5744414720937529223?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/5744414720937529223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=5744414720937529223' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/5744414720937529223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/5744414720937529223'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2010/03/every-biztalk-install-is-different.html' title='Every BizTalk install is different'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-4028643459590664859</id><published>2009-10-19T16:10:00.001+01:00</published><updated>2009-10-19T16:10:52.104+01:00</updated><title type='text'>BizTalk DR – marked backups and log shipping process explained</title><content type='html'>&lt;p&gt;For some reason the MSDN docs around this are a bit grim – Nick Heppleston has a great explanation of the process here;&lt;/p&gt;  &lt;h5&gt;   &lt;h5&gt;&lt;a href="http://www.modhul.com/2009/06/29/configuring-biztalk-for-disaster-recovery-part-1/"&gt;Configuring BizTalk Backup for Disaster Recovery – Part 1&lt;/a&gt;&lt;/h5&gt;    &lt;p&gt;Read more: &lt;a href="http://www.modhul.com/2009/06/29/configuring-biztalk-for-disaster-recovery-part-1"&gt;http://www.modhul.com/2009/06/29/configuring-biztalk-for-disaster-recovery-part-1&lt;/a&gt;&lt;/p&gt;&lt;/h5&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-4028643459590664859?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/4028643459590664859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=4028643459590664859' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/4028643459590664859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/4028643459590664859'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2009/10/biztalk-dr-marked-backups-and-log.html' title='BizTalk DR – marked backups and log shipping process explained'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-8100272850156906192</id><published>2009-09-23T09:59:00.002+01:00</published><updated>2009-10-15T15:36:49.876+01:00</updated><title type='text'>64bit XLANG host memory usage, virtualisation overhead &amp; optimising filegroups for the BizTalk databases</title><content type='html'>Have a look at Ewan Fairweather’s very interesting webcast on &lt;a href="http://blogs.msdn.com/ewanf/archive/2009/08/31/technet-webcast-biztalk-server-2009-performance-on-hyper-v-and-physical-deployments-level-300.aspx" target="_blank"&gt;BizTalk 2009 performance&lt;/a&gt;.&amp;nbsp; He says they saw a decrease in performance moving from 32bit to 64bit because the default settings for memory allowance for the XLANG hosts (unchanged from 32bit to 64bit) cause excessive dehydration (~70 orchestrations a second, when none should be dehydrated) at memory usage levels &lt;i&gt;appropriate for 64 bit processes&lt;/i&gt;.&amp;nbsp; By optimising these he saw a 33% increase in performance, so if you’re running BizTalk on 64bit this is definitely something to look at during the test and tune cycle.&lt;br /&gt;&lt;table border="1" cellpadding="2" cellspacing="0" style="width: 400px;"&gt;&lt;tbody&gt;&lt;tr&gt;       &lt;td valign="top" width="133"&gt;&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;&lt;b&gt;Default&lt;/b&gt;&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;&lt;b&gt;Optimised&lt;/b&gt;&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="133"&gt;&lt;b&gt;VirtualMemory ThrottlingCritera&lt;/b&gt;&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="133"&gt;OptimalUsage&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;900&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;6000&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="133"&gt;MaximalUsage&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;1300&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;6300&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="133"&gt;&lt;b&gt;PrivateMemory ThrottlingCriteria&lt;/b&gt;&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="133"&gt;OptimalUsage&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;50&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;700&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="133"&gt;MaximalUsage&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;350&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;1000&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="133"&gt;&lt;b&gt;PhysicalMemory ThrottlingCriteria&lt;/b&gt;&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;disabled&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Descriptions of the settings &lt;a href="http://msdn.microsoft.com/en-us/library/aa560586%28BTS.10%29.aspx" target="_blank"&gt;here&lt;/a&gt;.&lt;br /&gt;Another interesting point is that they showed scaling from 2 to 3, 4 BizTalk servers &lt;i&gt;all doing the same work&lt;/i&gt; with one messagebox server caused a performance decrease due to excessive polling on the database.&amp;nbsp; Performance increased for 3+ BizTalk servers once 3 messagebox SQL servers were used.&lt;br /&gt;They also tested physical vs virtual server performance and saw that virtualisation carries the following overhead:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Throughput is &lt;b&gt;down by 13%&lt;/b&gt; &lt;/li&gt;&lt;li&gt;Latency is &lt;b&gt;up by 15%&lt;/b&gt; &lt;/li&gt;&lt;/ul&gt;One of the other items pointed out is a SQL script that segregates out various objects in the messagebox schema to different file groups.&amp;nbsp; This caused significant performance improvements.&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc594529%28BTS.10%29.aspx" target="_blank"&gt;Optimising Filegroups for the Databases&lt;/a&gt;&lt;br /&gt;Also some further links of interest:&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=24660797-0C8F-4687-9D5F-B76D99B37EC2&amp;amp;displaylang=en" target="_blank"&gt;BizTalk Server 2009 Performance Optimization Guide&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=46A77327-AFFB-4CA2-9451-67912BABBB03&amp;amp;displaylang=en" target="_blank"&gt;Microsoft BizTalk Server 2009 Operations Guide&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=0582BC67-0BEF-4A0A-99CF-4408A111C4E3&amp;amp;displaylang=en" target="_blank"&gt;BizTalk Server 2009 Hyper-V Guide&lt;/a&gt;&lt;br /&gt;&lt;a href="http://seroter.wordpress.com/2009/04/02/interview-series-four-questions-with-ewan-fairweather/"&gt;Richard Seroter - Interview with Ewan Fairweather&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-8100272850156906192?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/8100272850156906192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=8100272850156906192' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/8100272850156906192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/8100272850156906192'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2009/09/64bit-xlang-host-memory-usage.html' title='64bit XLANG host memory usage, virtualisation overhead &amp;amp; optimising filegroups for the BizTalk databases'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-2862980884380066463</id><published>2009-09-08T17:41:00.003+01:00</published><updated>2009-09-10T09:34:12.922+01:00</updated><title type='text'>Timezone error in ESB toolkit 2.0 - Input string was not in a correct format</title><content type='html'>Well done to Payal for working this one out.&lt;br /&gt;When you look at the portal webpage on a computer set to the Indian timezone offset (5.5) rather than the UK (currently 1) you get the following error&lt;br /&gt;&lt;br /&gt;&lt;code&gt;Input string was not in a correct format. &lt;br /&gt;Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. &lt;br /&gt;&lt;br /&gt;Exception Details: System.FormatException: Input string was not in a correct format.&lt;br /&gt;&lt;br /&gt;Source Error: &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Line 19:             if (!string.IsNullOrEmpty(tzoqry))&lt;br /&gt;Line 20:                 &lt;br /&gt;Line 21:                 Session["tzo"] =int.Parse ( tzoqry);&lt;br /&gt;Line 22:             if (Session["tzo"] == null) &lt;br /&gt;Line 23:                 //need this to make it work in production&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This is because the timezone is passed in the querystring you're redirected to:&lt;br /&gt;&lt;br /&gt;http://localhost/ESB.Portal/Home/Homepage.aspx?tzo=5.5&lt;br /&gt;&lt;br /&gt;And tzo=5.5 does not parse to an int.  If you look at it on a UK machine you're redirected to &lt;br /&gt;&lt;br /&gt;http://localhost/ESB.Portal/Home/Homepage.aspx?tzo=1&lt;br /&gt;&lt;br /&gt;And it works...&lt;br /&gt;&lt;br /&gt;BUG.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-2862980884380066463?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/2862980884380066463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=2862980884380066463' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/2862980884380066463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/2862980884380066463'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2009/09/timezone-error-in-esb-toolkit-20-input.html' title='Timezone error in ESB toolkit 2.0 - Input string was not in a correct format'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-6526446834080313328</id><published>2009-09-08T10:05:00.001+01:00</published><updated>2009-09-08T10:07:09.560+01:00</updated><title type='text'>ESB toolkit on 64bit</title><content type='html'>I started with this and gave up - better to go with the flow at the time.&lt;br /&gt;However, here's someone who persisted:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://rajsinghblog.wordpress.com/2009/06/29/installing-esb-toolkit-2-0-on-win-2003-64-bit-os/"&gt;Raj on installing ESB Toolkit 2.0 on Win 2003 64 bit OS&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-6526446834080313328?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/6526446834080313328/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=6526446834080313328' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/6526446834080313328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/6526446834080313328'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2009/09/esb-toolkit-on-64bit.html' title='ESB toolkit on 64bit'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-5087088502208314335</id><published>2009-07-13T15:01:00.002+01:00</published><updated>2009-09-08T17:25:47.944+01:00</updated><title type='text'>BizTalk ESB Toolkit 2.0 install notes</title><content type='html'>&lt;p&gt;There’s a few of these about but here’s the list of steps &lt;em&gt;I &lt;/em&gt;had to go through to get the &lt;a href="http://www.blogger.com/%E2%80%A2%20http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=bc86cf1e-ef29-4b19-95f7-388f64555090" target="_blank"&gt;thing&lt;/a&gt; installed.  This was on a from-scratch win2k3 32 bit virtual PC image.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Install win2k3 32bit, win2k3 sp2, sql 2k8, vstudio 2008, run windows update&lt;/li&gt;    &lt;li&gt;Install BizTalk 2009, uddi&lt;/li&gt;    &lt;li&gt;Install pre-reqs (.net 3.5 sp1, MSChart, vstudio 2008 sp1, visual studio sdk)&lt;/li&gt;    &lt;li&gt;Install SQL XML 4.0 SP1 from &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=228DE03F-3B5A-428A-923F-58A033D316E1&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=228DE03F-3B5A-428A-923F-58A033D316E1&amp;amp;displaylang=en&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Install Enterprise Library 4.1 (this appears to have dropped off the list of items to install in the pre-reqs in the documentation but its still required)&lt;/li&gt;    &lt;li&gt;Run ESB toolkit 2 installer&lt;/li&gt;    &lt;li&gt;Import C:\Program Files\Microsoft BizTalk ESB Toolkit 2.0\Microsoft.Practices.ESB.CORE.msi into the BizTalk admin console then run to install the msi itself&lt;/li&gt;    &lt;li&gt;Do the same with Microsoft.Practices.ESB.ExceptionHandling.msi, but set "overwrite resources" on when importing the msi file into the admin console &lt;/li&gt;    &lt;li&gt;Do the same with Microsoft.Practices.ESB.JMS.msi, but set "overwrite resources" on when importing the msi file into the admin console - I didn't run this via the command line&lt;/li&gt;    &lt;li&gt;Run &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;set-executionpolicy Unrestricted  &lt;br /&gt;From powershell to allow the management tool install script to run&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Extract ESBSource.zip to c:\program files\microsoft BizTalk esb toolkit 2.0\ESBSource&lt;/li&gt;    &lt;li&gt;Run sn -k Microsoft.Practices.ESB.snk in c:\program files\Microsoft BizTalk esb toolkit 2.0\keys&lt;/li&gt;    &lt;li&gt;Run c:\program files\microsoft BizTalk esb toolkit 2.0\ESBSource\Samples\Management Portal\Install\Scripts\Management_Install.cmd   &lt;br /&gt;(I had to reinstall MSChart here as it was complaining about not being able to reference the datavisualization controls in system.web.ui - ran the uninstall script, reinstalled MSChart, then ran the install script)&lt;/li&gt;    &lt;li&gt;Run c:\program files\microsoft BizTalk esb toolkit 2.0\bin\esbconfigurationtool.exe and configure, applying settings between each page. Set up the SSO configuration store&lt;/li&gt;    &lt;li&gt;Deploy the bam definitions using &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;"c:\program files\microsoft BizTalk Server 2009\tracking\Bm.exe " deploy-all -DefinitionFile:"C:\Program Files\Microsoft BizTalk ESB Toolkit 2.0\Bam\Microsoft.BizTalk.ESB.BAM.Itinerary.xml"&lt;/p&gt;  &lt;p&gt;"c:\program files\microsoft BizTalk Server 2009\tracking\Bm.exe " deploy-all -DefinitionFile:"C:\Program Files\Microsoft BizTalk ESB Toolkit 2.0\Bam\Microsoft.BizTalk.ESB.BAM.Exceptions.xml"&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Run &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation&amp;gt;ServiceModelReg.exe -r -y&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Because the app pool is running as a local account this applies &lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;871179"&gt;http://support.microsoft.com/default.aspx?scid=kb;en-us;871179&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;I set the above to Negotiate,NTLM - this cures the 403 - unauthorized error that was being generated when the portal called into the WCF service in the exceptionmanagement service&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Also - check this blog out for a load more fixes for the &lt;span style="font-style: italic;"&gt;endless problems with the portal website&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://esgraham.blogspot.com/2009_07_01_archive.html"&gt;Storage Bin for BizTalk 2004/2006/R2/2009 - July 2009 archive&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-5087088502208314335?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/5087088502208314335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=5087088502208314335' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/5087088502208314335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/5087088502208314335'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2009/07/biztalk-esb-toolkit-20-install-notes.html' title='BizTalk ESB Toolkit 2.0 install notes'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-2433974642892717364</id><published>2009-07-13T14:58:00.001+01:00</published><updated>2009-07-13T14:58:06.778+01:00</updated><title type='text'>SAML</title><content type='html'>&lt;p&gt;A presentation giving a great overview on SAML 2.0&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.oasis-open.org/committees/download.php/20520/SAMLV2.0-basics-Oct2006.pdf" href="http://www.oasis-open.org/committees/download.php/20520/SAMLV2.0-basics-Oct2006.pdf"&gt;http://www.oasis-open.org/committees/download.php/20520/SAMLV2.0-basics-Oct2006.pdf&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/7345719-2433974642892717364?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/2433974642892717364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=2433974642892717364' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/2433974642892717364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/2433974642892717364'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2009/07/saml.html' title='SAML'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-4738262294533422082</id><published>2009-06-29T09:31:00.001+01:00</published><updated>2009-06-29T09:31:06.983+01:00</updated><title type='text'>IIS Authentication and Access Control Diagnostics Tool</title><content type='html'>&lt;p&gt;This came in handy debugging the shonky install for the ESB Toolkit 2 &lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=E90FE777-4A21-4066-BD22-B931F7572E9A&amp;amp;displaylang=en" target="_blank"&gt;Authentication and Access Control Diagnostics 1.0 (x86)&lt;/a&gt;&lt;/h3&gt;  &lt;p&gt;I was getting an error in the event log; &lt;/p&gt;  &lt;p&gt;“The remote server returned an error: (401) Unauthorized”&lt;/p&gt;  &lt;p&gt;The tool pointed me at the ESB.Exceptions.Service virtual directory.&amp;#160; Loading the .svc file in here directly led me to change the authentication provider to “Negotiate,NTLM”&lt;/p&gt;  &lt;p&gt;C:\Inetpub\AdminScripts&amp;gt;cscript adsutil.vbs set w3svc/NTAuthenticationProviders    &lt;br /&gt;&amp;quot;Negotiate,NTLM&amp;quot;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-4738262294533422082?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/4738262294533422082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=4738262294533422082' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/4738262294533422082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/4738262294533422082'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2009/06/iis-authentication-and-access-control.html' title='IIS Authentication and Access Control Diagnostics Tool'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-8930879022637535312</id><published>2009-02-13T11:59:00.002Z</published><updated>2009-02-13T13:28:35.769Z</updated><title type='text'>SSIS Package fails on execute "Integration Services evaluation period has expired"</title><content type='html'>This was a nasty gotcha, requiring a MS support call and some mucking about.&lt;br /&gt;We had a number of SQL servers, half of which would not allow execution of SSIS packages via the .net API (so it seemed), although they would directly via DTExec - it looked like we'd had the eval copy of SSIS only (odd as SQL wasn't eval) installed on half the servers.&lt;br /&gt;Turns out the user executing the package didn't have access to the registry key which tells SSIS which version the software is licensed as.&lt;br /&gt;&lt;br /&gt;The registry node in question is under&lt;br /&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\DTS\Setup&lt;br /&gt;&lt;br /&gt;The nodes Edition and EditionType should say "Enterprise Edition (64-bit)" for the licensed copy (not sure what it would say for the eval copy).  But SSIS couldn't read this key and so assumed it was a trial version - permissions to the Users group had been removed as part of the server hardening.  Adding read access back for the account in question solved the problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-8930879022637535312?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/8930879022637535312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=8930879022637535312' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/8930879022637535312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/8930879022637535312'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2009/02/ssis-package-fails-on-execute.html' title='SSIS Package fails on execute &quot;Integration Services evaluation period has expired&quot;'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-3261851365052381259</id><published>2009-02-05T14:45:00.003Z</published><updated>2009-02-13T13:29:39.749Z</updated><title type='text'>BizTalk Administration group hub page hangs</title><content type='html'>Just had the group hub page repeatedly hanging while refreshing the following;&lt;br /&gt;"loading configuration of adapter handlers"&lt;br /&gt;&lt;br /&gt;From past experience, enumerating the adapter handlers requires access to the master secret service. Restarting this on our cluster sorted this out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-3261851365052381259?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/3261851365052381259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=3261851365052381259' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/3261851365052381259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/3261851365052381259'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2009/02/biztalk-administration-group-hub-page.html' title='BizTalk Administration group hub page hangs'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-8988012896401306780</id><published>2008-12-18T18:52:00.002Z</published><updated>2008-12-18T18:55:14.522Z</updated><title type='text'>Error on installing SSO on a clustered server</title><content type='html'>&lt;p&gt;The SSO service account needs Full Control permissions to the cluster as per the following instructions &lt;a href="http://msdn.microsoft.com/en-us/library/aa559783.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa559783.aspx&lt;/a&gt; (search for "Full Control")&lt;/p&gt;&lt;p&gt;Otherwise configuring SSO will fail (can't start the service) with the following in the application event log;&lt;/p&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;blockquote&gt;The application could not connect to MSDTC because of insufficient&lt;br /&gt;permissions. Please make sure that the identity under which the application&lt;br /&gt;is&lt;br /&gt;running has permission to access the cluster.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;Failed to read the needed name objects from the registry. Error Specifics:&lt;br /&gt;d:\nt\com\complus\dtc\dtc\msdtcprx\src\dtcinit.cpp:435, Pid: 2136&lt;br /&gt;No&lt;br /&gt;Callstack,&lt;br /&gt;CmdLine: "C:\Program Files\Common Files\Enterprise Single&lt;br /&gt;Sign-On\ENTSSO.exe"&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-8988012896401306780?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/8988012896401306780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=8988012896401306780' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/8988012896401306780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/8988012896401306780'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2008/12/error-on-installing-sso-on-clustered.html' title='Error on installing SSO on a clustered server'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-8131210937310742416</id><published>2008-09-05T10:15:00.002+01:00</published><updated>2008-09-05T10:20:15.693+01:00</updated><title type='text'>BizTalk 2009 - Announcement</title><content type='html'>&lt;p&gt;This just in from Microsoft;&lt;/p&gt;&lt;p&gt;BizTalk 2009 - Announcement&lt;br /&gt;&lt;br /&gt;On Friday Sept. 5, Microsoft will announce features for BizTalk Server 2009 and future releases plans to provide customers and partners with further clarification about what to expect. The two main highlights of this announcement are: BizTalk Server vNext (renaming, timing &amp;amp; features) and future plans (ship rhythm &amp;amp; high-level themes). We know that our enterprise customers need to make longer-term plans about their infrastructure investments, often 5+ years into the future.  In response to this we are providing customers with greater visibility into the BizTalk Server release cycle&lt;br /&gt;&lt;br /&gt;The goal is to provide a BizTalk Server release approximately every two years, plus additional interim releases of service packs as appropriate.  Each full BizTalk Server release will integrate the previous major release with the latest service pack(s) and new functionality.  Service packs will incorporate all of the current critical, non-critical, and customer-requested updates into one convenient package that has been extensively regression-tested by Microsoft and by customers during a beta test program. To the greatest extent possible, Microsoft strives to maintain BizTalk Server application compatibility for both full and service pack releases and performs extensive application compatibility tests with each release.&lt;br /&gt;&lt;br /&gt;1.      BizTalk Server vNext:&lt;br /&gt;o   Naming Change: We have also updated the name of the next release from BizTalk Server 2006 R3 to “BizTalk Server 2009”.  By calling the product BizTalk Server 2009, we can clearly communicate this is a full product release with new and enhanced capabilities and updated platform support for customers to take full advantage of the latest technology wave (Windows Server 2008, Visual Studio 2008, SQL Server 2008, .NET Framework 3.5).&lt;br /&gt;o   BizTalk Server 2009 Timing: We will deliver a public CTP by the end of this calendar year.  Additionally, BizTalk Server 2009 is on track for availability in the first half of calendar year 2009.&lt;br /&gt;o   Features: We bucket the 2009 release into 5 core feature areas, which are detailed further on the BizTalk roadmap page. These include platform support, SOA &amp;amp; web services, business to business integration, device connectivity and developer and team productivity.&lt;br /&gt;&lt;br /&gt;2.      Future Plans:&lt;br /&gt;o   Ship Rhythm: Microsoft’s commitment to maintain a rhythm of releases roughly every 2 years. &lt;br /&gt;o   High-Level Themes: We outlined priorities for the next couple of releases. Including:&lt;br /&gt;§  Developer productivity enhancements (e.g. complex mapping);&lt;br /&gt;§  Enhanced B2B support (e.g. complex trading partner management, expanded industry standards and schemas);&lt;br /&gt;§  Low-latency messaging enhancements and ESB Guidance;&lt;br /&gt;§  Enhanced device support for cross-enterprise asset tracking, enterprise manageability of devices, and key industry standards;&lt;br /&gt;§  Real-time  business event visibility through BI / BAM Enhancements; and&lt;br /&gt;§  Integration with the latest new platform capabilities (to take advantage of the latest advances in the .NET Framework, Visual Studio, and Windows Server).&lt;br /&gt;&lt;br /&gt;Key Talking Points&lt;br /&gt;&lt;br /&gt;BizTalk Roadmap:&lt;br /&gt;•        With a clear focus on our customers key enterprise connectivity challenges, Microsoft will continue to invest in BizTalk Server enhancements and maintain a rhythm of releases roughly every 2 years.&lt;br /&gt;•        BizTalk Server is the enterprise connectivity solution for the Microsoft application platform, used by customers to connect  and interoperate with systems  - e.g. LOB systems, legacy systems, smart devices (RFID), B2B (SWIFT, EDI, etc.).&lt;br /&gt;•        By providing high-level themes on the next releases of BizTalk Server, Microsoft hopes to give clarity to customer’s technology purchasing decisions and planning for adoption of platform technologies.&lt;br /&gt;&lt;br /&gt;BizTalk Server 2009:&lt;br /&gt;·        BizTalk Server 2009 will align with the newest Microsoft platform technologies including SQL Server 2008, Windows Server 2008, Visual Studio 2008 and .NET Framework 3.5.  Customers can take full advantage of the latest platform capabilities, in particular greater scalability and reliability, new Hyper-V virtualization support, and many advances in the latest developer tools.&lt;br /&gt;·        BizTalk Server 2009 also delivers many of the top features that have been requested by our customers, including a new UDDI v3 compliant services registry, new and enhanced LOB adapters (Oracle EBS, SQL), enhanced host systems integration (updates to MQ, CICS, IMS, CICS), a new Mobile RFID platform and management tools, enhanced B2B capabilities (updates to EDI, AS2, SWIFT), enhanced developer and team productivity through ALM integration with TFS and Visual Studio, and a new release of ESB Guidance 2.0 patterns and practices&lt;br /&gt;&lt;br /&gt;Q: What new functionally will be delivered in BizTalk Server 2009?&lt;br /&gt; A:  One of the key features of BizTalk Server 2009 will be to deliver support for the latest versions of Windows Server, the .NET Framework, Visual Studio, and SQL Server.   This will mean that BizTalk Server customers will continue to take full advantage of the platform’s latest improvements including: scalability for mission-critical workloads, improved support for next-generation web and service oriented applications, improved virtualization support and better business insight through Office.&lt;br /&gt;Also, this BizTalk Server release will deliver additional customer-requested capabilities around enterprise connectivity.  We will give more updates on specific features in the coming months, but at a high level we are planning some new investments in the release that includes:&lt;br /&gt;New web service registry capabilities with support for UDDI (Universal Description Discovery and Integration) version 3.0&lt;br /&gt;Enhanced service enablement of applications (through new and enhanced adapters for LOB applications, databases, and legacy/host systems)&lt;br /&gt;Enhanced service enablement of “edge” devices through BizTalk RFID Mobile&lt;br /&gt;Enhanced interoperability and connectivity support for industry protocols (like SWIFT, EDI, etc)&lt;br /&gt;SOA patterns and best practices guidance to assist our customer’s implementations&lt;br /&gt;&lt;br /&gt;You can find more details about BizTalk Server 2009 at &lt;a title="http://www.microsoft.com/biztalk/en/us/roadmap.aspx" href="http://www.microsoft.com/biztalk/en/us/roadmap.aspx"&gt;http://www.microsoft.com/biztalk/en/us/roadmap.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Q&amp;amp;A from the Sessions:&lt;br /&gt;&lt;br /&gt;Q: Why have you changed the name from R3 to 2009?&lt;br /&gt;A:  BizTalk Server 2009 will be a full release of the product.  Naming it “BizTalk Server 2009” clearly communicates that it delivers a full upgrade to enable customers to take advantage of the latest platform wave (Windows Server 2008, Visual Studio 2008, SQL Server 2008, .NET Framework 3.5), and also adds a significant number of new customer requested functionality and enhancements. &lt;br /&gt;&lt;br /&gt;Q: Does this name change alter the release timeframe for BizTalk Server 2009?&lt;br /&gt;A: No.  We are on track to deliver BizTalk Server 2009 in the H1 CY09 timeframe as previously announced.  We are very pleased with the progress we’ve been making during our development cycle so far; we’ve already released early CTPs to TAP customers and have been getting good feedback.  We will be releasing another CTP during Q4 CY09 and will use this feedback to help validate the features and readiness of the software.&lt;br /&gt;&lt;br /&gt;Q: You said the next version of BizTalk Server was “6”, and would be the “Oslo” release for BizTalk Server? Should we assume this is “6”?&lt;br /&gt;A:  Yes, this is the sixth version of BizTalk Server; however it is being delivered ahead of Oslo technologies.  Based upon the large number of customer requests for compatibility with the 2008 technology wave, we decided that it was more important to be responsive to customer input and ship as soon as the new BizTalk Server 2009 release was ready. &lt;br /&gt;&lt;br /&gt;Q: What can customers expect from BizTalk Server in the future?&lt;br /&gt;A:  The charter of BizTalk Server remains consistent – it allows the Microsoft application platform to connect  and interoperate with other kinds of systems - LOB systems, legacy systems, smart devices (RFID), and B2B integration (SWIFT, EDI, etc.).  This has been the focus of BizTalk Server since it was initially released back in 2000 and continues to be its charter going forward.&lt;br /&gt;&lt;br /&gt;Q: How does BizTalk Server relate to Oslo?  How will BizTalk Server begin to adopt Oslo technologies?&lt;br /&gt;A:   ”Oslo” is the codename for Microsoft’s forthcoming modeling platform.  Modeling is used across a wide range of domains and allows more people to participate in application design and allows developers to write applications at a much higher level of abstraction.  “Oslo” consists of a new modeling tool (which helps people visually interact with models in rich and intuitive manner), a new modeling language (which allows developers to efficiently define domain models in a form that is natural to the author) and a new repository (which provides a shared store for linking together all of the various model artifacts that describe an application across both design and runtime).&lt;br /&gt;&lt;br /&gt;BizTalk Server will follow a disciplined, evolutionary path to ease customer adoption of newer platform technologies, while continuing to invest in and enhance the current mature BizTalk architecture. &lt;br /&gt;&lt;br /&gt;In fact, you don’t need to upgrade BizTalk Server to take advantage of “Oslo” – current BizTalk Server 2006 R2 or BizTalk Server 2009 customers can benefit from “Oslo” by being able to leverage and compose their services into new composite applications.  Because BizTalk Server today already provides the ability to service enable LOB systems or trading partners as web services (using WCF supported protocols), this allows the “Oslo” modeling technologies to compose the services you already have.&lt;br /&gt;&lt;br /&gt;Q: Isn’t UDDI part of Windows Server 2008 today?  How does the BizTalk UDDI support differ? &lt;br /&gt;A: As part of this next BizTalk Server release, we will be transitioning the packaging/distribution of Microsoft’s UDDI capabilities from Windows Server over to BizTalk Server.  Given the close relationship of web service registries with metadata repository technologies, it makes sense to more closely align the distribution and evolution of Microsoft’s registry/repository functionality.   As a result, we will be offering an enhanced registry (UDDI v3 compatible) with BizTalk Server’s next release.  (Current UDDI v2 customers will receive guidance on how to move to UDDI v3 capabilities in a straight-forward manner.)  This enables a core foundational element of your SOA infrastructure, and helps prepare for some of the forthcoming modeling and repository investments planned in our “Oslo” technologies.&lt;br /&gt;&lt;br /&gt;Additional Resources&lt;br /&gt;&lt;br /&gt;For more information go to: &lt;br /&gt;·        PressPass Q &amp;amp; A with Oliver Sharp, GM of BizTalk Server: &lt;a title="http://www.microsoft.com/presspass" href="http://www.microsoft.com/presspass"&gt;http://www.microsoft.com/presspass&lt;/a&gt;&lt;br /&gt;·        BizTalk Website: &lt;a title="http://www.microsoft.com/biztalk/en/us/default.aspx" href="http://www.microsoft.com/biztalk/en/us/default.aspx"&gt;http://www.microsoft.com/biztalk/&lt;/a&gt;&lt;br /&gt;·        BizTalk Server Team Blog: &lt;a title="http://blogs.msdn.com/biztalk_server_team_blog/" href="http://blogs.msdn.com/biztalk_server_team_blog/"&gt;http://blogs.msdn.com/biztalk_server_team_blog/&lt;/a&gt;&lt;br /&gt;·        Steven Martin, director in the Connected Systems Division Blog: &lt;a title="http://blogs.msdn.com/stevemar/default.aspx" href="http://blogs.msdn.com/stevemar/default.aspx"&gt;http://blogs.msdn.com/stevemar/default.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/7345719-8131210937310742416?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/8131210937310742416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=8131210937310742416' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/8131210937310742416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/8131210937310742416'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2008/09/biztalk-2009-announcement.html' title='BizTalk 2009 - Announcement'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-3339941869128228444</id><published>2008-08-26T08:44:00.000+01:00</published><updated>2008-08-26T08:44:57.106+01:00</updated><title type='text'>Immediate deadlock notifications without changing existing code</title><content type='html'>&lt;a href="http://weblogs.sqlteam.com/mladenp/archive/2008/07/18/Immediate-deadlock-notifications-without-changing-existing-code.aspx"&gt;Immediate deadlock notifications without changing existing code&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-3339941869128228444?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://weblogs.sqlteam.com/mladenp/archive/2008/07/18/Immediate-deadlock-notifications-without-changing-existing-code.aspx' title='Immediate deadlock notifications without changing existing code'/><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/3339941869128228444/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=3339941869128228444' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/3339941869128228444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/3339941869128228444'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2008/08/immediate-deadlock-notifications.html' title='Immediate deadlock notifications without changing existing code'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-7620731342594324562</id><published>2008-07-25T12:56:00.000+01:00</published><updated>2008-07-25T12:56:08.835+01:00</updated><title type='text'>The user has not been granted the requested logon type at this machine</title><content type='html'>Yes but which type is that?&lt;br /&gt;&lt;br /&gt;Check the logon type enum in the error message, conveniently mentioned as an int rather than a description:&lt;br /&gt;&lt;br /&gt;Logon Type: 4&lt;br /&gt;&lt;br /&gt;and cross reference with the table here: &lt;a href="http://msdn.microsoft.com/en-us/library/aa394189.aspx"&gt;Win32_LogonSession Class (Windows)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-7620731342594324562?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://msdn.microsoft.com/en-us/library/aa394189.aspx' title='The user has not been granted the requested logon type at this machine'/><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/7620731342594324562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=7620731342594324562' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/7620731342594324562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/7620731342594324562'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2008/07/user-has-not-been-granted-requested.html' title='The user has not been granted the requested logon type at this machine'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-2381961594600626017</id><published>2008-07-14T16:19:00.000+01:00</published><updated>2008-07-14T16:19:30.930+01:00</updated><title type='text'>Creation of Adapter FILE Configuration Store entries failed</title><content type='html'>Thanks Matt: &lt;a href="http://blogs.conchango.com/matthall/archive/2006/12/18/BizTalk-2004_3A00_-ENTSSO-Error-0xC0002A18.aspx"&gt;Matt Hall&amp;#39;s Blog : BizTalk 2004: ENTSSO Error 0xC0002A18&lt;/a&gt; - although I'm seeing this on 2006 R2.&lt;br /&gt;&lt;br /&gt;Why are all configframework error messages so maliciously misleading?&lt;br /&gt;&lt;code&gt;&lt;br /&gt;WMI Failed in pAdmInst-&gt;Create() in CWMIInstProv::PutInstance(). HR=c0002a18&lt;br /&gt;Creation of Adapter FILE Configuration Store entries failed&lt;br /&gt;&lt;br /&gt;The format of the account name is not valid. Domain accounts must include the domain name. Local accounts must not include a domain or computer name.&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I just ran into this and was momentarily deflected by talk of MSDTC configurations from google.  Matt's blog pointed me at the (simple) answer - I'd put the wrong group as the biztalk application users group and the service account I'd specified was not in the group.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-2381961594600626017?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blogs.conchango.com/matthall/archive/2006/12/18/BizTalk-2004_3A00_-ENTSSO-Error-0xC0002A18.aspx' title='Creation of Adapter FILE Configuration Store entries failed'/><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/2381961594600626017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=2381961594600626017' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/2381961594600626017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/2381961594600626017'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2008/07/creation-of-adapter-file-configuration.html' title='Creation of Adapter FILE Configuration Store entries failed'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-8464975276674697790</id><published>2008-07-01T09:23:00.000+01:00</published><updated>2008-07-01T09:23:35.011+01:00</updated><title type='text'>Basic Troubleshooting For Enterprise Single-Sign-On</title><content type='html'>&lt;a href="http://blogs.msdn.com/biztalkcpr/archive/2008/06/23/basic-troubleshooting-for-enterprise-single-sign-on-sso.aspx"&gt;One Blog for Biztalk Engineers : Basic Troubleshooting For Enterprise Single-Sign-On (SSO)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-8464975276674697790?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blogs.msdn.com/biztalkcpr/archive/2008/06/23/basic-troubleshooting-for-enterprise-single-sign-on-sso.aspx' title='Basic Troubleshooting For Enterprise Single-Sign-On'/><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/8464975276674697790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=8464975276674697790' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/8464975276674697790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/8464975276674697790'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2008/07/basic-troubleshooting-for-enterprise.html' title='Basic Troubleshooting For Enterprise Single-Sign-On'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-8698474863768094040</id><published>2008-06-19T09:09:00.001+01:00</published><updated>2008-06-19T09:18:56.170+01:00</updated><title type='text'>Data Scripter Add-in for Management Studio</title><content type='html'>A fantastic add-in and one that should have been part of the tool itself in the first place.  &lt;br /&gt;&lt;br /&gt;&lt;a href="http://sqlblogcasts.com/blogs/seanprice/archive/2007/08/28/data-scripter-add-in-for-management-studio.aspx"&gt;Data Scripter Add-in for Management Studio - seanprice&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-8698474863768094040?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/8698474863768094040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=8698474863768094040' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/8698474863768094040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/8698474863768094040'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2008/06/data-scripter-add-in-for-management.html' title='Data Scripter Add-in for Management Studio'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-1129075178344192687</id><published>2008-06-10T07:55:00.000+01:00</published><updated>2008-06-10T07:55:29.336+01:00</updated><title type='text'>In place upgrading a Windows 2003 domain controller to Windows Server 2008</title><content type='html'>Described in detail but not recommended:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.dirteam.com/blogs/sanderberkouwer/archive/2008/04/08/upgrading-your-active-directory-to-windows-server-2008.aspx"&gt;The things that are better left unspoken : Upgrading your Active Directory to Windows Server 2008&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-1129075178344192687?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blogs.dirteam.com/blogs/sanderberkouwer/archive/2008/04/08/upgrading-your-active-directory-to-windows-server-2008.aspx' title='In place upgrading a Windows 2003 domain controller to Windows Server 2008'/><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/1129075178344192687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=1129075178344192687' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/1129075178344192687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/1129075178344192687'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2008/06/in-place-upgrading-windows-2003-domain.html' title='In place upgrading a Windows 2003 domain controller to Windows Server 2008'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-1818146221772657699</id><published>2008-05-20T08:22:00.001+01:00</published><updated>2008-05-20T08:25:07.245+01:00</updated><title type='text'>BizTalk 2006 R2: Troubleshooting Problems with MSDTC</title><content type='html'>&lt;a href="http://msdn.microsoft.com/en-us/library/aa561924.aspx"&gt;Troubleshooting Problems with MSDTC&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Finally, an authoritative treatment of the DTC configuration required to install and operate BizTalk in a multi-server environment.&lt;br /&gt;&lt;br /&gt;Note the provided table of recommended values for various DTC security settings in different scenarios - e.g. Incoming caller authentication, not mutual when MSDTC is running on a cluster.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-1818146221772657699?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/1818146221772657699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=1818146221772657699' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/1818146221772657699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/1818146221772657699'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2008/05/biztalk-2006-r2-troubleshooting.html' title='BizTalk 2006 R2: Troubleshooting Problems with MSDTC'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-4145689260952870687</id><published>2008-05-19T11:22:00.000+01:00</published><updated>2008-05-19T11:22:36.296+01:00</updated><title type='text'>BAM Setup and Configuration : Troubleshooting in BAM Portal Configuration</title><content type='html'>&lt;a href="http://blogs.msdn.com/kkuo/articles/479400.aspx"&gt;BAM Setup and Configuration : Troubleshooting in BAM Portal Configuration&lt;/a&gt;: "IIS is not 32-bit enabled"&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;IIS 6.0+ must be enabled to run 32-bit Web applications on 64-bit machines in order for the BAM Portal to function. You can enable by running the command:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;cscript.exe %windir%\Inetpub\AdminScripts\adsutil.vbs set W3SVC/AppPools/Enable32BitAppOnWin64 1&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-4145689260952870687?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blogs.msdn.com/kkuo/articles/479400.aspx' title='BAM Setup and Configuration : Troubleshooting in BAM Portal Configuration'/><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/4145689260952870687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=4145689260952870687' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/4145689260952870687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/4145689260952870687'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2008/05/bam-setup-and-configuration.html' title='BAM Setup and Configuration : Troubleshooting in BAM Portal Configuration'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-428220910605697623</id><published>2008-05-01T11:14:00.001+01:00</published><updated>2008-05-01T11:15:12.004+01:00</updated><title type='text'>mattberther.com » Drop all stored procedures</title><content type='html'>&lt;a href="http://www.mattberther.com/2004/12/15/drop-all-stored-procedures/"&gt;mattberther.com » Drop all stored procedures&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;A useful script to drop all sprocs (prior to updating them all, for example)&lt;br /&gt;&lt;br /&gt;USE &lt;span style="color:#cc0000;"&gt;myDatabase&lt;/span&gt;&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;declare @procName sysname&lt;br /&gt;&lt;br /&gt;declare someCursor cursor FOR&lt;br /&gt;SELECT name FROM sysobjects WHERE type = 'P' AND objectproperty(id, 'IsMSShipped') = 0&lt;br /&gt;&lt;br /&gt;open someCursor&lt;br /&gt;fetch next FROM someCursor INTO @procName&lt;br /&gt;while @@FETCH_STATUS = 0&lt;br /&gt;begin&lt;br /&gt;exec('drop proc ' + @procName)&lt;br /&gt;fetch next FROM someCursor INTO @procName&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;close someCursor&lt;br /&gt;deallocate someCursor&lt;br /&gt;go&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-428220910605697623?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/428220910605697623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=428220910605697623' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/428220910605697623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/428220910605697623'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2008/05/mattberthercom-drop-all-stored.html' title='mattberther.com » Drop all stored procedures'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-7849352708935511029</id><published>2008-04-17T16:05:00.003+01:00</published><updated>2008-04-17T16:07:15.297+01:00</updated><title type='text'>DateTime format string for inserting into SQL strings directly</title><content type='html'>To build an insert for a SQL string using datetime literals, the following format string can be used: "yyyy-MM-dd hh:mm:ss"&lt;br /&gt;&lt;br /&gt;As in &lt;br /&gt;&lt;code&gt;&lt;br /&gt;DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss")&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-7849352708935511029?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/7849352708935511029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=7849352708935511029' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/7849352708935511029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/7849352708935511029'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2008/04/datetime-format-string-for-inserting.html' title='DateTime format string for inserting into SQL strings directly'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-9191959364755684624</id><published>2008-04-15T08:10:00.000+01:00</published><updated>2008-04-15T08:10:40.162+01:00</updated><title type='text'>FIX: Error message when you try to enlist two orchestrations at the same time in BizTalk Server 2006 or in BizTalk Server 2006 R2: "Value does not fall within the expected range"</title><content type='html'>When using &lt;a href="http://www.traceofthought.net/"&gt;Scott Colestock's&lt;/a&gt; excellent deployment framework for BizTalk, you start orchestrations by the assembly load. If these are bound to more than one host (fairly common), the first time you start them you'll run into the following error:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Value does not fall within the expected range&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I read about a MS fix for this on Scott's site, duly downloaded it only to find that it wouldn't install - the fix was only for R1 of 2006 and hadn't been included in R2. A trip to MS support yielded a developed, tested and released hotfix in less than a month.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/927052"&gt;FIX: Error message when you try to enlist two orchestrations at the same time in BizTalk Server 2006 or in BizTalk Server 2006 R2: &amp;quot;Value does not fall within the expected range&amp;quot;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also see Scott's &lt;a href="http://www.traceofthought.net/2008/03/11/ABugWithMultipleHosts.aspx"&gt;blog&lt;/a&gt; on this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-9191959364755684624?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://support.microsoft.com/kb/927052' title='FIX: Error message when you try to enlist two orchestrations at the same time in BizTalk Server 2006 or in BizTalk Server 2006 R2: &quot;Value does not fall within the expected range&quot;'/><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/9191959364755684624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=9191959364755684624' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/9191959364755684624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/9191959364755684624'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2008/04/fix-error-message-when-you-try-to.html' title='FIX: Error message when you try to enlist two orchestrations at the same time in BizTalk Server 2006 or in BizTalk Server 2006 R2: &quot;Value does not fall within the expected range&quot;'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-8347852470080209469</id><published>2008-04-14T12:06:00.000+01:00</published><updated>2008-04-14T12:06:01.267+01:00</updated><title type='text'>BizTalk 2006 SQL jobs</title><content type='html'>This link: &lt;a href="http://msdn2.microsoft.com/en-us/library/aa561960.aspx"&gt;Database Structure and Jobs&lt;/a&gt; contains a list of all SQL jobs used by BTS2006 and a description.&lt;br /&gt;&lt;br /&gt;You might have another few jobs in there;&lt;br /&gt;bam_FRRView_ViewFRRMessagesIn_DelAlertHistJob&lt;br /&gt;bam_FRRView_ViewFRRMessagesOut_DelAlertHistJob&lt;br /&gt;bam_RepairView_ViewMessage_DelAlertHistJob&lt;br /&gt;&lt;br /&gt;These are from the SWIFT accelerator - FRR stands for FIN Response Reconciliation.&lt;br /&gt;&lt;br /&gt;I like this part best: &lt;br /&gt;&lt;blockquote&gt;In the BizTalk Management (BizTalkMgmtDb) database, there's a stored procedure named dbo.adm_cleanupmgmtdb. DO NOT RUN THIS STORED PROCEDURE! If you do run this stored procedure, all the entries in the database will be deleted.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Brilliant!  Don't install the procedure then!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-8347852470080209469?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://msdn2.microsoft.com/en-us/library/aa561960.aspx' title='BizTalk 2006 SQL jobs'/><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/8347852470080209469/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=8347852470080209469' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/8347852470080209469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/8347852470080209469'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2008/04/biztalk-2006-sql-jobs.html' title='BizTalk 2006 SQL jobs'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-6961577485819878357</id><published>2008-04-02T09:18:00.001+01:00</published><updated>2008-04-02T09:19:02.207+01:00</updated><title type='text'>From streams to strings...</title><content type='html'>&lt;a href="http://www.joelonsoftware.com/articles/Unicode.html"&gt;The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) - Joel on Software&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;An entertaining read on encodings that every pipeline component developer should read too!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-6961577485819878357?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/6961577485819878357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=6961577485819878357' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/6961577485819878357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/6961577485819878357'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2008/04/absolute-minimum-every-software.html' title='From streams to strings...'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-4271718970874304866</id><published>2008-03-31T10:53:00.001+01:00</published><updated>2008-03-31T11:11:34.757+01:00</updated><title type='text'>Minimum Security User Rights</title><content type='html'>Minimum security rights required on a task by task basis in BizTalk 2006 R2.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/aa559845.aspx"&gt;Minimum Security User Rights&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa950047.aspx"&gt;Guidelines for install into a multi-server environment&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-4271718970874304866?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/4271718970874304866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=4271718970874304866' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/4271718970874304866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/4271718970874304866'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2008/03/minimum-security-user-rights.html' title='Minimum Security User Rights'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-6999061079496860080</id><published>2007-09-06T19:01:00.000+01:00</published><updated>2007-09-06T19:14:26.435+01:00</updated><title type='text'>Messagepack 2007 for A4SWIFT is out</title><content type='html'>The message pack for the SWIFT 2007 changes going industry-live on October 27th is out - I was a beta tester on this release and you'll see at least 1 tag I named in there :)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;BizTalk Accelerator for SWIFT 2007 Message Pack has &lt;a href="http://support.microsoft.com/kb/925731/en-us"&gt;Released To Web!&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;This new release is an example of Microsoft’s continued investment and support for the financial services industry on our platform.  &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;The BizTalk Accelerator for SWIFT 2007 Message Pack provides industry-standard compliance with the SWIFT 2007 Standards Release Guide (SRG) specification, required for communication across the SWIFT network starting in October 2007.   Note:  the Message Pack is released each year to coincide with the annual updates to the SWIFT Standards Release Guide. &lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Complete re-packaging of all SWIFT FIN Flat File message types and business rules.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Updates to all message schemas and business rules for compliance with SWIFT 2007 Certification requirements.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Support for SWIFT Net Phase 2 PKI header information. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Roll-up of all schemas and business rule Hotfixes not superseded by 2007 requirements&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-6999061079496860080?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/6999061079496860080/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=6999061079496860080' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/6999061079496860080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/6999061079496860080'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2007/09/messagepack-2007-for-a4swift-is-out.html' title='Messagepack 2007 for A4SWIFT is out'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-285770751277091282</id><published>2007-07-21T09:33:00.000+01:00</published><updated>2007-07-21T09:44:29.824+01:00</updated><title type='text'>SQL Server 2000 SP4 Installation Hangs at Validating User / Password</title><content type='html'>Installing SP4 for SQL Server 2000 is remarkably similar to installing SP3a. However (and this is a bit odd) the install hangs just after you provide dbo credentials (either your own windows creds are good enough or an sa password) with the non-cancellable message "Validating User" or "Validating Password" &lt;em&gt;if&lt;/em&gt; your temp directory has a space in it! Quality.&lt;br /&gt;To fix, kill the install process (I don't believe it's done any damage at this point) and change your TEMP and TMP environment variables to be something oldschool like "C:\temp" (presumably you had "C:\Documents and Settings\Temp" before), and restart the install.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mcse.ms/message1757343.html"&gt;This guy&lt;/a&gt; had another, different problem with the same symptom (and this is where I got the info about the temp directory - a well known problem apparently).  A corrupt MSDB database caused the install to fail with the same issue - the actual problem was squirreled away in the install log file.  I'm not sure why installers for technical products hide the error message from the user!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-285770751277091282?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/285770751277091282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=285770751277091282' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/285770751277091282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/285770751277091282'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2007/07/sql-server-2000-sp4-installation-hangs.html' title='SQL Server 2000 SP4 Installation Hangs at Validating User / Password'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-275745123847784331</id><published>2007-06-19T09:13:00.001+01:00</published><updated>2007-06-19T09:13:58.665+01:00</updated><title type='text'>Kevin Lam on Direct Port Binding</title><content type='html'>This series of posts, from Kevin Lam's blog on Direct Binding is essential reading;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/kevin_lam/archive/2006/04/18/578572.aspx"&gt;Demystifying Direct Bound Ports - part 1 (Intro) &lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/kevin_lam/archive/2006/04/25/583490.aspx"&gt;Demystifying Direct Bound Ports - part 2 (Messagebox direct binding)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/kevin_lam/archive/2006/06/14/631313.aspx"&gt;Demystifying Direct Bound Ports - part 3 (Partner ports)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/kevin_lam/archive/2006/07/07/659214.aspx"&gt;Demystifying Direct Bound Ports - part 4 (Self correlating ports)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/kevin_lam/archive/2006/07/25/678547.aspx"&gt;Demystifying Direct Bound Ports - part 5 (Dynamic direct bound ports)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-275745123847784331?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/275745123847784331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=275745123847784331' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/275745123847784331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/275745123847784331'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2007/06/kevin-lam-on-direct-port-binding.html' title='Kevin Lam on Direct Port Binding'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-6338874448359338644</id><published>2007-03-28T15:33:00.001+01:00</published><updated>2007-03-28T15:33:30.645+01:00</updated><title type='text'>Determining the current Service Instance ID</title><content type='html'>Useful for matching debug info or event info up with whats in HAT.  As per this blog entry from &lt;a href="http://geekswithblogs.net/sthomas/archive/2004/09/20/11424.aspx"&gt;Stephen W. Thomas&lt;/a&gt; you can get the instance ID in an orchestration with:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;OrchestrationInstanceID = System.Convert.ToString(Microsoft.XLANGs.Core.Service.RootService.InstanceId);&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;You can also have it in an external assembly easily enough.  You'll want a reference to:&lt;br /&gt;&lt;br /&gt;C:\Program Files\Microsoft BizTalk Server 2004\Microsoft.XLANGs.Engine.dll&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;public static string GetOrchestrationInstanceID()&lt;br /&gt;{&lt;br /&gt; try&lt;br /&gt; {&lt;br /&gt;  return Microsoft.XLANGs.Core.Service.RootService.InstanceId.ToString();&lt;br /&gt; }&lt;br /&gt; catch(Exception exc)&lt;br /&gt; {&lt;br /&gt;  return "Exception returning instance ID: " + exc.Message;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-6338874448359338644?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/6338874448359338644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=6338874448359338644' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/6338874448359338644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/6338874448359338644'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2007/03/determining-current-service-instance-id.html' title='Determining the current Service Instance ID'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-7154993288948603732</id><published>2007-03-19T12:05:00.000Z</published><updated>2007-03-19T12:07:31.080Z</updated><title type='text'>Bug in HAT</title><content type='html'>There's a bug in HAT that can cause incorrect configuration.  In the configuration | Pipelines section where you set tracking options on pipelines, if you reorder the list (ordering by pipeline direction for example) and then step through the list changing options, the changes are not applied correctly.  The changes are applied to the list in the original order they're shown, not in the new sort order.  &lt;br /&gt;&lt;br /&gt;In other words, the config is shown and saved for the items in name order, and sorting the list only changes the view of the list, losing the link between what configuration you're changing and the item that's selected.&lt;br /&gt;&lt;br /&gt;Words fail me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-7154993288948603732?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/7154993288948603732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=7154993288948603732' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/7154993288948603732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/7154993288948603732'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2007/03/bug-in-hat.html' title='Bug in HAT'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-1565591212396836905</id><published>2007-03-08T18:06:00.000Z</published><updated>2007-03-08T18:28:35.061Z</updated><title type='text'>XmlPreProcess - false values are undefined!</title><content type='html'>The kind of problem that makes you check absolutely everything and declare that it should just work.  We have this overly complicated MSI generation process that has two calls to &lt;a href="http://xmlpreprocess.sourceforge.net/"&gt;XmlPreProcess&lt;/a&gt; in it.  Our system test installer was working fine, but our production installer didn't work - an installed config file was coming out with an error message from XmlPreProcess stating that a particular property was not defined.   It was.  In the end I downloaded the source code for XmlPreProcess and stepped through the property parsing routines and found the following line, deep in a mass of uncommented functions:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;if (null != propertyValue &amp;&amp;&lt;br /&gt;    !propertyValue.ToUpper().Equals("FALSE"))&lt;br /&gt;{&lt;br /&gt;    properties.Add(propertyName, DeQuote(propertyValue));&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;In other words if the property is empty of equal to false, its undefined.  WTF?  To be fair, it does mention this in the documentation, which of course I hadn't read:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Boolean Properties&lt;br /&gt;All property values are treated as strings with the exception of the word False (case is irrelevant). If you set a property to the value False, it will have the effect of un-defining it. There are some cases where you may actually want the literal value of "False" to be replaced. To accomplish this, enclose it in single or double quotes. The quotes will be stripped, and the value will simply be treated like any other string property.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This is the kind of undisclosed "feature" that drives me insane.  Just like the "helper" function we had on our project that read an XML element value at an XPath - if it didn't find it it returned a blank string.  Cue another baffling bug (null is not equal to false!).  If you're going to write this kind of garbage, call the function "ReadXMLAtXPathAndReturnBlankIfItDoesntExist".  And no, putting the info in the &amp;lt;Remarks&amp;gt; tag does not count.&lt;br /&gt;&lt;br /&gt;Actually, writing APIs with this kind of stuff in it reminds me of &lt;a href=""&gt;this bit&lt;/a&gt; from HHGTTG:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Shortly before the Vogons demolish the Earth to make way for a hyperspace bypass, they inform the planet that "All the planning charts and demolition orders have been on display in your local planning department on Alpha Centauri for fifty of your Earth years, so you've had plenty of time to lodge any formal complaint and it's far too late to start making a fuss about it now." When someone objects to this, Protstetnic Vogon Jeltz replies, "What do you mean you've never been to Alpha Centauri? For heaven's sake mankind, it's only four light years away you know. I'm sorry, but if you can't be bothered to take an interest in local affairs that's your own lookout."&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-1565591212396836905?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/1565591212396836905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=1565591212396836905' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/1565591212396836905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/1565591212396836905'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2007/03/xmlpreprocess-false-values-are.html' title='XmlPreProcess - false values are undefined!'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-8416022356703813683</id><published>2007-02-28T16:18:00.000Z</published><updated>2007-02-28T16:20:26.594Z</updated><title type='text'>What's the maximum length of a string in the message context?</title><content type='html'>256 characters.&lt;br /&gt;&lt;br /&gt;I say this not because it is particularly interesting but so Google knows the answer.&lt;br /&gt;&lt;br /&gt;Looking at the table in which the data is stored suggests this (varchar 256) but a test confirms that its not spooled into a bigger field if required :(&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There was a failure executing the receive pipeline: "Microsoft.BizTalk.DefaultPipelines.XMLReceive" Source: "XML disassembler" Receive Location: "C:\temp\tempIn\*.xml" Reason: The property 'Item1' has a value with length greater than 256 characters.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-8416022356703813683?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/8416022356703813683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=8416022356703813683' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/8416022356703813683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/8416022356703813683'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2007/02/whats-maximum-length-of-string-in.html' title='What&apos;s the maximum length of a string in the message context?'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-6796013479359735046</id><published>2007-02-19T17:18:00.000Z</published><updated>2007-02-19T17:26:09.495Z</updated><title type='text'>MQ Woes Part 999: Error encountered on Queue.Get Queue name =  Reason code = 2354. hresult = 0XC0C1100C</title><content type='html'>At my current client we have a large BizTalk solution using IBM Websphere MQ to talk between systems.  The development environment is a &lt;em&gt;nightmare&lt;/em&gt; as we're not allowed actual servers or proper operating systems; we're running crappy business desktops with Windows XP - and they're subject to the same kinds of abuse (maintenance) that, for example, the project manager's laptop receives.  On Friday, they pushed Windows XP SP2 onto the (shared) MQ machine.  As you can imagine this killed it as the MQ adapter uses COM+ to do the network hop onto the remote MQ box and MSDTC to roll the transaction onto it and SP2 screws MSDTC.&lt;br /&gt;&lt;br /&gt;After lots of fun with DTCPing, I re-established happy DTC communications between the two machines.  This involved setting the &lt;a href="http://www.microsoft.com/technet/prodtechnol/exchange/Analyzer/209d02c4-877c-4128-8e22-30bcd4aae6d3.mspx?mfr=true"&gt;RestrictRemoteClients&lt;/a&gt; registry key to 0, and re-enabling network MSDTC (info from &lt;a href="http://blogs.msdn.com/florinlazar/archive/2004/06/18/159127.aspx"&gt;Florin Lazar&lt;/a&gt;) - in the Component Services applet, right click My Computer, Properties, MSDTC, Security Configuration: check Network DTC Access, Allow Remote Clients, Allow Remote Administration, Allow Inbound, Allow Outbound, No authentication required + Enable XA Transactions.&lt;br /&gt;&lt;br /&gt;This left me with the following errors:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;On the MQ server&lt;/strong&gt;: Error encountered as BizTalk attempts to retrive a message from MQSeries, description = Error encountered on Queue.Get Queue name = &lt;queue&gt; Reason code = 2354. hresult = 0XC0C1100C. This error will also be reported on the BizTalk server.&lt;br /&gt;&lt;strong&gt;On the BizTalk Server:&lt;/strong&gt; The adapter "MQSeries" raised an error message. Details "Exception from HRESULT: 0xC0C1100C."&lt;br /&gt;&lt;br /&gt;A Google search on the above gives about 3 results all of which point to Florin's blog entry which I'd already been through.  The error 2354 means "Enlistment in global unit of work failed" - following this up led me finally to this page on the IBM website - the &lt;a href="http://www-1.ibm.com/support/docview.wss?uid=swg27006838"&gt;Product Readme for V6.0.0.0&lt;/a&gt; which I'm not using (using 5.3).  This instructs me to enable XA transactions, but also has another error described: &lt;br /&gt;&lt;br /&gt;"You have XA transactions enabled, but you still see a 2354 reason code when you try to get or put a message in a COM+ transaction or using a .NET application that inherits from ServicedComponent"&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Solution: Add the WebSphere MQ XA resource manager DLL to the list of DLLs in the XADLL key of the registry: &lt;br /&gt;HKLM\SOFTWARE\Microsoft\MSDTC\XADLL&lt;br /&gt;&lt;br /&gt;The DLL name is amqmtsxatm.dll. It has a value type of REG_SZ. The value of the installed location of the DLL is &amp;lt;mqmtop&amp;gt\bin\amqmtsxatm.dll.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Quite why mqmtop is standing in for "where MQ is installed" I don't know.  However my registry had the following in it "\bin\amqmtsxatm.dll".  Changing this to "C:\Program Files\IBM\WebSphere MQ\bin\amqmtsxatm.dll" finally fixed that issue.  In subsequent searching I actually found details of this fix in a KB article for BizTalk 2002 - good to know IBM haven't fixed this issue after all these years!&lt;br /&gt;&lt;br /&gt;Anyway, this allowed me to receive messages from MQ into BizTalk but not send them.  This was failing with the following error:&lt;br /&gt;&lt;br /&gt;The adapter failed to transmit message going to send port "MQS://Server/QManager/QName". It will be retransmitted after the retry interval specified for this Send Port. Details:"Access is denied.".&lt;br /&gt;&lt;br /&gt;In the process of trying to fix this I added these registry settings to the MQ box: &lt;a href="http://support.microsoft.com/kb/841893/"&gt;The Enterprise Single Sign-On Service and associated BizTalk Server 2004 services fail after you install Windows XP Service Pack 2 (SP2)&lt;/a&gt;, although this had no effect.  I was also getting the following logon failures in the security log:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Logon Failure:&lt;br /&gt;  Reason: The user has not been granted the requested&lt;br /&gt;   logon type at this machine&lt;br /&gt;  User Name: &amp;lt;MQAgent Identity&amp;gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Where &amp;lt;MQAgent Identity&amp;gt; is the username of the local account the MQAgent COM+ application is running as.  That's local to the remote MQ box!  I'm not sure why this is required to do a send from BizTalk to MQ but it appears it is.  There was already a local account with the same username and password as this remote (local) user - a hangover from some experiment long ago.  Giving this user permissions to log on to the BizTalk machine &lt;em&gt;finally&lt;/em&gt; solved the problem.  I don't have access to view or edit group policy here, and a network admin ran the necessary stuff from the reskit for me:&lt;br /&gt;&lt;br /&gt;net user &amp;lt;MQAgent Identity&amp;gt; /active:yes&lt;br /&gt;&lt;br /&gt;ntrights +r SeNetworkLogonRight -u &amp;lt;MQAgent Identity&amp;gt;&lt;br /&gt;&lt;br /&gt;ntrights -r SeDenyNetworkLogonRight -u &amp;lt;MQAgent Identity&amp;gt;&lt;br /&gt;&lt;br /&gt;Anyway.  Thank god that's over...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-6796013479359735046?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/6796013479359735046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=6796013479359735046' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/6796013479359735046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/6796013479359735046'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2007/02/mq-woes-part-999-error-encountered-on.html' title='MQ Woes Part 999: Error encountered on Queue.Get Queue name = &lt;queue&gt; Reason code = 2354. hresult = 0XC0C1100C'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-1697894002091671650</id><published>2007-02-16T15:21:00.000Z</published><updated>2007-02-16T15:24:44.768Z</updated><title type='text'>IBM websphere mq files are in use.  stop activity and retry. (AMQ4757)</title><content type='html'>Every time I go near IBM's wonderful product I get angry.&lt;br /&gt;Thank god for this post.&lt;br /&gt;&lt;a href="http://www.prophecie.co.uk/Default.aspx?dc=200511"&gt;http://www.prophecie.co.uk/Default.aspx?dc=200511&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;For the CSD 11 installer package, use -a to specify parameters which are passed through to amqicsdn.exe:&lt;/p&gt;&lt;p&gt;U200236A.EXE -a MQPINUSEOK=1&lt;/p&gt;&lt;p&gt;Using the unpacked CSD 11 installation, we don't need the -a:&lt;/p&gt;&lt;p&gt;AMQICSDN.EXE MQPINUSEOK=1&lt;/p&gt;&lt;p&gt;You'll then be prompted to reboot when it's finished. Marvelous.&lt;/p&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-1697894002091671650?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/1697894002091671650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=1697894002091671650' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/1697894002091671650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/1697894002091671650'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2007/02/ibm-websphere-mq-files-are-in-use-stop.html' title='IBM websphere mq files are in use.  stop activity and retry. (AMQ4757)'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-5784573757296051623</id><published>2007-01-21T16:11:00.000Z</published><updated>2008-12-10T15:50:17.775Z</updated><title type='text'>I AM YOUR FATHER</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_I0M6kN_FHUQ/RbOR1--bisI/AAAAAAAAAAM/hwR2qMxAJd8/s1600-h/IMG_0170.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5022518366072179394" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_I0M6kN_FHUQ/RbOR1--bisI/AAAAAAAAAAM/hwR2qMxAJd8/s320/IMG_0170.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;All change in the Cops household!&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-5784573757296051623?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/5784573757296051623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=5784573757296051623' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/5784573757296051623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/5784573757296051623'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2007/01/i-am-your-father.html' title='I AM YOUR FATHER'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_I0M6kN_FHUQ/RbOR1--bisI/AAAAAAAAAAM/hwR2qMxAJd8/s72-c/IMG_0170.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-8978007222929228958</id><published>2007-01-12T13:41:00.000Z</published><updated>2007-01-12T13:44:12.722Z</updated><title type='text'>Nightmare!</title><content type='html'>Eric Lippert &amp;amp; a cautionary tale:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/ericlippert/archive/2006/09/27/774117.aspx"&gt;http://blogs.msdn.com/ericlippert/archive/2006/09/27/774117.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-8978007222929228958?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/8978007222929228958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=8978007222929228958' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/8978007222929228958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/8978007222929228958'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2007/01/nightmare.html' title='Nightmare!'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-114668477528585040</id><published>2006-05-03T20:31:00.000+01:00</published><updated>2006-06-07T17:31:47.876+01:00</updated><title type='text'>BizTalk 2006 Notes</title><content type='html'>I've been on a ton of BizTalk 2006 courses and training days recently, so I thought I'd write up some notes and stick them in google.  However I've got so many now that I've got to stop typing or I'll never post this so... Enjoy!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Orchestrations&lt;/h2&gt;&lt;br/&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Derive from BTXService&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Segment 0, 1, 2 etc in the &lt;a href="http://geekswithblogs.net/cyoung/archive/2005/01/22/20633.aspx"&gt;precompiled C# output&lt;/a&gt; are the steps of the statemachine the orchestration represents.  These segments do not have &lt;br /&gt;an easy 1:1 correlation with the shapes you drop on an orchestration.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The orchestration engine calls these methods on the orchestration class&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Orchestrations and BPEL are translatable but you can't do full roundtrip without losing information&lt;/li&gt;&lt;br /&gt;&lt;li&gt;In an orchestration you can use multipart message types as a level or indirection, on the basis that all messages are multipart under the hood anyway.  &lt;br /&gt;Setting things up like this allows you to change a schema without editing every port, parameter, etc that's using it.  However some things are less convenient and seem a bit buggier done this way.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Port types do not specify a direction, they specify a message type.  Therefore you just need the one port type for sending and receiving a message of a given type.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;A message typed for a .NET class is serialised using the XmlSerializer&lt;br /&gt;&lt;br /&gt;A variable typed for a .NET class is serialised using the Binary Serializer&lt;/li&gt;&lt;br /&gt;&lt;li&gt;In .NET 1.1, an assembly would be generated at runtime which would serialise your type.  In .NET 2.0 you can use &lt;a href="http://msdn2.microsoft.com/en-US/library/bk3w6240(VS.80).aspx"&gt;sgen&lt;/a&gt; &lt;br /&gt;to generate and GAC this serialiser type, which is then automatically used at runtime.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;This serialiser assembly is written to the temp directory - the IIS process identity might need permissions on this directory if you are exposing an HTTP based receive location&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Use the XmlDocument type as a generic message type for ports and messages in orchestrations to do typeless messaging scenarios (even if the underlying data is not xml)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;In 2006 the orchestration designer remembers which groups were expanded/contracted when you close the file.  This is about the only enhancement for 2006, as the orchestration investment will be for WF in 2008.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Persistence points include:&lt;br /&gt;&lt;br /&gt;- After message send&lt;br /&gt;&lt;br /&gt;- After atomic scope&lt;br /&gt;&lt;br /&gt;- Parallel shape&lt;br /&gt;&lt;br /&gt;- Break points&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Dehydration behaviour can be &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sdk/htm/ebiz_prog_orch_jzex.asp"&gt;tuned in BTSNTSvc.config&lt;/a&gt;, using the Dehydration element.  Set the ConstantThreshold attribute to -1 to turn it off.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;In a listen shape, always set the delay shape in the right-most branch.  Otherwise if the orchestration wakes up to execute the delay when the message has just been received, the left branches are executed&lt;br /&gt;before the delay can fire so that you get a chance to process the inbound message, otherwise you'll get a zombie ("completed with discard messages" - a message that is accepted to the messagebox on a subscription, but the subscription is gone by the time it comes to run).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;In a parallel convoy you have 2 activating receives with initiating correlations.  When one comes in the other is treated like it follows the other correlation.  This can cause a race&lt;br /&gt;condition if the second message comes in before the subscription can be set up (you'd get two orchestration instances created in this scenario)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;A parallel shape is not generally executed on multiple threads (although this is a possiblity), and creates extra persistence points.  You also need to take the effort to synchronise access on the branches because of the theoretical possiblity of concurrent processing.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Can only nest orchestrations and scopes 44 levels deep&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Compensations are for completed transactions only - compensations are not called automatically although nested compensations are called by the default compensation.  Call a compensation using the compensate shape.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Resource compensation is a "best efforts" design - there's no guarantee.  Sometimes you won't be able to rollback, at which point you generally involve a human&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Delivery Notification on a solicit-response port returns a SOAP fault (regardless of transport) rather than throwing a DeliveryNotificationException.  If you right click the operation in the R-R port, and select "Add Fault" you can react to this instead of the exception.  You don't receive the soap fault as a message from the port, you add a catch for this in the scope around your send/receive.  The fault will be listed as an available exception to catch once you've added the fault to the port&lt;/li&gt;&lt;br /&gt;&lt;li&gt;When you enter a Message Construct shape, the messages you say you are going to construct are nulled out - therefore you cannot, for example, add to a message in a loop.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;XLANGPipelineManager.ExecuteReceivePipeline &amp; XLANGPipelineManager.ExecuteSendPipeline &lt;a href="http://geekswithblogs.net/arnoudlems/articles/69521.aspx"&gt;can be used&lt;/a&gt; to call a send/receive pipeline from an orchestration.  &lt;br /&gt;Although this allows you to use an assembler to combine multiple messages into another message based on an envelope schema this didn't work very well in beta 2 and I'd still be tempted to use custom code to create the XML you're after.&lt;br /&gt;Jack found a bug in this that he says he'll blog at some point.  Its more useful for getting the text of a flatfile message in the orchestration - it would otherwise only be available to you after the pipeline in the port, which can be too late.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;By default all orchestrations run in the same app domain in a host ("_XDomain").  In BTSNTSvc.config you can &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sdk/htm/ebiz_prog_orch_jzex.asp"&gt;assign assemblies to run in different app domains&lt;/a&gt; with their own config.&lt;br /&gt;Use the ExactAssignmentRule &amp; PatternAssignmentRule elements to assign assemblies based on name to the app domains.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Adapters, Ports and Pipelines&lt;/h2&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;When a port is enlisted with a host, the host runs the adapter, which picks up messages and hands them to the messaging engine, which runs them through the pipeline, then optionally through a map, then into the messagebox&lt;br /&gt;&lt;br /&gt;HOST{ PORT{ Adapter -&gt; Messaging Engine -&gt; Pipeline -&gt; [Map] } } -&gt; MessageBox (immutable)&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;spTransportID is the GUID for the send port and is the implied default subsription for a send port.  When you bind to a send port this GUID is ORed into the rest of the filter you create with the binding.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Routing failure messages are now resumable from the MMC&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Error messages can now be routed.  Any previously promoted context properties are demoted and ErrorReport.ErrorType = FailedMessage is promoted (along with other error information) - this can be routed on.  &lt;br /&gt;When you turn on failed message routing you're telling BizTalk to publish rather than suspend failed messages&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Send Port Groups - a distribution list.  Send port priority can be used to determine order of sending.  You can set a filter on the send port group and this is used to then broadcast to the send port members.  The member's filters are not applied on top of the group, however their subscriptions are still valid as normal.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Pipeline configuration - i.e. the configuration applied to each pipeline component in the pipeline can be overriden using the MMC on a per port basis.&lt;br /&gt;This was always the case in 2004 however it wasn't exposed in the UI.  The configuration given in the compiled pipeline is used unless a replacement XML string is provided in the appropriate field in the appropriate table of the management database.  On learning this my colleague &lt;a href="http://blogs.conchango.com/jackhanison/default.aspx"&gt;Jack&lt;/a&gt; excitedly started writing a tool to expose this functionality for 2004, but then I had to piss on his chips as I discovered &lt;a href="http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,2f6500ae-d832-495f-92a3-f7032ef317ca.aspx"&gt;Jon Flanders had already done it&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;A handler is a mapping of an adapter to a host.  You can have many handlers for a receive adapter, and in 2006 many handlers for a send adapter.  You can pick the handler in the port configuration, and therefore the credentials with which the send or receive will be performed.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The "Recoverable Interchange Processing" property on the XmlDasm or FFDasm can allow good records from an inbound batch to flow through whilst bad records are suspended (or routed elsewhere).  In 2004 the entire batch would be thrown out.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;XmlDasm "Validate Schema" validates a message against a schema &lt;em&gt;if&lt;/em&gt; you provide the schema, otherwise it does nothing.  This XmlValidator component does exactly the same.&lt;br /&gt;Putting in an XmlDisassembler with no schemas causes the component to look the schema up in the management database.  The validator flag/component does not do this (it does nothing instead)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;In 2004 Pipeline Components are only loaded from the pipeline components folder.  In 2006 if you put them in the GAC, they'll be loaded from the GAC (see the Assembly.LoadFrom() issue below in "General &amp; .NET 2.0 changes affecting BizTalk")&lt;/li&gt;&lt;br /&gt;&lt;li&gt;If you don't decorate a PC with CatID_PipelineComponent, you can't even add it to the toolbox (I've done this)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The IPipelineContextEx interface in 2006 &amp; 2004 SP1 allows you to hook into the transaction the adapter's using - wrap this in a &lt;a href="http://msdn2.microsoft.com/en-us/library/system.transactions.transactionscope(VS.80).aspx"&gt;TransactionScope&lt;/a&gt; class on which you can vote&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Use the "Add processing instruction" parameter on the XML assembler to inject a processing instruction element into XML.  Processing instructions are interrogated by the shell and are what make xml files launch automatically in office applications, for example InfoPath.  This makes it trivially easy to output xml files that users can edit in business friendly apps.&lt;br /&gt;&lt;br /&gt;For example, &lt;strong&gt;design &lt;/strong&gt;a form and save it in an accessible network or intranet location.  Open this .xsn file and save an instance of the form (.xml).&amp;nbsp;&lt;br /&gt;    Crack it open in notepad (because of the processing instruction if you double click&lt;br /&gt;    it the shell will launch it in infopath) and you'll see a processing instruction&lt;br /&gt;    similar to this&lt;br /&gt;&lt;br /&gt;    &lt;?mso-infoPathSolution solutionVersion="1.0.0.1" productVersion="11.0.6565" PIVersion="1.0.0.0"&lt;br /&gt;    href="file:///C:\temp\myform.xsn" name="urn:schemas-microsoft-com:office:infopath:myform:-myXSD-2006-04-10T18-43-30"&lt;br /&gt;    ?&gt;&amp;lt;?mso-infoPathSolution solutionVersion="1.0.0.1" productVersion="11.0.6565"&lt;br /&gt;    PIVersion="1.0.0.0" href="file:///C:\temp\myform.xsn" name="urn:schemas-microsoft-com:office:infopath:myform:-myXSD-2006-04-10T18-43-30"&lt;br /&gt;    ?&amp;gt;&amp;lt;?mso-application progid="InfoPath.Document"?&amp;gt;&lt;?mso-infoPathSolution&lt;br /&gt;    solutionVersion="1.0.0.1" productVersion="11.0.6565" PIVersion="1.0.0.0" href="file:///C:\temp\myform.xsn"&lt;br /&gt;    name="urn:schemas-microsoft-com:office:infopath:myform:-myXSD-2006-04-10T18-43-30"&lt;br /&gt;    ?&gt;&lt;?mso-application progid="InfoPath.Document"?&gt;&lt;?mso-infoPathSolution solutionVersion="1.0.0.1"&lt;br /&gt;    productVersion="11.0.6565" PIVersion="1.0.0.0" href="file:///C:\temp\myform.xsn"&lt;br /&gt;    name="urn:schemas-microsoft-com:office:infopath:myform:-myXSD-2006-04-10T18-43-30"&lt;br /&gt;    ?&gt;&lt;?mso-application progid="InfoPath.Document"?&gt;&lt;?mso-infoPathSolution solutionVersion="1.0.0.1"&lt;br /&gt;    productVersion="11.0.6565" PIVersion="1.0.0.0" href="file:///C:\temp\myform.xsn"&lt;br /&gt;    name="urn:schemas-microsoft-com:office:infopath:myform:-myXSD-2006-04-10T18-43-30"&lt;br /&gt;    ?&gt;&lt;?mso-application progid="InfoPath.Document"?&gt;&lt;?mso-application progid="InfoPath.Document"?&gt;&lt;br /&gt;&lt;br /&gt;    This tells the shell to launch it in infopath and where to find the design so it looks pretty.  &lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Partner Ports means "these two orchestrations are talking to each other"&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The SOAP adapter only works with the HTTP protocol - you can't run this over any other transport&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The SOAP adapter can be replaced with the use of the HTTP adapter and an XML Disassembler&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The class generated from the webservices wizard inherits from WebService, but also has code in the baseclass which can read from the management database to get receive location properties, and implements the adapter&lt;/li&gt;&lt;br /&gt;&lt;li&gt;A port must be marked as public on an orchestration to be exposed as a webservice&lt;/li&gt;&lt;br /&gt;&lt;li&gt;A BizTalk webservice consumes errors for security reasons, just returning "General Error" - you can turn this off in development, asking it to throw detailed errors in the web.config file&lt;/li&gt;&lt;br /&gt;&lt;li&gt;You can promote any name of property you like in a pipeline component - its just a name-value pair.  To select this property in the various dropdowns, etc, you have to create the propertyschema for it and deploy this to BizTalk.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The "public address" property on the adapter-port configuration for most adapters is just for documentation - used by the SEED tool to create packages allowing partners to talk to your interfaces&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Schemas and Maps&lt;/h2&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Selecting the "repeating record" type in the flat file schema wizard causes an element with MaxOccurs = "unbounded" to be emitted.  The normal record type does not so that each record becomes a message&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Setting the value field in a map writes that value into the output of the map.  An alternative is to use a concatenate functoid to output a constant string, this can then be used to output the same string to multiple destinations&lt;/li&gt;&lt;br /&gt;&lt;li&gt;New functoids in BizTalk 2006: Assert, Nil, IsNil, Logical Not.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Maps are more performant in 2006 because of the performance enhancements in .NET 2.0.  Also for large messages (&gt; 1MB) the transform is performed against a rewritten engine which is able to cache data to disk.  This prevents OOM errors - stops the transform failing rather than increases performance.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;The Message Box &amp; Subscriptions&lt;/h2&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Still have a master messagebox to control message flow to other message boxes&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Still should scale from 1-&gt;3 messageboxes as the step from 1-&gt;2 is consumed with the overhead of moving to DTC transactions&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The master messagebox can easily get maxed out on the CPU&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Subscribers are free to process messages as they see fit.  This is therefore an observer pattern rather than a push.&lt;br /&gt;A single service on each messagebox server calls DeQueue on the database until messages are found.  Each subscriber then gets a &lt;em&gt;copy&lt;/em&gt; of the message.  This is a new copy in memory until a persistence point is reached, at which point its written to the messagebox.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The message body (ie the contents) is deleted from the database when the service terminates (this includes when the message is routed to one or more subscribers)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;It follows that the message body is available to view from HAT, etc, when a message is suspended - its not removed from the database until terminated or successfully resumed&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The message is immutable outside of the adapters, pipelines and the create message shape.  This seems to be more a matter of making subscription logic/routing straightforward rather than for any technical or legal reason&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Enlisting an orchestration/send port (ie a service) sets up the subscriptions&lt;/li&gt;&lt;br /&gt;&lt;li&gt;A temporary xlang subscription is set up to hangle receive correlations - its set up at send time and removed when the subsription is satisfied&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Applications&lt;/h2&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Group, deploy and create MSI's based on an application&lt;/li&gt;&lt;br /&gt;&lt;li&gt;This is just a property of a BizTalk artifact.  You can't do anything deeper than that with them - for example run an application in a host.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The Default Application: Set up to receive applications upgraded from BTS2004, or artifacts deployed from the Visual Studio BizTalk Explorer.  &lt;br /&gt;The BizTalk explorer has not been changed for 2006 and so doesn't have the concept of an application.  You can rename the default Default Application to something better than &lt;br /&gt;BizTalk Application 1, or create a new application and mark it as default.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;You can start, stop, etc an entire application as a whole in the new BizTalk MMC.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Deployment &amp; the new MMC administration console&lt;/h2&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;BTSTask is the replancement command line tool for BizTalk deployments, replacing BTSDeploy, although BTSDeploy is installed with BizTalk 2006 for backwards compatibility&lt;/li&gt;&lt;br /&gt;&lt;li&gt;"Resources" are the new "assemblies" in the new BizTalk MMC&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The Cache interval is an editable parameter in the MMC.  This is the interval with which the host polls the management database for updates.  You can reduce this from 60s in a development environment to, say, 2s so that changes you make show up immediately.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Although &lt;a href="http://blogs.msdn.com/kevinsmi/"&gt;Kevin Smith&lt;/a&gt; told us that the updates are fed to the hosts using an eventing mechanism now.  Not sure what the truth is here.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Visual Studio tries to remember your binding settings when making bindings in the BizTalk explorer.  This is still no substitution for a &lt;a href="http://www.traceofthought.net/CategoryView,category,Deployment%20Framework.aspx"&gt;decent developer's deployment script&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;BAM&lt;/h2&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Major enhancements for 2006, tight integration with messaging (new for 2006) and orchestrations&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Non-BizTalk access through a .NET API&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Defined activities are compiled into generated tables, etc, in the BAMPrimaryImport DB&lt;/li&gt;&lt;br /&gt;&lt;li&gt;BM tool in BizTalk install directory is used to deploy and manage the DB - use bm deploy -all -definitionfile:*.xml to generate tables, etc, from the output of the tracking profile editor&lt;/li&gt;&lt;br /&gt;&lt;li&gt;To change an activity, undeploy and redeploy it&lt;/li&gt;&lt;br /&gt;&lt;li&gt;You can use SQL Notification Services for business alerting - this can be configured in the BAM portal tool that comes with 2006.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Enterprise Single Sign-on (SSO)&lt;/h2&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Used to exchange tokens for authentication credentials&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Used as a secure storage mechanism by the adapter framework&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Adapter framework is SSO aware.  Receive adapters can authenticate the inbound message - for example the HTTP receive, check the "Use Single Sign-on" checkbox.  This is then swapped for an SSO ticket and put in the message context.  Then send adapter can then use this ticket to look up the alternative credentials for the target system (using the affiliate).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;An affiliate is an external party - this is based on AD creds inbound - can't use client certificates, etc, although you can use specifically client certs to map to windows accounts on the way in.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;There are 3 versions of SSO: BTS, Sharepoint, HIS.  All are incompatible and BizTalk has the strategic version.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;SSO has a UI in 2006!&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Business Activity Services (BAS)&lt;/h2&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;A sharepoint portal for trading partners to view activity regarding their messages&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Hosts&lt;/h2&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;An isolated host is just configuration.  For example an HTTP receive running in an isolated host instance is simply the receive adapter ISAPI filter given permissions to access configuration data about the receive location and to post messages to the messagebox.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h2&gt;General &amp; .NET 2.0 changes affecting BizTalk&lt;/h2&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;When a BizTalk service wants a schema instance, for example, it looks up the details of the type in the management database, and then loads the type (from the GAC) and reads the schema as a string from a field on the type.&lt;br /&gt;This applies to the other compiled and deployed artifacts, and allows you to do the GAC swap rather than re-deploy every time.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;A new group for 2006 - &lt;a href="http://martijnh.blogspot.com/2006/01/privacy-and-biztalk-server-2006.html"&gt;BizTalk Server Operators&lt;/a&gt; have permissions to view context properties &amp; the message body for suspended messages - this previously required BizTalk Administrators group access.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;.NET 2.0 introduces new GAC folders (which you can see with the &lt;a href="http://www.google.co.uk/search?sourceid=navclient&amp;aq=t&amp;ie=UTF-8&amp;rls=GGLJ,GGLJ:2006-08,GGLJ:en&amp;q=disablecacheviewer"&gt;fusion viewer disabled&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;GAC - .NET 1.1 assemblies&lt;br /&gt;&lt;br /&gt;GAC 32 - assemblies rely on 32bit native code&lt;br /&gt;&lt;br /&gt;GAC 64 - assemblies rely on 64bit native code&lt;br /&gt;&lt;br /&gt;GAC MSIL - assemblies compiled against .NET 2.0 and don't rely on native code&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Versioning - multiple versions of assemblies can run side by side, but you must configure seperate receive ports for seperate orchestration versions.  Only recommended if side by side is planned (even for a short time).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Assembly.LoadFrom now reads the information from the dll at the path provided and actually loads the assembly from the GAC in .NET 2.0 (unlike in 1.1).  This means that the webservice wizard may be looking in the GAC at your assembly rather than at the path you provided.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Debugging webservices in Visual Studio 2005 are run in the integrated web server for debugging, but this does not run under the correct credentials (it runs as you) and potentially not against the correct version of .NET.  Turn this feature off to go back to testing under IIS.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-114668477528585040?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/114668477528585040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=114668477528585040' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/114668477528585040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/114668477528585040'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2006/05/biztalk-2006-notes.html' title='BizTalk 2006 Notes'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-114346807601666597</id><published>2006-03-27T15:00:00.000+01:00</published><updated>2006-03-27T15:01:16.030+01:00</updated><title type='text'>BizTalk 2006 Tracking Profile Editor (TPE) Error Messages</title><content type='html'>http://blogs.msdn.com/vtyagi/archive/2006/02/23/538265.aspx&lt;br /&gt;&lt;br /&gt;For example, "There are no ports associated with {0}."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-114346807601666597?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/114346807601666597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=114346807601666597' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/114346807601666597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/114346807601666597'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2006/03/biztalk-2006-tracking-profile-editor.html' title='BizTalk 2006 Tracking Profile Editor (TPE) Error Messages'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-114346040558193462</id><published>2006-03-27T12:52:00.000+01:00</published><updated>2006-03-27T12:53:25.593+01:00</updated><title type='text'>Where is BAM.XLA?</title><content type='html'>Not, as you would think, in the biztalk install directory.  At least not on my machine.&lt;br /&gt;&lt;br /&gt;C:\Program Files\Microsoft Office\OFFICE11\Library\Bam.xla&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-114346040558193462?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/114346040558193462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=114346040558193462' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/114346040558193462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/114346040558193462'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2006/03/where-is-bamxla.html' title='Where is BAM.XLA?'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-114018655326969443</id><published>2006-02-17T14:24:00.000Z</published><updated>2006-02-17T14:36:11.573Z</updated><title type='text'>Persistence Exception + Routing Failure</title><content type='html'>Often I'll get the following error:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Exception occurred when persisting state to the database.&lt;br /&gt;        &lt;br /&gt;Exception type: PersistenceException&lt;br /&gt;Source: Microsoft.XLANGs.BizTalk.Engine&lt;br /&gt;Target Site: Void Commit()&lt;br /&gt;Help Link: &lt;br /&gt;Additional error information:&lt;br /&gt;&lt;br /&gt;A batch item failed persistence Item-ID 72407d67-ec02-4c88-a404-b2af5df17b15 OperationType MAIO_CommitBatch Status -1061151998 ErrorInfo The published message could not be routed because no subscribers were found. Please use the Health and Activity Monitoring (HAT) tool to diagnose this situation.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;HAT doesn't seem to show anything in error and its all a bit misleading.&lt;br /&gt;&lt;br /&gt;This is usually because I have a direct messagebox send somewhere after where HAT shows the orchestration position.  I'm getting the persistence error because the thing that's supposed to be subscribing to the (direct sent) message is an independent send port which hasn't had its filter set or set correctly (remember you are often setting BTS.MessageType to the schema's target namespace + "#" + the root node name).  You have to set a filter on an independent send port - it won't just send everything!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-114018655326969443?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/114018655326969443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=114018655326969443' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/114018655326969443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/114018655326969443'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2006/02/persistence-exception-routing-failure.html' title='Persistence Exception + Routing Failure'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-113991954164538538</id><published>2006-02-14T12:15:00.000Z</published><updated>2006-02-14T12:31:20.470Z</updated><title type='text'>You have selected an invalid pipeline component assembly</title><content type='html'>When adding a pipeline component to the toolbar, the IDE checks the component, and apparently runs through all its dependencies.  If it can't resolve a dependency somewhere either through the GAC or in the same folder (normal probing rules) you get an error on attempting to add the component:&lt;br /&gt;&lt;br /&gt;You have selected an invalid pipeline component assembly... &amp;lt;then some red herring about security on UNC paths&amp;gt;&lt;br /&gt;&lt;br /&gt;You also get this error if you've not marked up your pipeline component properly - the component must have the following attribute on the class!&lt;br /&gt;&lt;br /&gt;[ComponentCategory(CategoryTypes.CATID_PipelineComponent)]&lt;br /&gt;&lt;br /&gt;*DOH*&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-113991954164538538?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/113991954164538538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=113991954164538538' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/113991954164538538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/113991954164538538'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2006/02/you-have-selected-invalid-pipeline.html' title='You have selected an invalid pipeline component assembly'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-113983642810562574</id><published>2006-02-13T13:13:00.000Z</published><updated>2006-02-13T13:14:36.120Z</updated><title type='text'>MQ Adapter rolls back transaction in case of subscription failure</title><content type='html'>&lt;a href="http://geekswithblogs.net/devdutt10/archive/2006/01/07/65170.aspx"&gt;A new, new year resolution....and the MQS adapter...&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;if the “TransactionSupported” property of a MQ Series receive location is set to “Yes”, and the “Maximum Messages in Batch” property is set to a number &gt; 1, the adapter will rollback transactions even in case of Subscription Failures&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-113983642810562574?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/113983642810562574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=113983642810562574' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/113983642810562574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/113983642810562574'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2006/02/mq-adapter-rolls-back-transaction-in.html' title='MQ Adapter rolls back transaction in case of subscription failure'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-113939623566155138</id><published>2006-02-08T10:57:00.000Z</published><updated>2006-02-08T10:57:15.673Z</updated><title type='text'>External assembly script functoid troubleshooting tips</title><content type='html'>A checklist in case its not going well for you:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Don't use static methods in the external assembly&lt;/li&gt;&lt;br /&gt;&lt;li&gt;If you want to use configuration file data from the assembly, and you're testing the map, put the configuration in devenv.config.  Obviously at runtime this should go in btsntsvc.config&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Add a reference to the external assembly in your map project&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Add the assembly to the GAC &amp; remember to refresh the GAC when you test map and deploy&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Use validate map to see the strong name of the assembly you're actually referencing - updating the version number of the assembly is not handled well and often means you're looking for an old dll&lt;/li&gt;&lt;br /&gt;&lt;li&gt;If you've updated the assembly, and can see the changes in the mapper, but they are not in evidence when you test map, restart visual studio&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Dates can come through with the &lt;a href="http://bencops.blogspot.com/2005/07/interesting-gotcha-when-working-with.html"&gt;UTC gotcha&lt;/a&gt; when being converted to datetime&lt;/li&gt;&lt;br /&gt;&lt;li&gt;XSD wants its dates in YYYY-MM-DD format&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-113939623566155138?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/113939623566155138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=113939623566155138' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/113939623566155138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/113939623566155138'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2006/02/external-assembly-script-functoid_08.html' title='External assembly script functoid troubleshooting tips'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-113930838201754125</id><published>2006-02-07T10:33:00.000Z</published><updated>2006-02-15T12:20:40.670Z</updated><title type='text'>Allow early termination</title><content type='html'>&lt;a href="http://groups.google.co.uk/group/microsoft.public.biztalk.nonxml/browse_frm/thread/25a46ead1df780f9/9b0bc84c8cf6bd82?q=last+record+&amp;amp;rnum=26#9b0bc84c8cf6bd82"&gt;This&lt;/a&gt; thread pointed me back to another Schema node extra - allow_early_termination="true".  This allows me to have the last element in a positional set within a set of delimited rows be shorter than specified.&lt;br /&gt;Handy for the 32A field on a SWIFT message which is positional for the date/currency/amount, with the amount "up to" 15 characters long.&lt;br /&gt;&lt;br /&gt;SWIFT accelerator come back - all is forgiven!&lt;br /&gt;&lt;br /&gt;[edit] if you import a schema within another, and use one of your nodes as a type in the parent, you need to remember to add this attribute on the parent too!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-113930838201754125?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/113930838201754125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=113930838201754125' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/113930838201754125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/113930838201754125'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2006/02/allow-early-termination.html' title='Allow early termination'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-113873101933167070</id><published>2006-01-31T18:10:00.000Z</published><updated>2006-01-31T18:11:30.883Z</updated><title type='text'>A day of filthy mapping gotchas</title><content type='html'>First it started with using xs:date fields (or xs:time apparently) in any external assembly or inline C# in a map that was expecting a System.DateTime field.&lt;br /&gt;You get "Object type cannot be converted to target type".&lt;br /&gt;Apparently you have to take a string for the parameter, rather than the DateTime, and convert in the code.  As Chris Holliday &lt;a href="http://www.biztalk-server.com/ftopic4981.html"&gt;remarked&lt;/a&gt;, "Not terribly intuitive", but I suppose it will do.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Next this evil:&lt;br /&gt;&lt;a href="http://codebetter.com/blogs/jeff.lynch/archive/2004/08/24/23127.aspx"&gt;Jeff Lynch : BizTalk Server 2004 - Native Parsing Error Gotcha!&lt;/a&gt;, which gives "Native parsing error: The path is not of a legal form"&lt;br /&gt;&lt;br /&gt;niiiice&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-113873101933167070?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/113873101933167070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=113873101933167070' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/113873101933167070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/113873101933167070'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2006/01/day-of-filthy-mapping-gotchas.html' title='A day of filthy mapping gotchas'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-113500853325864200</id><published>2005-12-19T16:08:00.000Z</published><updated>2005-12-19T16:08:53.306Z</updated><title type='text'>List of Microsoft Management Consoles and their File Names</title><content type='html'>&lt;a href="http://firechewy.com/blog/archive/2005/08/27/914.aspx"&gt;List of Microsoft Management Consoles and their File Names&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;"...so instead of digging through menus, I'm able to pull it up directly using START &gt; RUN &gt; eventvwr.msc"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-113500853325864200?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/113500853325864200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=113500853325864200' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/113500853325864200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/113500853325864200'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/12/list-of-microsoft-management-consoles.html' title='List of Microsoft Management Consoles and their File Names'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-113500474718520869</id><published>2005-12-19T15:05:00.000Z</published><updated>2005-12-19T15:05:47.230Z</updated><title type='text'>BizTalk accounts for multi-server installations</title><content type='html'>&lt;a href="http://blog.opsan.com/archive/2004/08/24/171.aspx"&gt;Michael Coates&lt;/a&gt; on user and group configuration for multi-server deployment in an AD environment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-113500474718520869?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/113500474718520869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=113500474718520869' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/113500474718520869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/113500474718520869'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/12/biztalk-accounts-for-multi-server.html' title='BizTalk accounts for multi-server installations'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-113328125284782739</id><published>2005-11-29T16:20:00.000Z</published><updated>2005-11-29T16:20:52.880Z</updated><title type='text'>Access Denied error with BizTalk 2004 Adapter for MQ WebSphere 2.0</title><content type='html'>Couple of gotchas from &lt;a href="http://blogs.msdn.com/joselcs/archive/2005/10/26/485356.aspx"&gt;Jose Luis Calvo&lt;/a&gt; on installing the MQ adapter.&lt;br /&gt;&lt;br /&gt;The other thing we've seen is an access denied error when trying to enumerate the queues and queue managers when creating a send or receive port in the property pages.&lt;br /&gt;You need to be in the mqm group (the account you're logged in with, not any of the service accounts involved), and, annoyingly, you need to reboot the MQ box after making that permission change.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-113328125284782739?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/113328125284782739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=113328125284782739' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/113328125284782739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/113328125284782739'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/11/access-denied-error-with-biztalk-2004.html' title='Access Denied error with BizTalk 2004 Adapter for MQ WebSphere 2.0'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-113223441271913174</id><published>2005-11-17T13:28:00.000Z</published><updated>2005-11-17T13:33:32.730Z</updated><title type='text'>SWIFT accelerator install gotcha</title><content type='html'>Today I was trying to install the SWIFT accelerator in a new domain, and I was getting the following error, even though I was logged in as a member of the biztalk admin group.&lt;br /&gt;&lt;br /&gt;"SWIFT accelerator In order to install the Run-time Components, the user must be a member of the BizTalk Server Administrators group and SQL Server must be running"&lt;br /&gt;&lt;br /&gt;Having hunted through the log file for the setup, it turns out the &lt;i&gt;name&lt;/i&gt; of the BizTalk admin group is hardcoded in the SWIFT accelerator setup.  We had changed the name of the group because it was too long for the domain, from BizTalk Server Administrators to BizTalk Administrators.  I added the group locally, added the user to the group, and the setup ran fine.  Nasty.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-113223441271913174?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/113223441271913174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=113223441271913174' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/113223441271913174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/113223441271913174'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/11/swift-accelerator-install-gotcha.html' title='SWIFT accelerator install gotcha'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-113040562479642661</id><published>2005-10-27T10:33:00.000+01:00</published><updated>2005-10-27T10:33:44.830+01:00</updated><title type='text'>BizTalk 2004 Install Problems with Windows 2003 SP1 Pre-Installed</title><content type='html'>&lt;a href="http://geekswithblogs.net/sthomas/archive/2005/06/21/44361.aspx"&gt;Installing biztalk on a win2k3 sp1 box&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;More MSDTC fun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-113040562479642661?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/113040562479642661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=113040562479642661' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/113040562479642661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/113040562479642661'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/10/biztalk-2004-install-problems-with.html' title='BizTalk 2004 Install Problems with Windows 2003 SP1 Pre-Installed'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-112982132233517540</id><published>2005-10-20T16:15:00.000+01:00</published><updated>2005-10-20T16:15:22.366+01:00</updated><title type='text'>BizTalk Server 2004: Generating C# source files</title><content type='html'>&lt;a href="http://geekswithblogs.net/cyoung/archive/2005/01/22/20633.aspx"&gt; Generating C# source files &lt;/A&gt;&lt;br /&gt;&lt;br /&gt;The registry change you need to make to keep a copy of the cs files the biztalk compiler spits out....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-112982132233517540?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/112982132233517540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=112982132233517540' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/112982132233517540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/112982132233517540'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/10/biztalk-server-2004-generating-c.html' title='BizTalk Server 2004: Generating C# source files'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-112618831898171949</id><published>2005-09-08T15:05:00.000+01:00</published><updated>2005-09-08T15:05:19.023+01:00</updated><title type='text'>Writing Effective BizTalk Server Adapters</title><content type='html'>Enrico Zerilli on &lt;a href="http://blogs.dotmark.net/enf/archive/2005/09/04/986.aspx"&gt;Writing Effective BizTalk Server Adapters&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-112618831898171949?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/112618831898171949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=112618831898171949' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/112618831898171949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/112618831898171949'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/09/writing-effective-biztalk-server.html' title='Writing Effective BizTalk Server Adapters'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-112230663349965746</id><published>2005-07-25T16:50:00.000+01:00</published><updated>2006-02-07T18:08:08.666Z</updated><title type='text'>Interesting "gotcha" when working with xs:date fields in BizTalk 2004</title><content type='html'>&lt;a href="http://geekswithblogs.net/nparker/archive/2004/10/28/13870.aspx"&gt;Interesting "gotcha" when working with xs:date fields in BizTalk 2004&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Done and done - thank god for google again!&lt;br /&gt;&lt;br /&gt;Edit: Posting the text of the blog in case it disappears....&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;What had happened was that the date had been converted to UTC format behind the scenes; From the bizTalk docs (If the datetime format does not specify time zone or UTC format, the time is assumed to be local and is converted to UTC based on the current time zone.)&lt;br /&gt;&lt;br /&gt;e.g. Say the date that was passed in was ‘2004-10-26’ when I accessed it by the distinguished property it’s value was ‘2004-10-25 11:00:00’ (UTC-13) - New Zealand timezone… therefore “distinguishedDeliveryDate.ToString("dd/MM/yyyy",System.Globalization.CultureInfo.InvariantCulture)” returned 25/10/2004 instead of what I was looking for 26/10/2004.&lt;br /&gt;&lt;br /&gt;The solution:&lt;br /&gt;Convert the datetime back from UTC datetime to local datetime using something similar to:&lt;br /&gt;&lt;br /&gt;distinguishedDeliveryDate  = distinguishedDeliveryDate.Add(TimeZone.CurrentTimeZone.GetUtcOffset(distinguishedDeliveryDate));&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-112230663349965746?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/112230663349965746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=112230663349965746' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/112230663349965746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/112230663349965746'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/07/interesting-gotcha-when-working-with.html' title='Interesting &quot;gotcha&quot; when working with xs:date fields in BizTalk 2004'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-112176378375284906</id><published>2005-07-19T10:03:00.000+01:00</published><updated>2005-07-19T10:03:03.810+01:00</updated><title type='text'>Using the BizTalk Assembly Viewer</title><content type='html'>&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/deploying/htm/ebiz_depl_assemblies_pade.asp"&gt;Using the BizTalk Assembly Viewer&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-112176378375284906?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/112176378375284906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=112176378375284906' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/112176378375284906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/112176378375284906'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/07/using-biztalk-assembly-viewer.html' title='Using the BizTalk Assembly Viewer'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-112134750291530943</id><published>2005-07-14T14:25:00.000+01:00</published><updated>2005-07-14T14:25:02.936+01:00</updated><title type='text'>Comparing XLANG/s and C#</title><content type='html'>&lt;a href="http://geekswithblogs.net/cyoung/articles/3820.aspx"&gt;Comparing XLANG/s and C#&lt;/a&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;br /&gt;A classic blog entry on XLANG - I must have googled into this page a million times...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-112134750291530943?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/112134750291530943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=112134750291530943' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/112134750291530943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/112134750291530943'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/07/comparing-xlangs-and-c.html' title='Comparing XLANG/s and C#'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-111952112127491955</id><published>2005-06-23T11:05:00.000+01:00</published><updated>2005-06-23T11:05:21.306+01:00</updated><title type='text'>BizTalk Server 2004 and Sql Server 2000 -&gt; XML Auto and XML Explicit</title><content type='html'>&lt;a href="http://objectsharp.com/Blogs/matt/archive/2005/03/22/1560.aspx"&gt;BizTalk Server 2004 and Sql Server 2000 -&gt; XML Auto and XML Explicit&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Details how to make the sql adapter work with XML Explicit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-111952112127491955?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/111952112127491955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=111952112127491955' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/111952112127491955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/111952112127491955'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/06/biztalk-server-2004-and-sql-server.html' title='BizTalk Server 2004 and Sql Server 2000 -&gt; XML Auto and XML Explicit'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-111928915157629982</id><published>2005-06-20T18:39:00.000+01:00</published><updated>2005-06-20T18:39:11.603+01:00</updated><title type='text'>Quick Tip: How to control XML encoding in BizTalk Server 2004</title><content type='html'>&lt;a href="http://geekswithblogs.net/cyoung/archive/2004/07/04/7584.aspx"&gt;Quick Tip: How to control XML encoding in BizTalk Server 2004&lt;/a&gt;: "XMLNorm.TargetCharset"&lt;br /&gt;&lt;br /&gt;Posting this for the greater good...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-111928915157629982?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/111928915157629982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=111928915157629982' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/111928915157629982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/111928915157629982'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/06/quick-tip-how-to-control-xml-encoding.html' title='Quick Tip: How to control XML encoding in BizTalk Server 2004'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-111538969577151954</id><published>2005-05-06T15:24:00.000+01:00</published><updated>2005-05-06T15:28:15.776+01:00</updated><title type='text'>String literals in port filters</title><content type='html'>Send port filters &lt;em&gt;have no quotes&lt;/em&gt;&lt;br /&gt;Receive port (in orchestrations) filters &lt;em&gt;have quotes&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-111538969577151954?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/111538969577151954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=111538969577151954' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/111538969577151954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/111538969577151954'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/05/string-literals-in-port-filters.html' title='String literals in port filters'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-111459313250281978</id><published>2005-04-27T10:12:00.000+01:00</published><updated>2005-04-27T10:12:12.503+01:00</updated><title type='text'>BizTalk Server Performance Blog</title><content type='html'>The &lt;a href="http://blogs.msdn.com/biztalkperformance/"&gt;BizTalk Server Performance&lt;/a&gt; blog is essential reading.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-111459313250281978?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/111459313250281978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=111459313250281978' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/111459313250281978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/111459313250281978'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/04/biztalk-server-performance-blog.html' title='BizTalk Server Performance Blog'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-111459151989861641</id><published>2005-04-27T09:45:00.000+01:00</published><updated>2005-04-27T09:45:19.896+01:00</updated><title type='text'>Positional Flat File Processing with BizTalk 2004: Early Termination</title><content type='html'>&lt;a href="http://weblogs.asp.net/jan/archive/2004/04/15/113638.aspx"&gt;Positional Flat File Processing with BizTalk 2004: Early Termination&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;More undocumented schemaInfo node flags:&lt;br /&gt;&lt;br /&gt;allow_early_termination="true"&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-111459151989861641?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/111459151989861641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=111459151989861641' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/111459151989861641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/111459151989861641'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/04/positional-flat-file-processing-with.html' title='Positional Flat File Processing with BizTalk 2004: Early Termination'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-111296869971534784</id><published>2005-04-08T14:58:00.000+01:00</published><updated>2005-04-08T14:58:19.716+01:00</updated><title type='text'>BizTalk Server Performance : Understanding BizTalk Server 2004 SP1 Throughput and Capacity</title><content type='html'>&lt;a href="http://blogs.msdn.com/biztalkperformance/archive/2005/04/07/406343.aspx"&gt;BizTalk Server Performance : Understanding BizTalk Server 2004 SP1 Throughput and Capacity&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A fascinating read about BTS performance under load &amp; throttling, etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-111296869971534784?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/111296869971534784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=111296869971534784' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/111296869971534784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/111296869971534784'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/04/biztalk-server-performance.html' title='BizTalk Server Performance : Understanding BizTalk Server 2004 SP1 Throughput and Capacity'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-111270322273774596</id><published>2005-04-05T13:13:00.000+01:00</published><updated>2005-04-05T13:13:42.740+01:00</updated><title type='text'>Programming BizTalk with WMI and the VStudio addin</title><content type='html'>The &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=62d91a63-1253-4ea6-8599-68fb3ef77de1&amp;DisplayLang=en"&gt;WMI addin for visual studio&lt;/a&gt; is pretty cool.  After some flailing about sans documentation (well there is some, but its along the lines of "HostSettings: Represents the host settings"), and a swift decompile of the management classes to check out exactly what it was doing with what parameter (thanks again, reflector), the paradigm sunk in.&lt;br /&gt;&lt;br /&gt;I added managed classes for MSBTS_HostSetting, and MSBTS_Orchestration.  From this I can determine the default host:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;this.Log(Level.Info, "Getting default host");&lt;br /&gt;HostSetting.HostSettingCollection hosts = HostSetting.GetInstances();&lt;br /&gt;if (hosts.Count &lt; 1)&lt;br /&gt; throw new BuildException("No hosts found");&lt;br /&gt;string hostName = "";&lt;br /&gt;foreach (HostSetting host in hosts)&lt;br /&gt;{&lt;br /&gt; if (host.IsDefault)&lt;br /&gt; {&lt;br /&gt;  hostName = host.Name;&lt;br /&gt;  break;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;And start an orchestration:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;//get all orchestrations on the local server using WMI&lt;br /&gt;Orchestration.OrchestrationCollection orchs = Orchestration.GetInstances();&lt;br /&gt;//loop over all the orchestrations exposed by WMI and find the one we want to start now&lt;br /&gt;foreach (Orchestration orchestration in orchs)&lt;br /&gt;{&lt;br /&gt; if (orchestration.Name == targetOrch)&lt;br /&gt; {&lt;br /&gt;  this.Log(Level.Info, "Starting " + orchestration.Name);&lt;br /&gt;  orchestration.Enlist(hostName);&lt;br /&gt;  orchestration.Start(2, 2, 2);&lt;br /&gt;  this.Log(Level.Info, "Started " + orchestration.Name);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-111270322273774596?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/111270322273774596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=111270322273774596' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/111270322273774596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/111270322273774596'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/04/programming-biztalk-with-wmi-and.html' title='Programming BizTalk with WMI and the VStudio addin'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-111263038480227019</id><published>2005-04-04T16:59:00.000+01:00</published><updated>2005-04-04T17:01:06.053+01:00</updated><title type='text'>Programming with the 'Management (WMI) Extensions for Visual Studio .NET 2003 Server Explorer'</title><content type='html'>&lt;a href="http://geekswithblogs.com/gwiele/archive/2005/03/16/26469.aspx"&gt;BizTalk WMI programming: How to write cleaner WMI code a lot faster&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is great.  WMI code is bloody awful, late-bound, 1998 nonsense.  I mean, look at this:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Query = "SELECT * FROM MSBTS_Orchestration WHERE Name =""" &amp; OrchestrationName &amp; """ AND AssemblyName = """ &amp; AssemblyName &amp; """"&lt;br /&gt;Set InstSet = GetObject("Winmgmts:!root\MicrosoftBizTalkServer").ExecQuery(Query)&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Wicked.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-111263038480227019?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/111263038480227019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=111263038480227019' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/111263038480227019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/111263038480227019'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/04/programming-with-management-wmi.html' title='Programming with the &apos;Management (WMI) Extensions for Visual Studio .NET 2003 Server Explorer&apos;'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-111149099836894843</id><published>2005-03-22T11:29:00.000Z</published><updated>2005-03-22T11:29:58.366Z</updated><title type='text'>Updated NAnt deploy stuff for BTS2004</title><content type='html'>&lt;a href="http://www.traceofthought.net/PermaLink,guid,4c15b14f-9c14-40a3-a9fe-2770894e8c3f.aspx"&gt;Trace of Thought (Scott Colestock) - Integrating SSO/Configuration with Deployments&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-111149099836894843?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/111149099836894843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=111149099836894843' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/111149099836894843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/111149099836894843'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/03/updated-nant-deploy-stuff-for-bts2004.html' title='Updated NAnt deploy stuff for BTS2004'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-110968230054464480</id><published>2005-03-01T13:05:00.000Z</published><updated>2005-03-01T13:05:00.543Z</updated><title type='text'>Large messages in BizTalk 2004, what's the deal?</title><content type='html'>&lt;a href="http://blogs.msdn.com/biztalk_core_engine/archive/2005/02/28/381700.aspx"&gt;Large messages in BizTalk 2004, what's the deal?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is a fascinating read, as recommended to me by &lt;a href="http://geekswithblogs.net/toddu/"&gt;Todd Uhl&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-110968230054464480?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/110968230054464480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=110968230054464480' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/110968230054464480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/110968230054464480'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/03/large-messages-in-biztalk-2004-whats.html' title='Large messages in BizTalk 2004, what&apos;s the deal?'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-110959650315547546</id><published>2005-02-28T13:15:00.000Z</published><updated>2005-02-28T13:15:03.156Z</updated><title type='text'>Going binary with BizTalk</title><content type='html'>&lt;a href="http://weblogs.asp.net/christof_claessens/archive/2004/07/08/177551.aspx"&gt;Going binary with BizTalk&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Details how to create a non-XML based message in code from within an orchestration&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-110959650315547546?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/110959650315547546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=110959650315547546' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/110959650315547546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/110959650315547546'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/02/going-binary-with-biztalk.html' title='Going binary with BizTalk'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-110899635872250995</id><published>2005-02-21T14:32:00.000Z</published><updated>2005-02-21T14:32:38.723Z</updated><title type='text'>Starting BizTalk Server 2004 orchestrations using the MessageAgent.</title><content type='html'>&lt;a href="http://weblogs.asp.net/gsusx/archive/2005/01/08/349177.aspx"&gt;Starting BizTalk Server 2004 orchestrations using the MessageAgent.&lt;/a&gt;: "The messaging system of BizTalk Server 2004 relies over a powerful publish-subscribe architecture that uses Sql Server "&lt;br /&gt;&lt;br /&gt;Interesting article about directly invoking biztalk orchestrations using some of the "under the hood" subscription APIs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-110899635872250995?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/110899635872250995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=110899635872250995' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/110899635872250995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/110899635872250995'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/02/starting-biztalk-server-2004.html' title='Starting BizTalk Server 2004 orchestrations using the MessageAgent.'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-110812549220909937</id><published>2005-02-11T12:38:00.000Z</published><updated>2005-02-11T12:38:12.210Z</updated><title type='text'>Complete Tosh, by Neil McIntosh: "My iPod has a personality!" No, really. It doesn't.</title><content type='html'>&lt;a href="http://www.completetosh.com/weblog/2004/08/my_ipod_has_a_b.html"&gt;Complete Tosh, by Neil McIntosh: "My iPod has a personality!" No, really. It doesn't.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-110812549220909937?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/110812549220909937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=110812549220909937' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/110812549220909937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/110812549220909937'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/02/complete-tosh-by-neil-mcintosh-my-ipod.html' title='Complete Tosh, by Neil McIntosh: &quot;My iPod has a personality!&quot; No, really. It doesn&apos;t.'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-110786161277109947</id><published>2005-02-08T11:20:00.000Z</published><updated>2005-02-08T11:20:12.770Z</updated><title type='text'>Implementing the Singleton Pattern in C#</title><content type='html'>&lt;a href="http://www.yoda.arachsys.com/csharp/singleton.html"&gt;Implementing the Singleton Pattern in C#&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For reference, I always use the fourth version:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;public sealed class Singleton&lt;br /&gt;{&lt;br /&gt;    static readonly Singleton instance=new Singleton();&lt;br /&gt;&lt;br /&gt;    // Explicit static constructor to tell C# compiler&lt;br /&gt;    // not to mark type as beforefieldinit&lt;br /&gt;    static Singleton()&lt;br /&gt;    {&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    Singleton()&lt;br /&gt;    {&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public static Singleton Instance&lt;br /&gt;    {&lt;br /&gt;        get&lt;br /&gt;        {&lt;br /&gt;            return instance;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-110786161277109947?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/110786161277109947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=110786161277109947' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/110786161277109947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/110786161277109947'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/02/implementing-singleton-pattern-in-c.html' title='Implementing the Singleton Pattern in C#'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-110751615696630892</id><published>2005-02-04T11:19:00.000Z</published><updated>2005-02-04T11:22:36.966Z</updated><title type='text'>WMI Out Of Memory issue solved</title><content type='html'>The out of memory issue I posted about &lt;a href="http://bencops.blogspot.com/2005/01/out-of-memory-errors-on-enlisting.html"&gt;previously&lt;/a&gt; has been fixed in SP1 - hooray!  It had also been fixed in a hotfix a colleague sent me:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;838977"&gt;FIX: You receive an error message when you use the WMI MSBTS_DeploymentService API to deploy large assemblies in BizTalk Server 2004&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-110751615696630892?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/110751615696630892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=110751615696630892' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/110751615696630892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/110751615696630892'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/02/wmi-out-of-memory-issue-solved.html' title='WMI Out Of Memory issue solved'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-110747530266970322</id><published>2005-02-04T01:01:00.000Z</published><updated>2005-02-04T00:01:42.670Z</updated><title type='text'>Thirty</title><content type='html'>Happy birthday to me....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-110747530266970322?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/110747530266970322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=110747530266970322' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/110747530266970322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/110747530266970322'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/02/thirty.html' title='Thirty'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-110686547871677430</id><published>2005-01-27T22:35:00.000Z</published><updated>2005-04-28T00:04:40.216+01:00</updated><title type='text'>Jeez</title><content type='html'>&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Pipeline components - put them in a folder&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Functoids - put them in a folder and gac em [sometimes]&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Everything else - gac it and deploy it&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;why?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-110686547871677430?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/110686547871677430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=110686547871677430' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/110686547871677430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/110686547871677430'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/01/jeez.html' title='Jeez'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-110667518283457797</id><published>2005-01-25T17:46:00.000Z</published><updated>2005-01-27T22:39:09.903Z</updated><title type='text'>BizTalk file dumping utility is no more</title><content type='html'>Charles Young - despite being not your average joe, knows when to admit his code is redundant.  Looks like you can get Visual Studio to show you the temporary files used when creating BizTalk artifacts without an extra tool:&lt;br /&gt; &lt;a href="http://geekswithblogs.net/cyoung/archive/2005/01/22/20633.aspx"&gt;BizTalk Server 2004: Generating C# source files&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;NB: This only seems to work when the artifact compiles...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-110667518283457797?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/110667518283457797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=110667518283457797' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/110667518283457797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/110667518283457797'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/01/biztalk-file-dumping-utility-is-no.html' title='BizTalk file dumping utility is no more'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-110665561850915763</id><published>2005-01-25T13:20:00.000Z</published><updated>2005-01-25T12:23:38.356Z</updated><title type='text'>BizTalk Server 2004 Content Based Routing (CBR) and Quotation Marks</title><content type='html'>This: &lt;a href="http://blog.magenic.com/andym/archive/2004/08/10/290.aspx"&gt;BizTalk Server 2004 Content Based Routing (CBR) and Quotation Marks&lt;/a&gt; came up the other day, although I had it the wrong way round:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;SendPort Filters = no quotation marks for string values&lt;br /&gt;&lt;br /&gt;Receive Shape Filters (in Orchestration) = quotation marks for string values.&lt;/blockquote&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-110665561850915763?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/110665561850915763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=110665561850915763' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/110665561850915763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/110665561850915763'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/01/biztalk-server-2004-content-based.html' title='BizTalk Server 2004 Content Based Routing (CBR) and Quotation Marks'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-110572281739306495</id><published>2005-01-14T17:13:00.000Z</published><updated>2005-01-14T18:07:47.000Z</updated><title type='text'>Failed to retreive [sic] the basic properties of the Pipeline component: 'xxx'</title><content type='html'>I wanted to provide a character encoding property on a pipeline component, so that the developer using the component could select the appropriate encoding that the incoming and outgoing stream should use.  Having seen a similar property in the flat file assembler, I cracked open reflector and pointed it at ffasm.dll.  The TargetCharset property is typed for a class called "CharsetList", which is basically just a class that takes a codepage and the name of the charset and is marked with the following attributes&lt;br /&gt;&lt;code&gt;&lt;br /&gt;[Serializable, Editor(typeof(CharsetPropertyEditor), typeof(UITypeEditor))]&lt;br /&gt;public class CharsetList&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Also defined is the class CharsetPropertyEditor : UITypeEditor.  This has a DrawItem method that produces the nice dropdown list of available character sets.  In the same assembly there appears to be a similar affair for the schema selection list you've seen a million times, so I'll be stealing that when the need arises.&lt;br /&gt;&lt;br /&gt;So, I created the property, typed it for CharsetList (which lives in Microsoft.BizTalk.Component.Utilities), added code to persist the field in the propertybag, deployed the pipeline component, but everytime I used it in a pipeline, and tried to save the pipeline, vstudio pipes up with the above error.  &lt;br /&gt;&lt;br /&gt;After a bit of digging, the answer was obvious.  CharsetList doesn't implement IPersistPropertyBag - I'm so used to expecting everything to work for me when I see [Serializable] that I forgot about the plumbing of this old ActiveX interface.  The code to persist the charsetlist now looks like:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Object charSetName = ReadPropertyBag(pb, "charSetName");&lt;br /&gt;Object charSetCodePage = ReadPropertyBag(pb, "charSetCodePage");&lt;br /&gt;if (charSetName != null &amp;&amp; charSetCodePage != null &amp;&amp; (int)charSetCodePage != 0) CharSet = new CharsetList((string)charSetName, (int)charSetCodePage);&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;So I just sidestepped the issue and persisted the two fields in the object seperately.  You could also inherit from charsetlist and implement IPersistPropertybag.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-110572281739306495?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/110572281739306495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=110572281739306495' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/110572281739306495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/110572281739306495'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/01/failed-to-retreive-sic-basic.html' title='Failed to retreive [sic] the basic properties of the Pipeline component: &apos;xxx&apos;'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-110561149668327947</id><published>2005-01-13T09:49:00.000Z</published><updated>2005-02-04T11:24:06.483Z</updated><title type='text'>Out of Memory Errors on Enlisting Orchestrations</title><content type='html'>[Note - this issue has now been &lt;a href="http://bencops.blogspot.com/2005/02/wmi-out-of-memory-issue-solved.html"&gt;addressed&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;Having added a number of orchestrations to my orchestration project, I started getting a variety of out of memory errors when enlisting orchestrations using WMI:&lt;br /&gt;&lt;br /&gt;"Exception of type System.OutOfMemoryException was thrown.(HRESULT: 80131600)."&lt;br /&gt;&lt;br /&gt;"External component has thrown an exception.(HRESULT: 80131600).&lt;br /&gt;&lt;br /&gt;            BizTalk Server cannot access SQL server.  This could be due to &lt;br /&gt;one of the following reasons:&lt;br /&gt;            1. Access permissions have been denied to the current user.  ..."&lt;br /&gt;&lt;br /&gt;"An SEHException exception occurred while the XLANG/s runtime enlisted a &lt;br /&gt;service.&lt;br /&gt;Error message:External component has thrown an exception.&lt;br /&gt;Call stack:   at Microsoft.BizTalk.MetaDataOM.ICLRType.GetFields(UInt32 &lt;br /&gt;dwBindingFlags)..."&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I applied Lee Graber's suggestion of increasing the amount of memory available to WMI using the following script:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;var locator = WScript.CreateObject ("WbemScripting.SWbemLocator");&lt;br /&gt;var wmi = locator.ConnectServer ("", "root");&lt;br /&gt;var quota = wmi.Get ("__providerhostquotaconfiguration=@");&lt;br /&gt;quota.MemoryPerHost = 384*1024*1024;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;But this just gave me GPF errors gpf faults from wmiprvse.exe.&lt;br /&gt;&lt;br /&gt;Finally, I found splitting the orchestrations into tiers, in seperate projects greatly lessened the problem as it decreases the amount of memory required to enlist the orchestrations in an assembly - the problems still occured but far less frequently.  still, wmiprvse is using hundreds of megabytes of RAM to enlist an orchestration &lt;em&gt;what is it doing?&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-110561149668327947?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/110561149668327947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=110561149668327947' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/110561149668327947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/110561149668327947'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2005/01/out-of-memory-errors-on-enlisting.html' title='Out of Memory Errors on Enlisting Orchestrations'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-110001931938821824</id><published>2004-11-09T16:51:00.000Z</published><updated>2004-11-09T16:55:19.386Z</updated><title type='text'>Remoting issues with strongly named assemblies</title><content type='html'>All your assemblies are strongly named, because BTS wants them all in the GAC, right?&lt;br /&gt;&lt;br /&gt;Therefore you'll run into this issue if you try to remote them and need to serialise (byref) your types as parameters:&lt;br /&gt;&lt;br /&gt;System.Runtime.Serialization.SerializationException : Because of security restrictions, the type [classname] cannot be accessed.&lt;br /&gt;This is new to .net 1.1.&lt;br /&gt;This guy &lt;a href="http://surrealization.com/viewpost-569.aspx"&gt;has the answer&lt;/a&gt;.  Essentially you need to mark the serialised class as follows&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;//The following attribute specifies that we are happy for this assembly to be remoted&lt;br /&gt;//(serialised, anyway) - in .net version 1.1 a security check is added for strongly named&lt;br /&gt;//types that means that deserialisation is disallowed unless either the deserialised class's assembly&lt;br /&gt;//"Allow[s]PartiallyTrustedCallers", or the typeFilterLevel of the server/deserializer set to Full.&lt;br /&gt;[assembly: AllowPartiallyTrustedCallers]&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-110001931938821824?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/110001931938821824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=110001931938821824' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/110001931938821824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/110001931938821824'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2004/11/remoting-issues-with-strongly-named.html' title='Remoting issues with strongly named assemblies'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-109664528651309713</id><published>2004-10-01T16:41:00.000+01:00</published><updated>2004-10-02T13:04:27.266+01:00</updated><title type='text'>Where are the MQ adapter context properties?</title><content type='html'>&lt;a href="mk:@MSITStore:C:\Program%20Files\Microsoft%20BizTalk%20Server%202004%20Adapter%20for%20MQSeries\Documentation\BTAMQS04.chm::/htm/mqseries_pg_bbgn.htm"&gt;Where are the MQ adapter context properties?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You need to reference the relevant dll in your project&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;This assembly is located where you installed BizTalk Adapter for MQSeries, for example, &amp;lt;drive:&amp;gt\Program Files\Microsoft BizTalk Server 2004&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-109664528651309713?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/109664528651309713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=109664528651309713' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/109664528651309713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/109664528651309713'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2004/10/where-are-mq-adapter-context.html' title='Where are the MQ adapter context properties?'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-109664464610466189</id><published>2004-10-01T16:30:00.000+01:00</published><updated>2004-10-01T16:30:46.106+01:00</updated><title type='text'>Generic BizTalk Build System</title><content type='html'>&lt;a href="http://www.peterprovost.org/archive/2004/08/18/1802.aspx"&gt;Generic BizTalk Build System&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A cool update to Scott's original script, which addresses the orchestration ordering thing.  I think its reflected in the &lt;a href="http://www.traceofthought.net/PermaLink,guid,09ad4181-dde2-4906-884b-d023f80fc800.aspx"&gt;updated "official" script&lt;/a&gt; too&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-109664464610466189?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/109664464610466189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=109664464610466189' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/109664464610466189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/109664464610466189'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2004/10/generic-biztalk-build-system.html' title='Generic BizTalk Build System'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-109645537416561113</id><published>2004-09-29T11:56:00.000+01:00</published><updated>2004-09-29T11:56:14.166+01:00</updated><title type='text'>Microsoft BizTalk Server: BizTalk Adapter for MQSeries v2.0</title><content type='html'>&lt;a href="http://www.microsoft.com/biztalk/evaluation/adapter/adapters/mqseries/2004/default.asp"&gt;Microsoft BizTalk Server: BizTalk Adapter for MQSeries v2.0&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The MQ adapter for 2004 is out, and suddenly its free...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-109645537416561113?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/109645537416561113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=109645537416561113' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/109645537416561113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/109645537416561113'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2004/09/microsoft-biztalk-server-biztalk.html' title='Microsoft BizTalk Server: BizTalk Adapter for MQSeries v2.0'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-109464294898858392</id><published>2004-09-08T13:26:00.000+01:00</published><updated>2007-07-21T10:02:43.936+01:00</updated><title type='text'>SWIFT BRE deployment utility</title><content type='html'>&lt;p&gt;The SWIFT BRE deployment utility *can* be run automatically/from the command line/from my NAnt script. &lt;/p&gt;&lt;p&gt;A swift &amp;lt;koff&amp;gt;decompile reveals that popping the assembly name to inspect + deploy on the command line executes the deploy, and exits the utility&lt;/p&gt;&lt;p&gt;&lt;code&gt;&lt;br /&gt;if (cmdLine.Length &gt; 0)&lt;br /&gt;{&lt;br /&gt; MainForm.silentInstall = true;&lt;br /&gt;for (num1 = 0; (num1 &lt; cmdLine.Length); num1 = (num1 + 1))&lt;br /&gt;{&lt;br /&gt; form1.AddAssembly(cmdLine[num1]);&lt;br /&gt; &lt;br /&gt;}&lt;br /&gt;form1.Show();&lt;br /&gt;form1.Refresh();&lt;br /&gt;form1.btnDeploy_Click(null, null);&lt;br /&gt;Application.Exit();&lt;br /&gt; &lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{ Application.Run(form1);&lt;br /&gt; &lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;so you can just do a:&lt;br /&gt;Microsoft.Solutions.FinancialServices.SWIFT.BREDeploymentUtility.exe SWIFTSchemas&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;UPDATE: For SWIFT 2.1 this changed so that the syntax was:&lt;br /&gt;Microsoft.Solutions.FinancialServices.SWIFT.BREDeploymentUtility.exe deploy SWIFTSchemas&lt;br /&gt;or&lt;br /&gt;Microsoft.Solutions.FinancialServices.SWIFT.BREDeploymentUtility.exe undeploy SWIFTSchemas&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-109464294898858392?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/109464294898858392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=109464294898858392' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/109464294898858392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/109464294898858392'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2004/09/swift-bre-deployment-utility.html' title='SWIFT BRE deployment utility'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-109464269482855704</id><published>2004-09-08T13:07:00.000+01:00</published><updated>2004-09-08T20:36:41.186+01:00</updated><title type='text'>Orchestration Namespace problems...</title><content type='html'>My orchestrations stopped compiling. First I got this error:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;"'': can only call or exec a service"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;…for each call orchestration call shape, and a matching error saying it can’t resolve the orchestration name (although the dropdowns and intellisense,etc, appear to be perfectly capable of resolving the orchestration name – they’re all in the one project after all). If I removed all of the call orchestration shapes I got this error&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;The namespace '&lt;namespace&gt;.BizTalk.Orchestrations.Service' already contains a definition for '_MODULE_PROXY_'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;One for each namespace node involved. Looking at the interim files &lt;a href="http://geekswithblogs.net/cyoung/articles/4867.aspx"&gt;generated&lt;/a&gt; there is indeed an empty, sealed class called _MODULE_PROXY_ in the generated code.&lt;br /&gt;&lt;br /&gt;This was I think, in the end, a visual studio bug.&lt;br /&gt;I have my (30 odd) orchestrations sorted by type into folders. At a certain point (I haven’t established the exact conditions) vstudio starts defaulting the namespace property of the individual orchestration to the wrong namespace – instead of &amp;lt;orchestration&amp;gt;.&amp;lt;foldername&amp;gt;.orchestration, it sometimes just puts module1 in for foldername or just leaves the foldername out altogether.&lt;br /&gt;Any deviance from the “right way” gives the errors detailed below. What really caused problems for me was that you don’t get to the namespace property of the orchestration by looking at the properties window for the orchestration file, but by opening the orchestration, and clicking on the whitespace in the orchestration designer, then looking at the properties window. I'd thought of a namespace problem first, but discounted it because I couldn't find a namespace property for an individual orchestration, and so assumed it couldn't be set per orch. Live and learn…&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-109464269482855704?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/109464269482855704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=109464269482855704' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/109464269482855704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/109464269482855704'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2004/09/orchestration-namespace-problems.html' title='Orchestration Namespace problems...'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-109352875606639220</id><published>2004-08-26T14:59:00.000+01:00</published><updated>2004-08-26T14:59:16.066+01:00</updated><title type='text'>313512 - BUG: "Could Not Copy Temporary Files to the Output Directory" Error Message When You Build a Solution That Contains Multiple Projects</title><content type='html'>&lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;313512"&gt;313512 - BUG: "Could Not Copy Temporary Files to the Output Directory" Error Message When You Build a Solution That Contains Multiple Projects&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So its not just "one of those Visual Studio things that only affect my project", its a bona-fide bug?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-109352875606639220?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/109352875606639220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=109352875606639220' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/109352875606639220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/109352875606639220'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2004/08/313512-bug-could-not-copy-temporary.html' title='313512 - BUG: &quot;Could Not Copy Temporary Files to the Output Directory&quot; Error Message When You Build a Solution That Contains Multiple Projects'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-109333721027703421</id><published>2004-08-24T09:28:00.000+01:00</published><updated>2004-08-24T09:46:50.276+01:00</updated><title type='text'>XMLSerializer encoding</title><content type='html'>The XMLSerializer spits out streams encoded as UTF-8 by default, if you just feed it a bare stream to serialise to. Force it to use a more BTS friendly encoding by providing it with a StreamWriter or similar with a explicit encoding;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;/// &lt;summary&gt;&lt;br /&gt;/// Serialises an object to a unicode string&lt;br /&gt;/// &lt;/summary&gt;&lt;br /&gt;/// &lt;param name="objectToSerialise"&gt;The object to serialise&lt;/param&gt;&lt;br /&gt;/// &lt;returns&gt;A string representing the serialised object&lt;/returns&gt;&lt;br /&gt;public static string Serialise(object objectToSerialise)&lt;br /&gt;{&lt;br /&gt;//create an xml serialiser for the object's type&lt;br /&gt;XmlSerializer ser = new XmlSerializer(objectToSerialise.GetType());&lt;br /&gt;//create a memory stream object to hold the data for the serialised type&lt;br /&gt;MemoryStream baseStream = new MemoryStream();&lt;br /&gt;//create a streamwriter, so we can write in unicode encoding to the stream&lt;br /&gt;StreamWriter encodingWriter = new StreamWriter(baseStream, System.Text.Encoding.Unicode);&lt;br /&gt;//get xmlserialiser to write to the base memorystream through the encoded stream writer&lt;br /&gt;ser.Serialize(encodingWriter, objectToSerialise);&lt;br /&gt;//set the memorystream back to the start, and extract the unicode string from it&lt;br /&gt;baseStream.Position = 0;&lt;br /&gt;return CommonServices.StreamToString(baseStream);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-109333721027703421?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/109333721027703421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=109333721027703421' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/109333721027703421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/109333721027703421'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2004/08/xmlserializer-encoding.html' title='XMLSerializer encoding'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-109291541240317701</id><published>2004-08-19T12:36:00.000+01:00</published><updated>2004-08-19T12:36:52.403+01:00</updated><title type='text'>Backup Your BizTalk Server 2004 Master Secret</title><content type='html'>&lt;a href="http%3A%2F%2Fweblogs.asp.net%2Fjan%2Farchive%2F2004%2F04%2F26%2F120142.aspx"&gt;Backup Your BizTalk Server 2004 Master Secret&lt;/a&gt;: "ssoconfig -backupsecret mybackup.bak"&lt;br /&gt;&lt;br /&gt;I finally got bored enough with seeing these errors to do this!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-109291541240317701?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/109291541240317701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=109291541240317701' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/109291541240317701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/109291541240317701'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2004/08/backup-your-biztalk-server-2004-master.html' title='Backup Your BizTalk Server 2004 Master Secret'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-109170606929052867</id><published>2004-08-05T12:41:00.000+01:00</published><updated>2004-08-05T12:41:09.290+01:00</updated><title type='text'>Acknowledgments and Negative Acknowledgments (Part 1)</title><content type='html'>Good ACK blog:&lt;br /&gt;&lt;a href="http://blogs.msdn.com/kevinsmi/archive/2004/07/03/172574.aspx"&gt;Acknowledgments and Negative Acknowledgments (Part 1)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-109170606929052867?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/109170606929052867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=109170606929052867' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/109170606929052867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/109170606929052867'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2004/08/acknowledgments-and-negative.html' title='Acknowledgments and Negative Acknowledgments (Part 1)'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-109170033099393174</id><published>2004-08-05T11:05:00.000+01:00</published><updated>2004-08-05T11:05:30.993+01:00</updated><title type='text'>BTS2004 explorer extension</title><content type='html'>&lt;a href="http://blogs.msdn.com/scottwoo/archive/2004/02/04/67358.aspx"&gt;BTS2004 explorer extension&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I *always* forget where this is - and its here&lt;br /&gt;C:\Program Files\Microsoft BizTalk Server 2004\Developer Tools\BtsAsmExt.dll&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-109170033099393174?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/109170033099393174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=109170033099393174' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/109170033099393174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/109170033099393174'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2004/08/bts2004-explorer-extension.html' title='BTS2004 explorer extension'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-109086946631217824</id><published>2004-07-26T20:17:00.000+01:00</published><updated>2004-07-26T20:17:46.313+01:00</updated><title type='text'>Making IE status bar stay ON</title><content type='html'>&lt;a href="http://blog.kevindonahue.com/archives/2002/12/internet_explor.php"&gt;KevinDonahue.com [Internet Explorer Status Bar]&lt;/a&gt;: &lt;blockquote&gt;So I'm going nuts for a week because I cannot get the status bar to appear by default when I launch Internet Explorer. There must be a fix, right? You betch ya!&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This has been quietly pissing me off for AGES.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-109086946631217824?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/109086946631217824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=109086946631217824' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/109086946631217824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/109086946631217824'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2004/07/making-ie-status-bar-stay-on.html' title='Making IE status bar stay ON'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-109033352289255422</id><published>2004-07-20T15:25:00.000+01:00</published><updated>2004-07-20T15:25:22.893+01:00</updated><title type='text'>A basic introduction to messaging - MS BizTalk Server 2004</title><content type='html'>&lt;a href="http://weblogs.asp.net/christof_claessens/articles/151916.aspx"&gt;A basic introduction to messaging - MS BizTalk Server 2004&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Skims over a fair bit but a lot of basic info and therefore a valuable resource&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-109033352289255422?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/109033352289255422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=109033352289255422' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/109033352289255422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/109033352289255422'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2004/07/basic-introduction-to-messaging-ms.html' title='A basic introduction to messaging - MS BizTalk Server 2004'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-109008775883273743</id><published>2004-07-17T19:01:00.000+01:00</published><updated>2004-07-17T19:09:18.833+01:00</updated><title type='text'>Unit Testing Pipeline Components</title><content type='html'>It seems like all I ever post about is pipeline components, but I've got some pretty heavy pipeline work to do over the next few months, so I knocked up a simple pipeline component unit testing framework.&amp;nbsp; &lt;br /&gt;Its a lot easier than I could have hoped to spoof the executing context of a BTS2004 pipeline.&amp;nbsp; My initial plan was to decompile pipeline.exe in the SDK (as it does exactly what I want - runs a pipeline out of BTS), but it became immediately obvious that everything I needed was provided and nicely exposed by PipelineObjects.dll in it's root folder.&amp;nbsp; So that concrete implementation of IPipelineContext and IBaseMessage that was going to be so crucial in fooling a standard pipeline component to run Execute(IPipelineContext, IBaseMessage) was just a new away.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;The rest wrote itself really.&amp;nbsp; I'm left with a class that takes an instatiated Pipeline component, and calls Validate() on it to check you've also remembered to set all its props.&amp;nbsp; It then passes a string you give it as a message, and lets you know the output for unit testing.&amp;nbsp; Its proper bo!&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-109008775883273743?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/109008775883273743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=109008775883273743' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/109008775883273743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/109008775883273743'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2004/07/unit-testing-pipeline-components.html' title='Unit Testing Pipeline Components'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-108910969989953951</id><published>2004-07-06T11:28:00.000+01:00</published><updated>2004-07-06T11:28:19.900+01:00</updated><title type='text'>BTS2004 Delivery Notifications</title><content type='html'>Scott Woodgate's article on receiving &lt;a href="http://blogs.msdn.com/scottwoo/archive/2004/02/25/80037.aspx"&gt;BTS2004 Delivery Notifications&lt;/a&gt; details how to do something about delivery failures on send ports.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-108910969989953951?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/108910969989953951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=108910969989953951' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/108910969989953951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/108910969989953951'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2004/07/bts2004-delivery-notifications.html' title='BTS2004 Delivery Notifications'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-108904084079798285</id><published>2004-07-05T16:20:00.000+01:00</published><updated>2004-07-05T16:20:40.796+01:00</updated><title type='text'>What is the difference between distinguished and promoted fields?</title><content type='html'>&lt;a href="http://www.netologi.se/default.aspx?Contents=BizTalkFAQ&amp;amp;Row=6"&gt;What is the difference between distinguished and promoted fields?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Basic rule for which to use would be: always use a distinguished field, &lt;br /&gt;				unless you have to route, track, or correlate on the source content, then use a &lt;br /&gt;				property (i.e. promoted field). &lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-108904084079798285?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/108904084079798285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=108904084079798285' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/108904084079798285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/108904084079798285'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2004/07/what-is-difference-between.html' title='What is the difference between distinguished and promoted fields?'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-108902552725412497</id><published>2004-07-05T12:05:00.000+01:00</published><updated>2004-07-05T12:05:27.253+01:00</updated><title type='text'>Save an XML Document to a stream without the XML declaration</title><content type='html'>This is really handy if you feel the encoding attribute of the XML declaration you're forced to accept from XMLDocument.Save() is causing you grief:&lt;br /&gt;&lt;a href="http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=fcaee1b2-79c2-4b60-ab6b-3a0a9e13bbe3"&gt;GotDotNet User Sample: XmlFragmentWriter for Xml Serialization&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Basically it uses reflection to set a private field on an XMLTextWriter to fool the writer into thinking its already written the declaration.  Naughty!&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;			// get to the currentState field&lt;br /&gt;			Type xmlTextWriterType = typeof( System.Xml.XmlTextWriter );&lt;br /&gt;			FieldInfo currentStateFieldInfo = xmlTextWriterType.GetField(&lt;br /&gt;				"currentState", BindingFlags.Instance | BindingFlags.NonPublic );&lt;br /&gt;&lt;br /&gt;			// get the State enumeration&lt;br /&gt;			Type stateEnumType = xmlTextWriterType.GetNestedType( "State",&lt;br /&gt;				BindingFlags.NonPublic );&lt;br /&gt;&lt;br /&gt;			// set the currentState to Prolog written&lt;br /&gt;			currentStateFieldInfo.SetValue( this,&lt;br /&gt;				stateEnumType.GetField( "Prolog" ).GetValue( this ) );&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-108902552725412497?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/108902552725412497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=108902552725412497' title='29 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/108902552725412497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/108902552725412497'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2004/07/save-xml-document-to-stream-without.html' title='Save an XML Document to a stream without the XML declaration'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>29</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7345719.post-108902132728883745</id><published>2004-07-05T10:52:00.000+01:00</published><updated>2004-07-05T10:55:27.286+01:00</updated><title type='text'>Debugging Pipeline Components</title><content type='html'>In case it's not immediately obvious: To debug your pipeline components whilst in use, simply deploy the pdb files along with your dll to the PipelineComponents directory, and attach Visual Studio to the BTSNTSvc.exe process&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7345719-108902132728883745?l=bencops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bencops.blogspot.com/feeds/108902132728883745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7345719&amp;postID=108902132728883745' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/108902132728883745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7345719/posts/default/108902132728883745'/><link rel='alternate' type='text/html' href='http://bencops.blogspot.com/2004/07/debugging-pipeline-components.html' title='Debugging Pipeline Components'/><author><name>Ben Cops</name><uri>http://www.blogger.com/profile/08629352950689750016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.flickr.com/photos/92635_48600108373@N01_s.jpg'/></author><thr:total>1</thr:total></entry></feed>
