by Jeroen | Dec 12, 2015 | BizTalk Community Blogs via Syndication
What we learned when migrating a BizTalk Server 2006 farm (with multiple solutions/projects) to BizTalk Server 2013R2:
1. You need an intermediate step
Migrating BizTalk 2006 solutions directly to BizTalk 2013R2 (Visualt Studio 2013) is not supported. You will need to migrate the solution to BizTalk 2010 (Visual Studio 2010) first as an intermediate step. More information here in a MSDN forum thread. (nothing fancy in this one I must admit, but you need to take this step into account when estimating an upgrade…)
2. Install the latest BizTalk CU on your development machine
The fact that we needed an extra intermediate step in the migration process was no big deal in our situatuion. We had an emtpy VM with BizTalk 2010 and Visual Studio 2010 in place. This machine was installed a few years ago by a developer, but was never used. It had no BizTalk Cumulative Updates installed.
We didn’t have any issues when migrating simple BizTalk 2006 solutions. We migrated to BizTalk 2010 and then migrated to BizTalk 2013R2 on an other machine.
When migrating the more complex solutions (big orchestrations and lots of ASMX web ports), we started to experience some weird behaviour in Visual Studio 2010:
That last error lead us in the right direction: BizTalk Server 2010 CU2:
This issue might also occur when you try to build a BizTalk Server 2010 solution that was converted from a Microsoft BizTalk Server 2006 R2 or Microsoft BizTalk Server 2009 solution in Visual Studio 2010.
After installing BizTalk Server 2010 CU8 on our development machine (the latest update at that moment), we restarted the migration (from the original BizTalk 2006 solution) of those complex projects, without the need to replace anything. The whole migration process completed without any error!
So, spare yourself the misery and start with a fully up to date BizTalk 2010 development environment. Other blogs on the internet might suggest to fix the “mismatched ‘braces’ ‘{}’ error” error by manually editting the .odx file. This was not the correct fix in our case as the error kept returning after every other change in the orchestration.
by Jeroen | Dec 12, 2015 | BizTalk Community Blogs via Syndication
What we learned when migrating a BizTalk Server 2006 farm (with multiple solutions/projects) to BizTalk Server 2013R2:
1. You need an intermediate step
Migrating BizTalk 2006 solutions directly to BizTalk 2013R2 (Visualt Studio 2013) is not supported. You will need to migrate the solution to BizTalk 2010 (Visual Studio 2010) first as an intermediate step. More information here in a MSDN forum thread. (nothing fancy in this one I must admit, but you need to take this step into account when estimating an upgrade…)
2. Install the latest BizTalk CU on your development machine
The fact that we needed an extra intermediate step in the migration process was no big deal in our situatuion. We had an emtpy VM with BizTalk 2010 and Visual Studio 2010 in place. This machine was installed a few years ago by a developer, but was never used. It had no BizTalk Cumulative Updates installed.
We didn’t have any issues when migrating simple BizTalk 2006 solutions. We migrated to BizTalk 2010 and then migrated to BizTalk 2013R2 on an other machine.
When migrating the more complex solutions (big orchestrations and lots of ASMX web ports), we started to experience some weird behaviour in Visual Studio 2010:
That last error lead us in the right direction: BizTalk Server 2010 CU2:
This issue might also occur when you try to build a BizTalk Server 2010 solution that was converted from a Microsoft BizTalk Server 2006 R2 or Microsoft BizTalk Server 2009 solution in Visual Studio 2010.
After installing BizTalk Server 2010 CU8 on our development machine (the latest update at that moment), we restarted the migration (from the original BizTalk 2006 solution) of those complex projects, without the need to replace anything. The whole migration process completed without any error!
So, spare yourself the misery and start with a fully up to date BizTalk 2010 development environment. Other blogs on the internet might suggest to fix the “mismatched ‘braces’ ‘{}’ error” error by manually editting the .odx file. This was not the correct fix in our case as the error kept returning after every other change in the orchestration.
by stephen-w-thomas | May 9, 2007 | Stephen's BizTalk and Integration Blog
The long awaited Professional BizTalk Server 2006 book is now available on Amazon.com.
I haven't had a chance to look at this one yet, but the outline looked very good.
I'll try to post an update once I get around to looking though it.
by stephen-w-thomas | Oct 22, 2006 | Stephen's BizTalk and Integration Blog
Another new BizTalk book is now available from APress.
This book, Pro BizTalk 2006, published by APress and written by George Dunphy (works for Microsoft Consulting Services) and Ahmer Metwally (works for Microsoft) is described as a high-end resource based on real feedback from developers. It covers topics not covered well in other BizTalk books like performance tuning, scalability, and administration.
Amazon.com also has a package so you can get both the Pro BizTalk 2006 book and the BizTalk 2006 Recipes book for one price.
Lots of other great BizTalk Books coming around the corner as well…
by stephen-w-thomas | Aug 8, 2006 | Stephen's BizTalk and Integration Blog
This was a question (paraphrased) on the BizTalkGurus.com Forum: “How can I take email attachments and put them as is into a folder?”
When using the POP3 Receive Adapter, you have the ability to receive multiple items as attachments and the adapter will handle them using MIME processing. You do not need a custom pipeline.
When receiving a multi-attachment message, you have the ability to define one of the parts as the main message Body. If you leave the default (0), the email message body will be the main message Body and all attachments will be additional parts to the message.
Lets say you have 3 attachments and you want to receive in an email and write them out to disk in a folder location (you can always publish them to the message box and do anything you want with the messages). You could probably use a custom pipeline to break out the multi-part message into separate messages…
I found a very simple and straight forward approach to accomplish this task. The Orchestration looks like this:
The key is to create an Orchestration variable of type Microsoft.XLANGs.BaseTypes.XLANGMessage. In order to do this, you need to add a reference to Microsoft.XLang.BaseTypes.dll. Once you have this variable, you just need to set it equal to your input message like: oXMessage = In.
You now have access to everything the XLangMessage has available; most importantly Count and access to all the message parts. Now a simple loop can be used to loop over the parts and create new output messages for each message part.
The output messages are created like: Out = oXMessage[n] were n is the message part index (starting at 1 since 0 is the Body). It’s that simple. It’s a total of 4 lines of code inside the Expression Shape and Message Construct.
I have a sample solution available for download below.
Download: Splitting POP3 Email Attachments in BizTalk Server 2006
See the readme.txt file for set up information.
by stephen-w-thomas | Aug 6, 2006 | Stephen's BizTalk and Integration Blog
MSBuild is the new build platform for Visual Studios. It allows great flexibility, customization (through creating custom Tasks), and integration with unit tests.
While MSBuild doesn’t directly support building BizTalk solutions, tasks are available to call the DEVENV executable and Microsoft UK has released a set of custom tasks to support a wide verity of common BizTalk tasks (available on GotDotNet). This provided an easy method for scripting automated or ad-hock BizTalk builds and deployments using MSBuild.
What can MSBuild do for you?
– Allow for automated and scheduled builds of your BizTalk code
– Extract code from Team Foundation Server (or other source control)
– Run unit tests
– Deploy BizTalk code to local or remote servers
– Control your overall BizTalk deployment by removing past solutions, stopping applications, and terminating Orchestrations
I have put together a sample to show the power and flexibility of using MSBuild for you BizTalk Build, Deployment, and Undeployment.
Download: BizTalk 2006 Build and Deployment with MSBuild
(Note the download included the custom BizTalk task binary files from GotDotNet and required license file.)
This solution provides a sample of how to set up a MSBuild script to build, deploy, and undeploy a BizTalk 2006 Solution. This solution has multiple projects and custom .net code. I also use MSBuild to create all required Send and Receive Ports and bind them to the Orchestration.
The whole build and deployment process does not use a MSI or a binding file. Although, I would have used a binding file but I wasn’t able to get the custom task to work correctly. This approach might not be the best solution to your deployment needs, but is intended to show you what can be done and how.
To run the sample, it must be extracted to your C drive unless you manually edit the configuration files. Once extracted, open a Visual Studio 2005 command window, change your path to C:\SampleDeployment, and type: MSBuild Build.proj to build and deploy the code. To undeploy the solution type: MSBuild UnDeploy.proj
The Build.proj will automatically do an undeployment if needed. This sample has only been tested with a local deployment and I was not able to get it to work remotely on my home environment. I need to do some more research on this.
In case you get lost in all the files, the FullBuild.proj is the full undeploy, build, and deploy in one file. All MSBuild files have been commented so it should be easy to follow what is going on.
Key files and what they do:
Build.proj – this is basically a control file. It imports Build.properties, Undeploy.targets, and Deploy.targets.
Undeploy.proj – this is another control file. It imports Build.properties and Deploy.targets. It is used if you just want to undeploy the solution.
Build.properties – this contains solution specific information like the solution name, dll names, application name, and so on. In theory, this should be the only file you need to update (except I hard coded all the port info into the Build.targets file)
Undeploy.targets – this set of targets handles the termination of running Orchestrations, stopping the Application, and removes the items from the GAC.
Deploy.targets – this set of targets builds the BizTalk solution, creates the Application, creates the ports, deploys the BizTalk assemblies, binds ports to the Orchestration, and starts the Application.
FullDeplou.proj – this file is the same as Build.properties, Undeploy.targets, and Deploy.targets except it has all the targets in one file.
One huge time saver I found when working with the custom tasks from GotDotNet is to download the source code. This way you can view the custom tasks, understand input parameters, and see required fields. It’s a huge time saver.
What’s on the horizon? Integration with BizUnit, FTS, multiple deployment options (like Dev, Test, Prod), and testing the remote deployment support. I hope to post more on these topics later on.
by stephen-w-thomas | Jul 26, 2006 | Stephen's BizTalk and Integration Blog
AppDev Training is offering a free CD Training Class!
They have many great courses to pick from including a new Microsoft BizTalk Server 2006 course called “Exploring BizTalk Server 2006”.
If you are new to BizTalk 2006, this looks like it would be an excellent opportunity to get 3 hours worth of free training. This CD covers the new features and functionally in BizTalk 2006.
Some other titles available are:
Exploring ASP.NET “Atlas” and Web 2.0
Exploring SQL Server 2005
It looks like this offer is also valid internationally but you have to pay shipping costs.
Oh, make sure you create a user account before you add anything to your cart. When I signed up, it seemed to clear my shopping cart. Also, if you get lost look for the “Free Training” button on the right side of the home page to get back to the free offer.
by stephen-w-thomas | Jul 17, 2006 | Stephen's BizTalk and Integration Blog
SQL Server 2005 offers many exciting new features. One of them is the support for Xml as a data type. On the surface, this looks great since BizTalk likes Xml. But, we come to learn that the Xml Data Type is not supported using the SQL Adapter inside BizTalk.
But, with a little effort you are easily able to accept Xml Documents that are all in one cell from SQL Server into BizTalk using the Receive Adapter.
Here is the scenario: The client is using a SQL table as a type of queue. Messages are writing as full Xml Documents into a single cell of the table, along with an id, datetime, and a status. This data needs to be inserted into BizTalk. In the past, I have used a windows service to send the messages to a MSMQ queue and then into BizTalk. My new approach is to use a simple stored procedure that I call from a Receive Port to extract out the Xml and update the states on the table.
In addition, you can use one Receive Location to receive many different message types. Then you can use message box routing (Direct Binding) to route many different message types to Send Ports or Orchestrations. You can also map on the Receive Port if needed.
The downside is you can not auto generate the schema using the SQL Schema Generation Wizard. You will need to generate them manually based on the Xml messages you will be putting into your queue table.
I have put together a sample complete with a sample database, stored procedure, and BizTalk code.
Download: Working with SQL 2005 XML Data in BizTalk 2006 Sample
This includes an importable MSI and Binding files if you want to build the code yourself. See the readme.txt file for more set up information.
by stephen-w-thomas | Jul 11, 2006 | Stephen's BizTalk and Integration Blog
A few weeks ago Microsoft released an updated version of the documentation for BizTalk 2006.
You can download the updated docs here.
The new content has some really good stuff including:
– Complete documentation for all BizTalk Server Line of Business Adapters, including new tutorials, one for each adapter. See the section “Using Adapters.”
– Disaster recovery instructions for backing up and restoring your BizTalk Server and databases. See the section “Backing Up and Restoring BizTalk
Server”
– Information for improving fault tolerance. See the section “Planning and Architecture”
The only thing is the download is over 40 MB and it is in .chm format. So, this will not replace your existing BizTalk Documentation but rather provide you a second full version of documentation. Not sure why it is packaged like that…
by stephen-w-thomas | Mar 27, 2006 | Stephen's BizTalk and Integration Blog
It’s a great day in world of BizTalk!
BizTalk Server 2006 is now available for download on the MSDN Subscribers Download site!
Also available are the SWIFT, RosettaNet, HL7, and HIPPA Accelerators as well as the Enterprise Application Adapters.