Friday, February 21, 2014

Upgrading to WABS - February 2014 SDK

February 20 many new enhancements on Windows Azure were announced. Also Windows Azure BizTalk Services (or WABS) contained a number of improvements and extensions.

New features

Although this article is about the installation of the February 2014 release and migrating your earlier created BizTalk Services, I’ll first summarize the new features of this version of the SDK.

-          EDIFACT Protocol Support and X12 Schema Updates
-          Pulling Messages from Service Bus Queues and Topics
-          Service Bus Shared Access Signatures (SAS) support with Service Bus Queues and Topics
-          BizTalk Adapter Services no longer needs SQL on Premise
-          Backup and Restore Support
-          Operation Log Support
More information about all this and the other Windows Azure enhancements can be found at Scott Guthrie's blog:


The installation files can become downloaded from this location:

Besides 32- and 64-bits installers of the SDK, you can also download EDI templates and a zip which contains 2 utilities, namely a BizTalk Map to BizTalk Services Map converter and a tool to migrate your BizTalk 2010 trading partners to BizTalk Services!


Let’s start the installation by starting WindowsAzureBizTalkServicesSetup-x64.exe.

Accept the license agreement and click Next

Check if all prerequisites are met, select all checkboxes and click Next

As I have already installed the November 2013 SDK, the installer shows which components are already up to date and which components will be upgraded. Click Next to continue.

Navigate to the BizTalk Service in the Windows Azure Management Portal and go to the Access Connection Information dialog.

Part of the installation of this SDK, is the migration of your LoB Relay(s) and LoB Target(s) from your on premise database to your BizTalk Service. Copy the Namespace, Default Issuer and Default Secret of your BizTalk Service and paste them in the Installation Wizard.

Click Install

Another part of the installation is the migration of your local BizTalk Adapter Service configuration

The installation is finished!

Documentation of BizTalk Services can be found here:
Have fun!


Wednesday, December 11, 2013

Turning on the spending limit in Windows Azure

When you are using Windows Azure as part of a member offer such as the MSDN benefit or the Microsoft Partner Network Cloud Essentials program, you are protected from getting charged beyond the credits from your Windows Azure subscription by a spending limit.

If you are prepared to pay for using more resources, you could use a switch on your account page with which you can turn off the spending limit. Unfortunately until a couple of months ago it was not possible to turn that switch back on!

Luckily it's now possible to turn that spending limit switch on! See the short manual below.

From the Windows Azure Management Portal, go to the menu in the upper right corner and select 'View My Bill'.


You arrive at your Account Page.

As you can see in the yellow banner, this subscription has no spending limit. So if you use more resources than available in your subscription, you'll have to pay for that.
By clicking the link in the yellow banner, you can change the spending limit option.

By selecting the upper option and hit the check mark below, you switch on the spending limit as of the start date of the next billing period.

After some processing, you'll return to your Account Page. The yellow banner now reflects the choice you made in the previous dialog.


See also this article:

Thursday, May 02, 2013

BizTalk Message Decompressor reaches v2.0 with many improvements!

To make my job easier I'm still improving BTSDecompress. Here's an overview of the latest updates:

  • Addition of Tab Pages to be able to open more than 1 query
  • Addition of a Button bar to have easy access to some of the most used functions
  • Addition of a dialog screen for maintenance of namespaces
  • Addition of a beter query editor
  • Addition of a Grid View for presenting the output
  • Addition of a command-line version
These updates are described in more detail below the following screen print.

Addition of Tab Pages

This enables you to be able to open more than one query at the same time. Most of the times I use BTSDecompress, I need 2 different queries. So I needed to open 2 instances of BTSDecompress. With the addition of Tab Pages, it's enough to start BTSDecompress just once and open all the queries I need.

Globally it works as follows:
  • BTSDecompress always starts up with one Tab Page and an empty query window
  • when you create a new query or open an existing one, it always shows up in a new Tab Page
  • the Tab of the Tab Page contains the file name of the query you opened. If you made changes to the query an asterisk is added to the Tab Page (see screen print)
  • you can close the currently selected Tab Page by pressing Ctrl-F4 or by clicking the right mouse button of the Tab Page and choose 'Close Tab'. In case the query has changed and might need to be saved, you are notified.
  • when you have opened multiple queries and you switch between Tab Pages (with Ctrl-Tab or mouse click), the settings which appear above the Tab Pages (Database Server, Database etc.) are also switched, making sure they reflect the settings of the currently active Tab Page/query

Addition of a Button Bar

For easy access to some of the most used functions a Button Bar is added. Currently it contains the following buttons:
  • New Query - open a new Tab Page with an new query
  • Open Query - open an existing query in a new Tab Page
  • Save Query - save the query in the active Tab Page
  • Save All - save all opened queries
