<feed xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US">
    <title>Todd Uhl</title>
    <link rel="self" type="application/xml" href="http://geekswithblogs.net/toddu/Atom.aspx" />
    <subtitle type="html">BizTalk/WSE/Indigo</subtitle>
    <id>http://geekswithblogs.net/toddu/Default.aspx</id>
    <author>
        <name>Todd Uhl</name>
        <uri>http://geekswithblogs.net/toddu/Default.aspx</uri>
    </author>
    <generator uri="http://subtextproject.com" version="Subtext Version 0.0.0.0">Subtext</generator>
    <updated>2006-06-06T10:58:33Z</updated>
    <entry>
        <title>Installing the new '06 SharePoint Adapter</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/toddu/archive/2006/06/06/80954.aspx" />
        <id>http://geekswithblogs.net/toddu/archive/2006/06/06/80954.aspx</id>
        <published>2006-06-06T10:59:00-05:00:00</published>
        <updated>2006-06-06T10:59:00Z</updated>
        <content type="html">&lt;P&gt;&lt;FONT face=Verdana size=2&gt;The new SharePoint Adapter is now included with the install of BizTalk.&amp;nbsp; Typically, in a production environment, the SharePoint site you will be interfacing with is not the same as any of the BizTalk servers.&amp;nbsp; When reading through the documentation, installing the adapter webservice on a remote machine is not very apparent.&amp;nbsp; Easy enough, just run the BizTalk install on the SharePoint box you might say.&amp;nbsp; Well, it's almost that easy, but not quite.&amp;nbsp; The first road block is the install wizard won't even run if SP1 (if on a Win 2003 box) is not detected.&amp;nbsp; This is a bug in my opinion.&amp;nbsp; What if I were just wanting to install the documentation, does that require SP1?&amp;nbsp; Anyway, there appears to be no getting around this point.&amp;nbsp; Don't waste your time finding the files on the CD and copying them to a virtual directory.&amp;nbsp; So, fair enough, install SP1 if not currently installed, then run the install.&amp;nbsp; The SharePoint Adapter web service is listed under Other Software.&amp;nbsp; Logically, we would just select that, it would appear to install succesfully, and we're all set.&amp;nbsp; Nope.&amp;nbsp; You actually need to select the adapter web service, AND ALSO Business Activity Services.&amp;nbsp; Another bug in my opinion.&amp;nbsp; Anyway, select both, complete the install and you should be fine.&amp;nbsp; You may have to go into IIS and create your own virtual directory, depending on if you went through the configuration on the BizTalk server.&amp;nbsp; Don't forget to make sure the site the web service is running under is marked to run under ASP.NET 2.0.&amp;nbsp; And, don't forget to edit the web.config.tmpl.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Cheers,&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Todd&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://geekswithblogs.net/toddu/aggbug/80954.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/toddu/comments/80954.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/toddu/comments/commentRss/80954.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/toddu/services/trackbacks/80954.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Installing BTS 2006 - Sharepoint 1057 system error</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/toddu/archive/2006/04/20/75708.aspx" />
        <id>http://geekswithblogs.net/toddu/archive/2006/04/20/75708.aspx</id>
        <published>2006-04-20T10:52:00-05:00:00</published>
        <updated>2006-04-20T10:52:00Z</updated>
        <content type="html">&lt;P&gt;&lt;FONT face=Verdana&gt;When setting up WSS so you can do a full install of BizTalk, you may get an error similar to &lt;FONT color=#ffa500&gt;&amp;#8220;System Error 1057 while trying to query service SPTimer&amp;#8221;&lt;/FONT&gt;.&amp;nbsp; For me, this occured&amp;nbsp;while using the Configure Administrative Virtual Server section of Central Administration.&amp;nbsp; I was using a local (non AD) service account that I had created.&amp;nbsp; The problem is corrected if you make sure you enter &amp;#8220;domain\user name&amp;#8221; or &amp;#8220;machine name\user name&amp;#8221; format.&amp;nbsp; Not easy to correlate this error description to the actual issue.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Cheers,&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Todd&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://geekswithblogs.net/toddu/aggbug/75708.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/toddu/comments/75708.aspx</wfw:comment>
        <slash:comments>10</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/toddu/comments/commentRss/75708.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/toddu/services/trackbacks/75708.aspx</trackback:ping>
    </entry>
    <entry>
        <title>BAM Export error in Excel 2003</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/toddu/archive/2006/04/12/74954.aspx" />
        <id>http://geekswithblogs.net/toddu/archive/2006/04/12/74954.aspx</id>
        <published>2006-04-12T13:31:00-05:00:00</published>
        <updated>2006-04-12T13:35:00Z</updated>
        <content type="html">&lt;P&gt;&lt;FONT face=Verdana&gt;So, I figured it was finally time I broke down and started to really figure out what BAM was all about, partly inspired by &lt;A href="http://blogs.msdn.com/richardbpi/archive/2006/03/29/564114.aspx"&gt;&lt;FONT color=#ffa500&gt;Richard Seroter's&lt;/FONT&gt;&lt;/A&gt; posting on the subject (everyone should read &lt;A href="http://blogs.msdn.com/richardbpi/default.aspx"&gt;&lt;FONT color=#ffa500&gt;his&lt;/FONT&gt;&lt;/A&gt; blog by the way.... fantastic stuff!!).&amp;nbsp; So, I picked a sample project I've been playing around with for some other POC stuff, followed along with the handy little &amp;#8220;walk-throughs&amp;#8221; in the help file, and wouldn't you know Excel puked on what appears to be a very important step - exporting the BAM Observation Model (all the KPI's, etc).&amp;nbsp; While trying to export the excel file to XML using the BAM Export XML menu, I received a &amp;#8220;Invalid procedure call or argument&amp;#8221; error.&amp;nbsp; After a quick google I ran across some information about a possible security patch to Excel that might cause this error.&amp;nbsp; I don't recall installing a security patch, but who knows.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Anyway, the good news is that you can use the XSL file without exporting to XML.&amp;nbsp; I believe the XML file would contain some additional information, like the server where the BAMPrimaryImport database is running, etc., but you can also provide this information when you deploy the observation model with the BAM Management utility (bm.exe).&amp;nbsp; You can use the following syntax at the command line to accomplish this (replacing MyWorkbook.xls with your actual excel file name) -&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;bm deploy-all -DefinitionFile:MyWorkbook.xls&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Using this syntax will default to the local server for SQL Server, and the BAMPrimaryImport database.&amp;nbsp; You can optionally supply parameters to specify a different server or database.&amp;nbsp; To view help on deploying with bm, type the following command - &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT face="Courier New" color=#008000&gt;bm help -Command:deploy-all&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Ok, I'm off to go BAMing now.&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face=Verdana&gt;
