a trace of thought on...BizTalk Server, Team Foundation Server, Windows Mobile, etc. RSS 2.0
 Thursday, August 11, 2005

Version 2.6 of the Deployment Framework is now available (see the download links - the full download, core, and tools have all been updated.)  Future work in this area will be about augmenting the already-great deployment story in BizTalk 2006! 

The release notes below will (likely) only be interesting for folks that are using the framework extensively.

Interesting Features:

  • If you populate the bizTalkHosts property with the name of the Hosts that you are using, the 'servicecontroller' nant task is used for the stop/start of BizTalk services, with a configurable timeout stored in the 'biztalkHostResetTime' nant property. This requires recopying the BizTalk.nant.tasks.dll to your \program files\nant\bin directory. This alleviates the problem some users were having with timeouts in service restarts.
  • IISReset now uses configurable reset time from nant property iisResetTime.
  • Modified the sample application to demonstrate how you can maintain adapter configuration in binding files (i.e. the TransportTypeData sections) in its "unescaped" form -- rather than having to maintain it as escaped xml-within-xml. This relies on a new tool - ElementTunnel.exe, which is also in the Tools download. This is a huge help with adapters such as MQSeries that have many configuration elements.  More on this in another post.

Administrivia:

  • SSOSettingsFileImport.exe opens files with read access only, eliminating some file locking issues.
  • Permissions on the physical directories associated with virtual directories are now granted to the account specified as the application pool account (instead of just aspnet account.)
  • Now using NAnt .85 RC3
  • Now using log4net 1.2.9 (thanks Campbell McNeill for work on this!)
  • Now using the July 2005 release of WiX (thanks to Loren Halvorsen for work on compatibility with this.)
  • Now using XmlPreProcess 1.0 RC3 (and the associated SettingsFileGenerator.xls.) One new feature here is the ability to use URLs that contain query strings in the spreadsheet. The name/value pair XML files that are generated will wrap as CDATA where appropriate. Thanks Loren!
  • Modified the sample application to demonstrate how file receive and drop locations can be made relative to the a) project directory on a developer workstation or b) installation directory on a server. This has actually be in the sample application before - but it relied on the xmlpoke nant task, whereas now it uses the XmlPreProcess mechanism we use for all other binding file modifications.
  • Modified the deployment verification unit test in the sample application to rely on a NUnitUtility helper class that you can pull into your own projects. One included method allows you to examine the event log (on multiple machines) looking for errors that BizTalk might have raised during the test - very handy, and a potentially important component of your test.
  • Support for a local_settings file used with XmlPreProcess. It can be handy to have an "environment specific" set of macro values that are particular to a local workstation, and the sample application shows how this is done now.
  • Added transforms and schemas to the list of what is re-gac'd for the updateOrchestrations target. See here for more detail. In a recent release, I made changes that allowed for the use of a single binding file, so that binding files as emitted by the deployment wizard could be used (rather than splitting them by hand, which was required early on with the Deployment Framework.) This was a good change…but the implementation broke the "messaging only" scenario (where you have no orchestrations.) I don't have a good fix for this yet. The workaround is as follows: In your project's nant file, set includeOrchestrations to "true" (even though you don't have any), and define the orchestration assembly list to be an empty string, as shown here:
    <property name="includeOrchestrations" value="true" />
    <property name="orchestrations" value="" />

How do you upgrade?  Extract the "core" zip file on "top" of your existing project, and then fix up the WiX directory manually (since it will be named BizTalkSample.WiXSetup after the unzip.)  All tools and scripts will be updated as a result.  Then test...Leave a comment with any issues you encounter.  Good luck!

Thursday, August 11, 2005 10:22:25 AM (Central Standard Time, UTC-06:00)  #    Comments [12] -
Deployment Framework
Wednesday, September 21, 2005 6:01:31 AM (Central Standard Time, UTC-06:00)
Can I get the source code from some where?
I want to deploy and undeploy ports programatically. Can you give me some pointers as to how to achieve it?
Sovon
Wednesday, September 21, 2005 7:21:25 AM (Central Standard Time, UTC-06:00)
Hello Sovon - Check out the 'Deployment Framework (Tools)' link in the downloads section of this site.
Tuesday, October 18, 2005 7:22:40 AM (Central Standard Time, UTC-06:00)
If my solution does not contain tramsforms, the updateOrchestration target attempts to re gac a .transforms assembly, even though the includeTransforms property is set to false.