It is likely that more buttons will become added in future releases.

Addition of a dialog screen for maintenance of namespaces

After you have executed a query, the results will show up in the output frame. In most cases the output consists of XML messages. One of the nice capabilities of BTSDecompress, is that it is possible to add XPath queries, enabling you to view exactly that part of the message that you are interested in.
In many cases you might need namespaces to get to the part of your interest. In earlier releases of BTSDecompress, it was possible to add only 1 namespace. Since your message might contain more namespaces, it is now possible to add multiple namespaces. Maintenance (adding, editing, deleting) of these namespaces can be done with the new 'Namespaces and prefixes' dialog screen.

Of course the namespaces you entered are stored along with the query. This screen can be accessed by clicking the Namespaces hyperlink in the upper left corner of BTSDecompress.

Addition of a beter query editor

The query editor in the previous releases of BTSDecompress was nothing more than a multi line Text Box and did not have many features. I have to admit that I often created my queries in SQL Server Management Studio and copied them to BTSDecompress. So it was about time that BTSDecompress would get a richer query editor. I decided to use Pavel Torgashov's FastColoredTextBox, which is a nice and very rich Text Box!
Although currently I'm not using all of the capabilities of this Text Box, using this Text Box already makes using BTSDecompress much more attractive. This editor supports amongst others color recognition for T-SQL statements and line numbers.

Addition of a Grid View for presenting the output

As of this release BTSDecompress not only shows the results in a Text View, but also in a nice Grid View for better readability. In contrast with SQL Server Management Studio, both Views are filled directly after executing your query.

Addition of a command-line version

This enables you to create batch jobs and have the output stored in a Text file. You can use the same queries as the ones you use for the GUI version of BTSDecompress. The command-line version of BTSDecompress is called BTSDecompress_cmd.exe and has  the following parameters:
  • -s: Database server
  • -d: Database
  • -SQLFile: Query which will be executed
  • -OutputFile: Location and name of the output file
  • -OverwriteOutputFile: Overwrite the output file if it already exists
  • -Namespace: Add (prefix and) namespace
  • -HideOuterXMLTag: Show just the content of a XML tag, without the tag itself
  • -HideContextPropertyNames: Hide the Context Property Names in the result
  • -ShowColumnNames: Show the field names in the result
  • -UseFieldSeperator: Show a Field Seperator (';') between the fields (and values) in the output
  • -BlankLineBetweenRecords: Add an extra blank line between the records in the output, for better readability
  • -?: Show Parameter Help
A couple of parameters can also be set in the query file, from the GUI version of BTSDecompress. By adding them as a parameter to  BTSDecompress_cmd.exe, the value which is set in the query file will be overruled.

More information

Where to find

BTSDecompress is Open Source software and can be found here:

Hopefully this tool is helpful to others as well.

Tuesday, April 16, 2013

Ordina organiseert de BTUG-bijeenkomst van 30 mei 2013

Het is ondertussen een goed gebruik geworden dat Ordina jaarlijks een groot BizTalk-evenement organiseert en host. Na de bijeenkomst van de Dutch BizTalk User Group (BTUG) in november 2011 en het Ordina BizTalk Innovation Event in februari 2012, host Ordina dit jaar wederom een bijeenkomst van de BTUG. Dit evenement zal op donderdag 30 mei plaatsvinden, in de ondertussen voor veel BizTalkers welbekende 11e etage van de A-toren van de hoofdvestiging van Ordina, te Nieuwegein.

Het programma ziet er als volgt uit:
- BizTalk Update (Dick Dijkstra, Microsoft)
- Theorie en praktijk van messaging/service bus in Azure (Steef-Jan Wiggers en René Brauwers)
- BizTalk Disaster Recovery (Lex Hegt + Jeroen Hendriks)

Ontvangst is vanaf 15.30u. Tussen de sessies door zijn softdrinks te krijgen en vindt het dinerbuffet plaats. Er wordt afgesloten met een borrel. Uiterlijk om 21.00u moeten de deelnemers het pand hebben verlaten.

Toegang is gratis.
Maximaal aantal deelnemers: 70
Locatie: Ringwade 1, Nieuwegein (kaart)

Wednesday, April 10, 2013

Could not find server 'servername' in sys.servers after running the BizTalk Backup job on Windows Azure

After I provisioned a Windows Azure Virtual Machine, which was based on the BizTalk Server 2013 Beta image from the Gallery, I configured the BizTalk Backup job.

Normally it is enough to just apply the file locations of the Full backup and the Log backup and to Enable the job, but when I did this, I noticed in the History of the job, that the job failed.