&lt;P&gt;&lt;BR&gt;Cheers,&lt;/P&gt;
&lt;P&gt;Todd&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://geekswithblogs.net/toddu/aggbug/74954.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/toddu/comments/74954.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/toddu/comments/commentRss/74954.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/toddu/services/trackbacks/74954.aspx</trackback:ping>
    </entry>
    <entry>
        <title>More on MSI Deployments - Launch Conditions....</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/toddu/archive/2005/10/11/56641.aspx" />
        <id>http://geekswithblogs.net/toddu/archive/2005/10/11/56641.aspx</id>
        <published>2005-10-11T14:39:00-05:00:00</published>
        <updated>2005-10-11T14:39:00Z</updated>
        <content type="html">&lt;P&gt;&lt;FONT face=Verdana size=2&gt;In talking with others, it appears that the NAnt vs. MSI deployment camps are pretty much split down the middle.&amp;nbsp; I tend to lean towards MSI deployments for several reasons.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;When dealing with MSI packages, it is often necessary to go beyond the somewhat basic BTSInstaller project that comes with BizTalk.&amp;nbsp; I have posted before on custom actions to fill in the gaps that come with using the BTSInstaller.&amp;nbsp; Another thing to think about when using MSI deployment is what happens if BizTalk is not installed to the default install directory (it's very common for enterprise clients to install software to a drive other than C:\).&amp;nbsp; If you are deploying pipeline components, this is important as they have to be copied to the Pipeline Components directory of the BTS install directory.&amp;nbsp; Another thing to keep in mind is if you create custom adapters.&amp;nbsp; The tricky part with custom adapters is that they require registry settings.&amp;nbsp; You can include a reg file for the installer to run, but it would be nicer to handle that for them.&amp;nbsp; Additionally, one of those registry settings is the path to the custom adapter component.&amp;nbsp; Again, you can't be sure of the install directory of your components.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Luckily, it's pretty easy to handle both of this situations following the steps below - &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;Determining the BizTalk install directory&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;This one turns out to be pretty easy as the BTS install directory gets stored in the registry.&amp;nbsp; And, the MSI install project gives us the ability to search the registry, so we just need to know what to search for.&lt;/FONT&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;In the install project, right click and choose &lt;STRONG&gt;View|Launch Conditions&lt;/STRONG&gt;.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;Name the launch condition BizTalk Install Path.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;Enter &lt;STRONG&gt;BIZTALKINSTALLPATH&lt;/STRONG&gt; for the Property property.&amp;nbsp; We will use this property later.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;For the &lt;STRONG&gt;RegKey&lt;/STRONG&gt; property, enter &lt;STRONG&gt;SOFTWARE\Microsoft\BizTalk Server\3.0&lt;/STRONG&gt;.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;For the &lt;STRONG&gt;Root&lt;/STRONG&gt; property,&amp;nbsp;choose vsdrrHKLM from the dropdown.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;For the &lt;STRONG&gt;Value&lt;/STRONG&gt; property, enter &lt;STRONG&gt;InstallPath&lt;/STRONG&gt;.&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Now that we have set up a launch condition to find the BizTalk install path, we can make use of that value in our install process.&amp;nbsp; For pipeline components, I like to add a new folder to the File System section of the install project and name it Pipeline Components.&amp;nbsp; In the &lt;STRONG&gt;DefaultLocation&lt;/STRONG&gt; property of that folder, enter [BIZTALKINSTALLPATH]\Pipeline Components as the value.&amp;nbsp; You will notice [BIZTALKINSTALLPATH] is how we get to our properties of the install project.&amp;nbsp; It's that easy.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;Determining install path chosen during install process&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;For this section, I'm going to leave out most of the steps you need to take to add the registry settings to register your custom adapters.&amp;nbsp; Contact me if you need that information.&amp;nbsp; The easiest way to handle this is to run the wizard that creates the .reg file for you (you can find this tool on the web), and make sure you add all those keys in the Registry section of the install project.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Two&amp;nbsp;properties to take particular note in&amp;nbsp;are the &lt;STRONG&gt;AdapterMgmtAssemblyPath&lt;/STRONG&gt; and the &lt;STRONG&gt;InboundAssemblyPath&lt;/STRONG&gt;.&amp;nbsp; These properties point to specific paths of your components (generally the same component).&amp;nbsp;So, we need to somehow capture where the installer has chosen to install our components, and then make use of this value.&lt;/FONT&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;Right click on the installer project, and choose &lt;STRONG&gt;View|File System&lt;/STRONG&gt;.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;Select the Application Folder folder on the left side.&amp;nbsp; Notice that the property (which is read only in this section) is set to TARGETDIR.&amp;nbsp; This is similar to our BIZTALKINSTALLPATH property that we created.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;Right click on the installer project, and choose &lt;STRONG&gt;View|Registry&lt;/STRONG&gt;.&amp;nbsp; This is where you will enter all the keys and values you need for your custom adapters.&amp;nbsp; When you get to the AdapterMgmtAssemblyPath and the InboundAssemblyPath properties, you will prepend you assembly name&amp;nbsp;with &lt;STRONG&gt;[TARGETDIR]&lt;/STRONG&gt; and enter that for the value of the key.&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Remember, when creating install packages, we want to make the install process as &amp;#8220;painless&amp;#8221; for the installer as possible.&amp;nbsp; These folks are typically not BizTalk people, and even worse, the process is usually automated.&amp;nbsp; Hopefully these little tips will make your MSI package creation a little easier.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Cheers,&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Todd&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://geekswithblogs.net/toddu/aggbug/56641.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/toddu/comments/56641.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/toddu/comments/commentRss/56641.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/toddu/services/trackbacks/56641.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Where does WSE 2.0 fit into BizTalk 2004?</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/toddu/archive/2005/09/04/52368.aspx" />
        <id>http://geekswithblogs.net/toddu/archive/2005/09/04/52368.aspx</id>
        <published>2005-09-04T15:39:00-05:00:00</published>
        <updated>2005-09-04T15:47:00Z</updated>
        <content type="html">&lt;p&gt;&lt;font face=Verdana size=2&gt;Over the next few posts, I'm going to explore where, and 
how, WSE 2.0 fits in with BizTalk 2004.&amp;nbsp; I know some of you are thinking, 
well, we have this wonderful WSE adapter that allows us to retreive SOAP 
messages and have all the (or at least some) of the benefits of WSE 
(WS-Addressing, WS-Policy, etc).&amp;nbsp; That's true, we do...&amp;nbsp; &lt;b&gt;BUT&lt;/b&gt;, what happens if we want to receive 
messages over a transport other than HTTP?&amp;nbsp; Many times, in a SOA 
environment it is necessary to support guaranteed delivery.&amp;nbsp; This is not 
possible over HTTP.&amp;nbsp; WSE gives us the ability to define our own custom 
transports.&amp;nbsp; Therefore, from a WSE standpoint we could receive messages via 
MQ to support our guaranteed delivery requirement.&amp;nbsp; If we do that then we 
can't use the WSE adapter.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana" size="2"&gt;On my current project, I'm exploring ways of 
dealing with WSE compliant messages, without using the WSE adapter.&amp;nbsp; This 
of course will require development of a custom pipeline to deal with some of the 
things the adapter takes care of like handling the WS-Addressing headers, 
digital certificates, etc.&amp;nbsp; Another thing I'm exploring is implementing WSE 
pipelines inside of a BizTalk pipeline.&amp;nbsp; This allows you to add custom 
filters to the WSE pipeline through configuration...pretty powerful.&amp;nbsp; I'm 
not sure what the implications, if any, are however.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana" size="2"&gt;Stay tuned as I post my findings!!&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana" size="2"&gt;Cheers,&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana" size="2"&gt;Todd&lt;/font&gt;&lt;/p&gt;&lt;img src="http://geekswithblogs.net/toddu/aggbug/52368.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/toddu/comments/52368.aspx</wfw:comment>
        <slash:comments>5</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/toddu/comments/commentRss/52368.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/toddu/services/trackbacks/52368.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Our friend BTSSubscriptionViewer.exe.....</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/toddu/archive/2005/03/09/25789.aspx" />
        <id>http://geekswithblogs.net/toddu/archive/2005/03/09/25789.aspx</id>
        <published>2005-03-09T03:46:00-06:00:00</published>
        <updated>2005-09-02T18:50:00Z</updated>
        <content type="html">&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Anyone who has done anything with BizTalk has run into the &amp;#8220;could not find a matching subscription error&amp;#8221; at one time or another.&amp;nbsp; Keep in mind that under the covers, BizTalk operates under a Publish/Subscibe architecture.&amp;nbsp; What this message is telling us is that nothing has subscribed to our message with it's current properties (namespace, root element, port, etc).&amp;nbsp; This is where the BTSSubscriptionViewer comes in.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;This handy little, often forgot about tool can be found buried deep within the /Program Files/Microsoft BizTalk Server 2004/SDK/Utilities directory.&amp;nbsp; Once you launch the tool, select Load under the Main menu to load all the current subscriptions (remember, subscriptions can constantly change due to Convoy patterns, dehydrated orchestrations, etc).&lt;/FONT&gt;&lt;/P&gt;&lt;IMG alt=SC src="http://geekswithblogs.net/images/geekswithblogs_net/toddu/2601/r_BTSSubscriptionViewer.GIF" border=0&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;The top of the window will display the current subscriptions, and bottom pane will display detailed information about the specific subscription.&amp;nbsp; So, how is this going to help us?&amp;nbsp; Well, if you find your orchestration in the top pane, chances are there is an issue with the subscriptions information.&amp;nbsp; For instance, perhaps your message has the wrong namespace, or root node, so it doesn't match the subscription in the format of &lt;/FONT&gt;&lt;A href="http://YourNameSpace#MessageType"&gt;&lt;FONT face=Verdana color=#deb887 size=2&gt;http://YourNameSpace#MessageType&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;.&amp;nbsp; Keep this in mind when dealing with Multi-part messages.&amp;nbsp; I have seen people have the parts reversed, so when the subscription is created the body of the message type is pointing to the wrong body part.&amp;nbsp; Also, if you are using Correlation, this will be helpful to see what the correlation value has been set to (don't forget to set your follow correlation set!!!).&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;So, remember, when your subscriptions are not found, launch the BTSSubscriptionViewer tool to find out what's going on under the covers.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://geekswithblogs.net/toddu/aggbug/25789.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/toddu/comments/25789.aspx</wfw:comment>
        <slash:comments>4</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/toddu/comments/commentRss/25789.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/toddu/services/trackbacks/25789.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Exception occurred when persisting state to the database.....</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/toddu/archive/2005/06/07/42419.aspx" />
        <id>http://geekswithblogs.net/toddu/archive/2005/06/07/42419.aspx</id>
        <published>2005-06-07T14:30:00-05:00:00</published>
        <updated>2005-06-07T14:32:00Z</updated>
        <content type="html">&lt;P&gt;&lt;FONT face=Verdana size=2&gt;The chance that you receive this error for the same reason as I may be slim, but I thought I would offer up anyway.&amp;nbsp; If you receive this error, and read the entire error message in the event viewer, it should give an indication of the cause.&amp;nbsp; In my case, this was &amp;#8220;no subscribers were found&amp;#8221;.&amp;nbsp; Of course I headed to our fried the &lt;A href="http://http://www.geekswithblogs.net/toddu/archive/2005/03/09/25789.aspx"&gt;Subscription Viewer&lt;/A&gt;.&amp;nbsp; What I discovered is that when you enlist a dynamic send port, it creates a subscription for every adapter you have registered.&amp;nbsp; In my case I had gotten a little ahead of myself and had deployed a project with an orchestration that made use of a custom adapter that I had registered AFTER deploying the orchestration project.&amp;nbsp; To be safe, I undeployed the orchestration project, registered the adapter, and redeployed the orchestration project.&amp;nbsp; All is good.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Cheers,&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Todd&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://geekswithblogs.net/toddu/aggbug/42419.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/toddu/comments/42419.aspx</wfw:comment>
        <slash:comments>4</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/toddu/comments/commentRss/42419.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/toddu/services/trackbacks/42419.aspx</trackback:ping>
    </entry>
    <entry>
        <title>I'm still here.....</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/toddu/archive/2005/05/11/39382.aspx" />
        <id>http://geekswithblogs.net/toddu/archive/2005/05/11/39382.aspx</id>
        <published>2005-05-11T04:51:00-05:00:00</published>
        <updated>2005-05-11T04:51:00Z</updated>
        <content type="html">&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;So, I'm looking at my blog today, and I see I haven't posted anything in 2 months and a day.&amp;nbsp; Shameful!!!&amp;nbsp; Anyway, I'm climbing back in the saddle.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;In what little free time I had before, I was working on a whitepaper for MSDN for the BizTalk Adapter for SQL Server.&amp;nbsp; I'm glad to say the paper is complete, and should be on the MSDN site very shortly.&amp;nbsp; I will post some examples from the paper here very shortly.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;The question came up at work today about debatching in Orchestrations.&amp;nbsp; This is a very common scenario in business processing, or at least the issue of dealing with batch style messages is.&amp;nbsp; Stephen Thomas has done a great job in writing up &lt;A href="http://geekswithblogs.net/sthomas/archive/2004/12/12/17373.aspx"&gt;some examples&lt;/A&gt; of how to deal with this.&amp;nbsp; So good, that I won't bother to recap.&amp;nbsp; Anyway, there are a couple of important things to keep in mind when considering your options.&lt;/FONT&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;FONT face=Tahoma size=2&gt;Is it important that &amp;#8220;good&amp;#8220; messages must be processesed, and &amp;#8220;bad&amp;#8220; messages be dealt with?&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Tahoma size=2&gt;Are the file sizes significant?&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Tahoma size=2&gt;Does the service level agreement have specific time constraints?&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Tahoma size=2&gt;Does the trailer and header (if flat file messages) of the message have to be dealt with?&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Many times you can't let one single bad record cause an entire file not to be processed.&amp;nbsp; If this is the case, you will have to deal with your messages in another fashion.&amp;nbsp; One option that is common is to debatch, or &amp;#8220;shred&amp;#8220; your messages in the orchestration using XPATH.&amp;nbsp; You will notice from Stephen's examples that when using XPATH to debatch messages inside your orchestration, peformance starts to degrade as the file size grows.&amp;nbsp; I suspect what is happening is that as the XPATH iteration gets deeper in the nest, it is still starting at the beginning of the file, so it slows over time.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;If you have larger files and have a time constraint, there are still a few options available to you.&amp;nbsp; Since XPATH seems to be slow with large files due to it's apparent scanning of the entire message each time, you may want to try Streaming XPATH.&amp;nbsp; This option has all the benefits of XPATH, whithout the negative side effects.&amp;nbsp; Look at this &lt;A href="http://www.microsoft.com/belux/nl/msdn/community/columns/claessens/custompp.mspx#Writing%20a%20streaming%20pipeline%20component:%20sample%20walkthrough"&gt;information&lt;/A&gt; to see if it might work for you.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;There are still a couple of other options that may be available to you.&amp;nbsp; I will start to post some more thoughts and examples on this topic in the next several weeks.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Cheers,&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Todd&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://geekswithblogs.net/toddu/aggbug/39382.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/toddu/comments/39382.aspx</wfw:comment>
        <slash:comments>3</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/toddu/comments/commentRss/39382.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/toddu/services/trackbacks/39382.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Quick Tip - Deploying other's projects....</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/toddu/archive/2004/12/06/16908.aspx" />
        <id>http://geekswithblogs.net/toddu/archive/2004/12/06/16908.aspx</id>
        <published>2004-12-06T22:51:00-06:00:00</published>
        <updated>2004-12-06T22:51:00Z</updated>
        <content type="html">&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Ever get someones project out of source safe (or any other way), go to deploy it and get a 'SQL exception: SQL Server does not exist or access denied' error?&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Go to the project properties, configuration properties, deploy, and make sure it's pointing to your database (typically (local) ).&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Todd&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://geekswithblogs.net/toddu/aggbug/16908.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/toddu/comments/16908.aspx</wfw:comment>
        <slash:comments>3</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/toddu/comments/commentRss/16908.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/toddu/services/trackbacks/16908.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Atomic Scope "Batch" property...</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/toddu/archive/2004/11/24/15789.aspx" />
        <id>http://geekswithblogs.net/toddu/archive/2004/11/24/15789.aspx</id>
        <published>2004-11-24T03:31:00-06:00:00</published>
        <updated>2004-11-24T03:31:00Z</updated>
        <content type="html">&lt;P&gt;&lt;FONT face=Tahoma&gt;&lt;FONT size=2&gt;Charles Young has a great post on &lt;/FONT&gt;&lt;A href="http://geekswithblogs.net/cyoung/articles/BTSTransactions.aspx"&gt;&lt;FONT size=2&gt;transactions&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; within orchestrations.&amp;nbsp; In it he mentions the Batch property of the ATOMIC scope.&amp;nbsp; I concur with him that the documentation on this is very light, as well as any information out in the communities.&amp;nbsp; Doing a little testing on my current project with Stephen Thomas (be sure to check out his &lt;/FONT&gt;&lt;A href="http://www.geekswithblogs.net/sthomas"&gt;&lt;FONT size=2&gt;blog&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt;), it has become apparent that the property acts just as Charles suspects.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Our particular scenario - &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;We had an orchestration processing a large sum of messages.&amp;nbsp; At one point in the orchestration, we were calling a component to insert the records into the database.&amp;nbsp; While that orchestration was processing the large batch of messages, we sent several very small batches of messages that quickly reached the same point in their instance of the orchestration (inserting the records through the component).&amp;nbsp; It turned out that the smaller messages would not complete processing thier messages until the large batch completed.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;After we changed the property to be False (the proprety for some reason defaults to True, which seems a bit dangerous), redeployed and rean the test again, the much smaller messages completed ahead of the slower, larger batch of messages (our expected outcome originally).&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;So, keep in mind when using the Atomic transaction that this property defaults to True, and may have ill effects on your message processing.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Cheers!!&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://geekswithblogs.net/toddu/aggbug/15789.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/toddu/comments/15789.aspx</wfw:comment>
        <slash:comments>7</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/toddu/comments/commentRss/15789.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/toddu/services/trackbacks/15789.aspx</trackback:ping>
    </entry>
    <entry>
        <title>More on deployment...</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/toddu/archive/2004/11/09/14602.aspx" />
        <id>http://geekswithblogs.net/toddu/archive/2004/11/09/14602.aspx</id>
        <published>2004-11-09T02:26:00-06:00:00</published>
        <updated>2004-11-09T02:26:00Z</updated>
        <content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Tahoma size=2&gt;Ok, sorry for the short hiatus&amp;#8230;.very busy times on my current project.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Anyway, I previously mentioned some points around deployment.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It turns out that using BTS Installer doesn&amp;#8217;t work well when utilizing roles and parties.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This doesn&amp;#8217;t mean we have to scrap the BTSInstaller all together, we just have to do a little extra work in creating scripts that do the deployment as well as the undeployment, and then call those scripts from our MSI package.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Tahoma size=2&gt;In the zip file (get it &lt;A href="http://www.digitalenterprisegroup.com/workspace/deploymentsample/deploymentsamples.zip"&gt;here&lt;/A&gt;), I&amp;#8217;ve included some sample scripts that may give you a head start in the deployment process.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Keep in mind that if you are NOT using roles and parties, BTSInstaller will get you about 80% of the way there, and you will not need all of the scripts.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You will still need some scripts to go ahead and enlist and start everything, and some work is needed to automagically undeploy everything using Add or Remove Programs.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;With everything included in the zip file, you should be able to gleam something that will help.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Tahoma size=2&gt;A few key points &amp;#8211; &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;UL style="MARGIN-TOP: 0in" type=disc&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;FONT face=Tahoma size=2&gt;Binding files &amp;#8211; everything is driven by the binding file.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Make sure it is correct, or you will have issues.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;One thing to watch out for is your binding file contains the PublicTokenKey of the assembly it is derived from.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If during multi-developer development these somehow get out of sync, when you deploy you won&amp;#8217;t get any errors, but nothing gets deployed either.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;FONT face=Tahoma size=2&gt;Deleting parties &amp;#8211; if you are implementing parties and roles, you will have to un-enlist the parties and delete them prior to un-deploying the assemblies that contain the orchestrations.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Included in the SDK are 2 sample projects that when compiled create one exe to un-enlist the parties, and one exe to delete the parties.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;These are coded assuming that the SQL database where your management database resides is local to BizTalk.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This is most likely not the case, so you will have to edit this code to determine what server the database is on, and supply that in the connection string.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It&amp;#8217;s quite simple using MSI, and if you need some code snippets just send me a comment.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;FONT face=Tahoma size=2&gt;Removing orchestrations &amp;#8211; running the MSI to delete orchestrations (if using the default BTSInstaller) won&amp;#8217;t remove your Orchestrations since they are in the running state.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Chances are if you&amp;#8217;re testing they are even in the active state.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In the supplied StopOrchestrations script, there is a flag you can pass into the Unenlist method that will terminate any active instances.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Pay attention to this if this is not your intended actions.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;FONT face=Tahoma size=2&gt;Write to the event log &amp;#8211; you will notice in my scripts I have added some code to shell out and use the LogEvent method to write errors to the Application Log.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;With the nature of VBScript, if you don&amp;#8217;t do this and run into errors, you will never figure out where to start looking.&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Tahoma size=2&gt;&lt;FONT color=#ff0000&gt;Use the scripts at your own risk&lt;/FONT&gt;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;They are commented, so you should be able to read along and see what&amp;#8217;s going on.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Remember, if you are not using roles, you won&amp;#8217;t need half the stuff in the Install.bat file, and some of the stuff in Cleanup.bat, but read through those to see the order things are called, and you will need some of the other scripts regardless.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Tahoma size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Tahoma size=2&gt;Cheers!!&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://geekswithblogs.net/toddu/aggbug/14602.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/toddu/comments/14602.aspx</wfw:comment>
        <slash:comments>5</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/toddu/comments/commentRss/14602.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/toddu/services/trackbacks/14602.aspx</trackback:ping>
    </entry>
    <entry>
        <title>BTSInstaller "bug"</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/toddu/archive/2004/10/13/12561.aspx" />
        <id>http://geekswithblogs.net/toddu/archive/2004/10/13/12561.aspx</id>
        <published>2004-10-13T04:40:00-05:00:00</published>
        <updated>2004-10-13T04:40:00Z</updated>
        <content type="html">&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;After hours of fighting it, I have concluded that deploying a solution that utilizes Roles and Party's can't be installed using an MSI created with the BTSInstaller.&amp;nbsp; You can use the same binding file and assemblies and use BTSDeploy and it all works fine.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;I plan on posting all my deployment scripts here in the next few days as the BTSInstaller gets you about 85% there, and you're required to script the rest.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Take a look at &lt;A href="http://www.traceofthought.net/"&gt;Scott Colestock's&lt;/A&gt; blog for a different option &lt;FONT color=#ffa500&gt;(Nant)&lt;/FONT&gt; to the BTSInstaller.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Cheers,&lt;BR&gt;Todd&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://geekswithblogs.net/toddu/aggbug/12561.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/toddu/comments/12561.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/toddu/comments/commentRss/12561.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/toddu/services/trackbacks/12561.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Shared Config Files........</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/toddu/archive/2004/10/08/12381.aspx" />
        <id>http://geekswithblogs.net/toddu/archive/2004/10/08/12381.aspx</id>
        <published>2004-10-08T15:41:00-05:00:00</published>
        <updated>2004-10-08T16:03:00Z</updated>
        <content type="html">&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;BizTalk server relies on a config file to store certain application information. This config file is located in \Program Files\Microsoft BizTalk Server 2004 and is named BTSNTSvc.Exe.Config.&amp;nbsp; View your file &lt;/FONT&gt;&lt;A href="file:///c:/Program Files/Microsoft BizTalk Server 2004/BTSNTSvc.exe.config"&gt;&lt;FONT face=Tahoma size=2&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma size=2&gt; (DO NOT CHANGE THIS FILE WITHOUT BACKING UP!!!).&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Let's say that you have some .NET components that you want to consume from your BizTalk solution.&amp;nbsp; Let's also assume that these components are possibly shared with another solution, and make use of a config file for things such as connection strings, directory locations, etc., a fairly common situation.&amp;nbsp; Now, keep in mind when you call a component, and that component makes use of a config file, it uses the config file of the calling application (at least for EXE's).&amp;nbsp; So, we have a couple of options.&amp;nbsp; We can take what's in the shared components config file and paste it into the BTSNTSvc.Exe.Config file.&amp;nbsp; But, this means we now have 2 places to maintain the information.&amp;nbsp; What if we then have a multi server configuration, we now have 2 config files to maintain in more than one location.&amp;nbsp; Not good.&amp;nbsp; Wouldn't it be nice if we could somehow have the BizTalk config file "point" to the components config file?&amp;nbsp; Then, we could maintain the other applications config file as we normally would.&amp;nbsp; Well, the good news is you can.!!!&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Take a look at my &lt;/FONT&gt;&lt;A href="http://www.digitalenterprisegroup.com/workspace/configfilesample/BTSNTSvc.exe.config.txt"&gt;&lt;FONT face=Tahoma size=2&gt;sample&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma size=2&gt; config file to follow along.&amp;nbsp; I'll explain a couple of the sections.&amp;nbsp; It is important to remember to always take a copy of you current BTSNTSvc.Exe.Config file before making any changes as changing it incorrectly will prevent BizTalk from running.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;The key to making this work is the &lt;XLANGS&gt;section.&amp;nbsp; To make this section "available", you will have to add the following under the &lt;CONFIGURATIONS&gt;section of your config file - &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;&lt;SECTION type="Microsoft.XLANGs.BizTalk.CrossProcess.XmlSerializationConfigurationSectionHandler, Microsoft.XLANGs.BizTalk.CrossProcess" name="xlangs" /&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Now that we have this in the config file, we can add the section &lt;XLANGS&gt;.&amp;nbsp; I won't copy it here to save space, so look at the example.&amp;nbsp; This section is where all the magic happens.&amp;nbsp; Some of the attributes like AssembliesPerDomain, etc you can find information about in the help documentation.&amp;nbsp; The key sections to be aware of are the &lt;APPDOMAINSPECS&gt;section, &lt;CONFIGURATIONFILE&gt;section, and the &lt;PATTERNASSIGNMENTRULE&gt;section.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;&lt;APPDOMAINSPECS&gt;&lt;BR&gt;This section defines a new domain for your particular situation to run in.&amp;nbsp; *** define this a little better.&amp;nbsp; You will give your domain a name, and then you will use this name later to correlate the calling piece of your BizTalk solution with the called components config file.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;&lt;CONFIGURATIONFILE&gt;&lt;BR&gt;This section defines where the called components config file resides.&amp;nbsp; You can use absolute paths, or I believe you can use relative paths also.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;&lt;PATTERNASSIGNMENTRULE&gt;&lt;BR&gt;In this section you are going to link your AppDomain (which contains the ConfigurationFile section) to the part of you BizTalk solution that calls the shared component.&amp;nbsp; Let me clarify "part of your BizTalk solution".&amp;nbsp; When you create your orchestrations, you give them a namespace.&amp;nbsp; They probably run under the same namespace, or at least the same root namespace.&amp;nbsp; So, in the example you see "Source.Test.Orchestrations.*" as the pattern assignment rule.&amp;nbsp; What this is saying is that any orchestration that is under this namespace would be associated with that particular app domain, and would then be able to make use of the configuration file listed under that app domain.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Hopefully with the example and the explanation, this will make some sense.&amp;nbsp; There is some information in the help file about adding the new sections, but they don't go into much detail of how all the pieces fit together, and what the pattern assigment rule is really supposed to point to, etc.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;DON'T FORGET...BACK UP YOUR CURRENT CONFIG FILE BEFORE MAKING CHANGES.&amp;nbsp; This will save a lot of headaches.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;One last point to remember...and I won't go into a lot of detail, but remember that if you are calling components from BizTalk, they must be GAC'd.&amp;nbsp; It is possible that the shared components you are calling didn't require to be GAC'd prior to calling them from BizTalk.&amp;nbsp; Now that they are in the GAC however, you will need to change your shared components config file slightly.&amp;nbsp; When you are defining your section for that component, you will have to change the attributes a bit so that you are including the following - &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;&lt;SECTION type="&lt;component name&gt;, Version=&lt;version&gt;, Culture=&lt;culture&gt;, PublicKeyToken=&lt;token&gt;" name="" /&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;The values for component name, version, culture and token you can get out of .NET Framework Configuration admin tool.&amp;nbsp; Just look for you component, and make note of the values listed.&amp;nbsp; The only one that should change would be the version.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://geekswithblogs.net/toddu/aggbug/12381.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/toddu/comments/12381.aspx</wfw:comment>
        <slash:comments>7</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/toddu/comments/commentRss/12381.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/toddu/services/trackbacks/12381.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Role Link Sample.....better late than never.....</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/toddu/archive/2004/10/05/12156.aspx" />
        <id>http://geekswithblogs.net/toddu/archive/2004/10/05/12156.aspx</id>
        <published>2004-10-05T04:23:00-05:00:00</published>
        <updated>2004-10-05T04:23:00Z</updated>
        <content type="html">&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;I applogize for being anything but prompt on this. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;The zip file can be found &lt;/FONT&gt;&lt;A href="http://www.digitalenterprisegroup.com/workspace/rolelinksample/rolelinksample.zip"&gt;&lt;FONT face=Tahoma size=2&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma size=2&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Steps for setting up Role Link Sample - &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;1. Create a receive port in BTS Explorer&lt;BR&gt;2. Create 2 send ports - RoleLinkTest_Approver1 and RoleLinkTest_Approver2&lt;BR&gt;3. Set your transports, send or receive locations, etc for your ports&lt;BR&gt;4. Create a party called Approver1.&amp;nbsp; Choose RoleLinkTest_Approver1 as their send port.&lt;BR&gt;5. Create a party called Approver2.&amp;nbsp; Choose RoleLinkTest_Approver2 as their send port.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;At this point you should be able to deploy the project.&amp;nbsp; Once the project has been successfully &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;deployed, you should now have a new Role listed in BTS Explorer called &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;RoleLinkSample.RoleLinkTestOrchestration.Purchasing.Approver.&amp;nbsp; This is from the role link type we &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;created earlier.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;6. Right click on the new Role and select "Enlist Party".&amp;nbsp; Choose are 2 parties.&amp;nbsp; From this point &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;forward, if you wanted to add new parties (for new trading partners perhaps), you would just repeat &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;steps 4,5 and 6...it's that easy!!!&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Now you can run the test files through.&amp;nbsp; Read back through the previous post on role links, and &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;follow along this example (pay attention to the expression shape that initializes the ports).&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Hopefully it will make a little more sense.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Please let me know if you have any questions, or if the setup instructions are lacking.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;ooops, almost forgot..take a look at the 2 files you'll be submitting, and don't forget to point the project to a keyfile.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Todd&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://geekswithblogs.net/toddu/aggbug/12156.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/toddu/comments/12156.aspx</wfw:comment>
        <slash:comments>22</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/toddu/comments/commentRss/12156.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/toddu/services/trackbacks/12156.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Hosts and Host Instances</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/toddu/archive/2004/10/02/12050.aspx" />
        <id>http://geekswithblogs.net/toddu/archive/2004/10/02/12050.aspx</id>
        <published>2004-10-02T15:59:00-05:00:00</published>
        <updated>2004-10-02T16:00:00Z</updated>
        <content type="html">&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Before I begin, I promise I am working on getting my role link example up here.&amp;nbsp; There was some confusion with server space to upload the example to.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Ok....I know when I first started with BTS'04, it was slightly confusing to me what the whole host/host instance thing was.&amp;nbsp; A fairly new concept from the previous versions.&amp;nbsp; But, once the concept sinks in (things take longer for me ;-) ), it's actually extremely useful.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;So, we know that the Host is a &amp;#8220;logical container&amp;#8221;, and the Instance is the &amp;#8220;physical container&amp;#8221; for all your adapters, orchestrations, etc.&amp;nbsp; What can we do armed with this knowledge?&amp;nbsp; When we're developing, everything runs under the default BizTalkServerApplication, and life is good.&amp;nbsp; But, we need to start thinking about production, and how this solution is going to run efficiently, be highly available, and be easily scalable.&amp;nbsp; This is were hosts and host instances come in.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;It is best to decide on your hosts in the very beginning when planning your production environment.&amp;nbsp; Take a look at the design of your solution, look at the expected message volume, the different methods of receiving and sending messages, service level agreements, and hopefully by now you will have tested some of your design to get an idea of performance.&amp;nbsp; I find it is much better to create hosts down to the granular level.&amp;nbsp; By this I mean if you are receiving messages real-time, some as batch, some as file transports, some as HTTP, break your hosts down accordingly.&amp;nbsp; If you have some orchestrations that perform worse than others (a convoy perhaps), take that into account.&amp;nbsp; It doesn't necessarily mean you have to create a host for each one, but lets say you your batch messages take a lot of processing&amp;nbsp; power...put those in their own host so you can isolate them and not affect your realtime messages.&amp;nbsp; Breaking your hosts down at a granular level will make it much easier to reconfigure your system once you are&amp;nbsp;stress testing and you find you need to re-shuffle your configuration to increase performance.&amp;nbsp; This is because once you have your hosts created, and you have configured your adapters, orchestrations, etc to run in those hosts, all you need to do is create a new instance through BizTalk Admin console on whatever server you want it to run on.&amp;nbsp; Let's say that you have one instance of your host for batch files on a server (which you wouldn't do because you want to account for failover also....), and that server is heavily taxed, slowing throughput of all your batch files.&amp;nbsp; It is very easy to put another server out there, and simply configure a new host instance on it.&amp;nbsp; If we had not separated our hosts initially, it would be much more difficult to now split out that functionality.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Another good reason to create different hosts is for security reason.&amp;nbsp; I won't go into detail here, but remember that hosts can be associated with different windows groups, and host instances can be configured to run as specific accounts.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;As you can see, hosts and host instances provide us with load balancing.&amp;nbsp; BizTalk internally handles load balancing through instances of the host.&amp;nbsp; If you have instances of a host running on 3 separate servers, then BTS will handle dividing the load amongst the 3 boxes.&amp;nbsp; If one box were to fail, then the 2 remaining boxes would pick up the slack.&amp;nbsp; Similarly, if you need to add another box to decrease the load on the current 3, you can just configure a new instance of the host on a server, and BTS will now balance the load between the 4 boxes.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;So, remember to seriously think about your hosts early on.&amp;nbsp; Think in terms of performance, functionality and scalability.&amp;nbsp; Read the paper on &lt;/FONT&gt;&lt;A href="http://download.microsoft.com/download/2/e/8/2e8f9cb9-2d8f-4f9a-8349-bf352fb3d802/High_Availability.exe"&gt;&lt;FONT face=Verdana size=2&gt;High Availability&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; for BizTalk '04.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://geekswithblogs.net/toddu/aggbug/12050.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/toddu/comments/12050.aspx</wfw:comment>
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/toddu/comments/commentRss/12050.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/toddu/services/trackbacks/12050.aspx</trackback:ping>
    </entry>
</feed>