Is this by design? I had to include an empty string transforms property in my main build file to get around it.
Brett Waring
Thursday, October 20, 2005 7:56:23 AM (Central Standard Time, UTC-06:00)
Hi,

I tried using the framework, I am geting the error as Error: Failed updating binding information.[exec] BindingException: Invalid or malformed XML data.

The binding file was generated using export wizard. Orchastration and other arteffects are geting deployed. Script output says that ports were created successfull, but were unable to bound, due to above mentioned error.

Could you please give some insight on this.

Mani
Mani
Wednesday, October 26, 2005 1:23:45 PM (Central Standard Time, UTC-06:00)
Brett - I'll look into this for next release.

Mani - I don't have enough information to help you, can you say a bit more ? Try posing a question up on biztalkgurus.com with the full output of your deployment.
Tuesday, November 01, 2005 7:36:31 AM (Central Standard Time, UTC-06:00)
How is the next version going in relation to BT06, and how far away is it? I am looking at using the deployment framework for BT06.

Cheers
Nathan
Nathan
Friday, March 03, 2006 1:44:08 AM (Central Standard Time, UTC-06:00)
Hi,
I am getting the same error as Mani is getting. Did you get the solution to the problem

Thanks
Tushar Jain
Tushar Jain
Tuesday, July 11, 2006 4:39:26 AM (Central Standard Time, UTC-06:00)
Mani and Tushar:
I also got the same error as you. It seems like the Xmlpreprocess.exe and ElementTunnel.exe is creating an invalid portbindings file. I have temporarily solved the problem skipping those steps.
Try the following settings:
property name="applyXmlEscape" value="false"
and comment out the devoperPreProcessSettings property.

Of course this also removes some functionally from the scripts.

Haven't had time to dig deeper into the problem yet.
Anders
Wednesday, September 27, 2006 7:18:49 AM (Central Standard Time, UTC-06:00)
I recieved this error. I was able to find a quick fix while maintaining all the functionality of the scripts. Keep the property applyXmlEscape set to true. Find if test="${applyXmlEscape}". In this IF block add an additional call to ElementTunnel.exe after the first one like this:

exec program="${deployTools}\ElementTunnel.exe" verbose="true" failonerror="true"
arg value="/i:${nant.project.basedir}\${portBindings}"
arg value="/o:${nant.project.basedir}\${portBindings}"
arg value="/x:${deployTools}\adapterXPaths.txt"
arg value="/decode+"
exec

(opening and closing brackets have been removed from code)

It seems to me like ElementTunnel.exe runs on the master file and escapes valid & characters into &amp;. The quick fix is to run ElementTunnel.exe again with the decode flag on the Portbindings.xml file to change the &amp; escapes back into &. Its been working for me, hopefully it works for you.

-Mat
Mat
Wednesday, September 27, 2006 2:43:44 PM (Central Standard Time, UTC-06:00)
After further investigation I found that the bindings xml file exported by the BizTalk Deployment Wizard contains escaped xml within the TransportTypeData tag. So when the deployment script runs ElementTunnel it is encoding/escaping allready escaped xml. So the solution is to go through the exported bindings file you are using for your master bindings file and manually replace the escaped brackets. Or you can run your exported bindings file through ElementTunnel.exe with /decode+ before you set it as your master bindings file.

-Mat
Mat
Wednesday, September 27, 2006 2:54:06 PM (Central Standard Time, UTC-06:00)
Hello Mat and others having trouble -

Please see http://www.traceofthought.net/PermaLink,guid,640d3834-9574-4eb1-bca2-e38b78284e63.aspx

Remember the idea is that your "master" port bindings file is stored in an unescaped state precisely so you can maintain it more easily. You will run elementtunnel on it once to un-escape it...
Tuesday, March 20, 2007 7:21:41 AM (Central Standard Time, UTC-06:00)
hi...

i did the same thing as Mat explained above... and it worked for me... Nant is a really grt tool...

Thanks mate...
Comments are closed.
Archive
<August 2008>
SunMonTueWedThuFriSat
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456
About the author:

Scott Colestock lives, writes, and works as an independent consultant in the Twin Cities (Minneapolis, Minnesota) area.

© Copyright 2008
Scott Colestock
Sign In
All Content © 2008, Scott Colestock
DasBlog theme 'Business' created by Christoph De Baene (delarou)