The error I got was 'Could not find server BTS2013B in sys.servers', where BTS2013B is the name that I assigned to the Virtual Machine.

I checked the sys.servers table and retrieved the servername. Both showed something else than the expected name BTS2013B, namely WIN-QMPGBU8OQOK. Apparently this is the original name of the Windows installation on the VM.
To fix this problem I ran the following statements in SQL Server Management Studio,
EXEC sp_dropserver 'WIN-QMPGBU8OQOK';
EXEC sp_addserver 'BTS2013B', 'local';
Afterwards I saw that the server name is still WIN-QMPGBU8OQOK, but in sys.servers, the field data_source is now BTS2013B, which is enough for the BizTalk Backup job to run properly.
The only thing left is to restart the SQL Server service and then the BizTalk Backup job runs fine!

Thursday, March 21, 2013

Adding EndPoints on Windows Azure VM's

After you have created a Virtual Machine in Windows Azure, an EndPoint is created for accessing the Virtual Machine with Remote Desktop (RDP) from your local computer. An EndPoint is basically a mapping between a Public IP Port and a Private IP Port. Each time you use the Windows Azure Management Portal to connect to your Virtual Machine in Windows Azure, by hitting the Connect button, the RDP connection connects to the Public IP Port. The network traffic that arrives at that Public port, becomes routed to the Private port, making sure the network traffic accesses the application or service it was intended for.

So for RDP everything is setup nicely by Windows Azure, but say you have a SQL Server database on that VM, which you want to access from a (Azure) website or your local SQL Server Management Studio. In that case you need an extra EndPoint to be able to access that database from the outer world.

Although not advisable, you can map Public IP Port 1433 (SQL Server's standard port) to Private Port 1433. But by doing so, you make it easier for hackers to access your database (although they don't have security credentials), so it's better to take a random number between 1024 and 65535 and configure that as the Public IP Port.

Follow these steps to create an EndPoint for accessing a SQL Server database.

Login to the Management Portal with your Microsoft account which is mapped to your Windows Azure subscription and click on 'Virtual Machines' in the menu on the left. Next select a Virtual Machine  by clicking on it (that is: if you've created one beforehand) and then click on 'EndPoints'. In the screen that follows you'll see that an EndPoint is already created for Remote Desktop connections.

Now click the 'Add EndPoint' button, afterwhich you get the first screen of a 2 pages wizard.

Leave the bullet on the first radio button and proceed to the next screen of the wizard, by clicking on the small arrow button in the lower right corner.

In this screen you have to make a couple decisions. First, select an identifiable name for the EndPoint. Since we are creating an EndPoint for SQL Server, you could choose a name in that direction. Keep in mind that spaces are not allowed!
The second choice you have to make is the number of the Public Port. Choose a random number between 1024 and 65535, preferable NOT 1433.
The last choice is actually a value you should already know, namely the (Private) Port which is used for SQL Server. By default SQL Server communicates on port 1433. So unless you did configure another port, enter 1433 for the Private Port.
So far the configuration of the EndPoint. Now click the button with the check mark, to have Windows Azure create the EndPoint. This can take 1 or 2 minutes.
What's next
Having an EndPoint configured to be able to access a database in a Windows Azure VM is only one step. The next steps will be creating a SQL Server authentication login and grant it the needed authorizations. Read more about it in this article on BizTalk Events.

Wednesday, November 14, 2012

BizTalk 2013 Beta: Viewing dependencies

In early November 2012 the Beta release from BizTalk 2013 has been released. That version number is interesting in itself, as the CTP was called BizTalk 2010 R2.
One on the new functionalities in this release, which was not yet available in the CTP is a Dependency Viewer. As the name already suggests, this functionality enables the user of the BizTalk Server Administration Console to view which BizTalk artifacts depend on other artifacts. This article intends to provide more information on how this functionality works.

The problem it solves

Most BizTalk Groups contain multiple BizTalk Applications which might contain hundreds of schemas, (custom) pipelines, maps, orchestrations and endpoints. These artifacts are not autonomous, they depend on other artifacts and those artifacts might also depend on other artifacts.

When it comes to subjects like deployment and troubleshooting, it's handy to know which artifacts rely on each other. That's the point where the Dependency Viewer comes in.

Where to find

The Dependency Viewer can be found in the Administration Console. It can't be missed in the lower part of the screen under the following artifacts:
  • Receive Ports
  • Receive Locations
  • Send Ports
  • Send Port Groups
  • Schemas
  • Maps
  • Pipelines

How it works

Whenever you select one of the mentioned categories, the Dependency Viewer appears in the lower part of the pane that shows the artifacts. To find out which dependencies a certain artifact has, you need to hit the 'View Dependencies' button in the right pane. So unfortunately the Admin Console does not automatically show the dependencies, whenever you click on another artifact. Hopefully this will be fixed in a later BizTalk 2013 version.
Once you click that hyperlink the Dependency Viewer shows the dependencies, if any, of the selected artifact. It does this per category.
If dependencies exist, the number of dependencies appears as a hyperlink. The dependencies themselves appear after you have clicked the hyperlink.

The screen above shows the dependencies for a Receive Port called ReceiveSamplePort. This port has 2 Receive Locations which are shown both.
Although the upper Receive Location is selected, no dependencies are shown. If you want to see its dependencies, click View Dependencies in the right pane again and in this case it would show that this Receive Location depends on one Receive Port and one Pipeline.


The way the Dependency Viewer is implemented in this Beta release is not (yet) very impressive. I mention a couple of down sides on the current implementation:
  • no auto-retrieve. You need to hit the 'View Dependencies' button
  • the Dependency Viewer is always there, it's not possible to change its size or hide/show the viewer
  • no dependencies shown in case of Message Based Routing scenarios, for example a Send Port with a filter to a Receive Port
  • no dependencies shown relating to Hosts
I'm looking forward to the next BizTalk 2013 release and I am sure the Dependency Viewer will be implemented in a better and richer way.

Friday, October 12, 2012

Real World Scenarios with BizTalk360

During the Bouvet BizTalk Innovation Event, 26/27 September 2012 in Stavanger, Norway, there were 2 presentations about BizTalk360. One was held by Saravana Kumar, the founder of BizTalk360, and I did another presentation about this product. Where Saravana showed many functionalities, including the new V5 functionalities, from BizTalk360 from a Product perspective, I wanted it to turn around and have a look at BizTalk360 from a Customer perspective. Therefore I talked about some Real World scenarios with BizTalk360.

In addition to my presentation I wrote an article on this topic and extended it with describing the most important functionalities in V5, which was released recently.

In the article I explain why having a Shared Infrastructure, like BizTalk, makes monitoring more complex. I also describe how BizTalk360 reduces the number of consoles you need to monitor a BizTalk environment.

To expand the visibility from BizTalk360, I posted the article on CodeProject. You can find it here:

More information about BizTalk360, can be found here:

Thursday, September 13, 2012

Important updates to BTSDecompress

As an BizTalk Administrator/Technical Application Engineer, I regularly need to fix problems with BizTalk that I am not able to fix easily with the out-of-the-box tools. For example, at the moment we experience an issue which leads to suspended messages on a particular receive location. To fix that issue I need easy access to these suspended messages and their content. Off course I can get to the content with the BizTalk Administration Console, but because I need to fix about 50 of those messages per day (awaiting a structural solution), I need easier access to the MessageBoxDb to save time and to prevent myself from RSI, due to so many mouse clicks.

Since a couple of years I maintain BTSDecompress on CodePlex. This tool enables me to query the BizTalk databases and retrieve message content and context. Although this tool works fine for me, the main disadvantage is that, until now, it only supported BizTalk 2006. Therefore only a limited group of BizTalk users could potentially benefit of this software.

Because of the issue I mentioned in the first paragraph, lately I've been working a lot on that tool. It has reached version 1.5 and in this version a number of important improvements have been applied. Here follows a list of the most important changes:

Support of BizTalk releases
- BizTalk 2006
- BizTalk 2010
- BizTalk 2010 R2 CTP

I expect BTSDecompress to work with the other major BizTalk releases as well (2004, 2006 R2, 2009), but I did not (yet) test it, so I don't mention these versions here.

Support of Windows versions
- Windows Server 2003
- Windows Server 2008 R2
- Windows 7

I expect BTSDecompress to work with the other major Windows versions as well (XP, Vista, 2008), but I did not (yet) test it, so I don't mention these versions here.

Query maintenance
It is now possible to Create, Open, Save and Save As queries. This makes it a lot easier to maintain multiple queries.

ebXML support
It was already possible to fire XPath queries on the message content, but you can now do that as well upon ebXML headers and envelopes.

Where to find
BTSDecompress is Open Source software and can be found here:

Tuesday, September 04, 2012

Developing BizTalk 2010 R2 with Visual Studio 2011??

Since a couple of days Microsoft enabled Windows Azure users to create Virtual Machines, which are based on BizTalk 2010 R2 CTP. This is great, because it offers those users to have a preview at that release, combined with some of the new related products, like SQL Server 2012 and .NET 4.5.

However, given the screenshot below, which was taken from the BizTalk 2010 R2 CTP Installation Wizard, it looks like Microsoft expected to release the next version of Visual Studio sooner :-)