Firewall and MSDTC

Firewall and MSDTC

So we all know that DTC often provides problems, and it can be a hassle. I’ve spent so much time waiting for everything to get up, and I often find myself spending most of my time With the actual configuration of BizTalk.

It is important to maintain a high level of security, one of the ways to do this is to use a firewall between the servers, what type of communication is allowed between the machines and over what ports, TCP, UDP, ports or port ranges.

So I’m willing to share one of the elements that most often are the actual problem.

The MSDTC will by default use port 135, however, it will also use a wide range of ports to send and receive data. It is important that you configure both the BizTalk and SQL Server machines to allow these ports to be used and set up a port range.

When it comes to the ports I usually set up a port range of 100 ports, between 5000 to 5100. There are a few more changes you need to do, here is the walk-through (there is a link at the bottom where you can download the registry string).

  1. Open the 32bit registry by hitting start -> run and type “regedt32” (it is very important you store this in the 32bit registry and NOT in the regular “regedit
  2. Navigate to “HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Rpc
  3. Create a new Key (folder) and name it “Internet
  4. In this Key / folder, create the following:
  5. Create a new “REG_SZ” and name it “PortsInternetAvailable” and add a value equal to “Y
  6. Create a new “REG_SZ” and name it “UseInternetPorts” and add a value equal to “Y
  7. Create a new  “REG_MULTI_SZ” and name it “Ports” here, add the Port range you want, eq. 5000-5100.

When this is done, your registry looks like this:


All the ports you need to open for now is port 135 and port range 5000-5100 (TCP) between the servers.

If you don’t want to type all this you can download the registry file, remember you still have to open regedt32 and choose “Import” from the file menu.

Download the registry file here

BizTalk Server 2013 Developer Edition is now available in Microsoft Azure for MSDN subscribers

BizTalk Server 2013 Developer Edition is now available in Microsoft Azure for MSDN subscribers


Dev/test story for BizTalk Server in Microsoft Azure IaaS just got better. We have published BizTalk Server 2013 Developer edition image in the platform gallery for MSDN subscribers.

Image details

A typical BizTalk Server (2013) development environment consists of

  1. Base Windows (Server 2012) platform
  2. BizTalk Server (2013)
  3. SQL Server (2012)
  4. Visual Studio (2012)
  5. IIS

The aim of creating the developer edition image is to have a self-contained image which includes everything that a BizTalk developer needs to get started. So, it contains not just BizTalk Server but also the other software components mentioned above. The specific versions of the software components are mentioned in parenthesis.

Yes, the developer edition image does contain Visual Studio pre-installed! Not only that, it also contains the BizTalk SDK pre-installed for you.

Getting started


This image is available only to MSDN subscriptions in Microsoft Azure. A MSDN subscription offers lots of benefits to develop and test solutions in the cloud. You can read more about MSDN subscription benefits here.

Create a new BizTalk Server development environment

You can create a new BizTalk developer virtual machine either through the Azure portal, or through Powershell. In this blog post, I will walk through the portal experience.

In Azure portal, you can create a new VM by navigating through
New – Compute – Virtual Machine – From Gallery – BizTalk Server

If your subscription is not a MSDN subscription, BizTalk Server 2013 Developer image does not light up. However, if you are making use of a MSDN subscription you will notice the BizTalk Server 2013 Developer image magically light up.


You can then select this image, walkthrough the image creation wizard and create a new BizTalk Server 2013 Development virtual machine just like you would create any other virtual machine.

Develop your first BizTalk Application

When the virtual machine is up and running, it has the local SQL Server up and running as well.


Note the absence of any BizTalk specific databases. This is because the virtual machine has BizTalk Server installed, but it isn’t configured yet.

BizTalk Server configuration

You can now launch the BizTalk Server configuration (shortcut to BizTalk Configuration is present in desktop), and configure BizTalk in the virtual machine.


Above screenshot shows a successful completion of BizTalk configuration.

Development tools

The heart of any BizTalk development environment is the IDE – Visual Studio. The virtual machine already has Visual Studio pre-installed.


Note that the BizTalk SDK is installed as part of the image as well. So, you can get started right away.

More options – other BizTalk components

The developer edition image has BizTalk core installed by default. If you wish to use other components of BizTalk Server, such as ESB Toolkit, WCF LOB adapters, etc. – you have full access to the BizTalk Server 2013 Developer edition base media at C:\BizTalkServer2013_Developer.


Develop in the cloud – Get started with BizTalk Server development in minutes

The barrier to get started with developing BizTalk applications has come down drastically in the cloud. With the BizTalk Server 2013 development image, developers can now provision a fully functional development environment and write their first BizTalk application in minutes.

All the complexities involved with respect to hardware availability, understanding the software dependencies, installation sequence, SDK installations, etc. are taken care of. BizTalk developers can focus on their application, and get started with their app development in the cloud within minutes.

On-demand development environments

There are many cases where customers need to spin off a new BizTalk Server development environment for a POC, or an upcoming BizTalk project. Usually, they either have to work their way through setting up a new environment.

With the power of developer images in Azure, customers can now create their environments on-demand – create and use it when required, and shut it down when the POC/project development is complete.

Leverage Azure platform and its ecosystem

This is often understated, but there is a lot of goodness provided by the Azure platform.

Choose a datacenter location near you

Azure currently operates out of ten regions across the globe. This includes United States, Europe, Asia Pacific, Japan, and Brazil. Additional geographic expansion is a high priority focus for Azure team.

Wherever you are located, you can choose a location near you that suits your requirements.

Explore on premise connectivity options in the Azure platform

It is very common in BizTalk solutions to have one or more dependent systems (e.g. ERP) on premise. Development could happen in the cloud, and to test the end-end flow – customers can make use of the networking solutions in Microsoft Azure: point-to-site, site-to-site, or the recently announced Azure ExpressRoute options.


There are various other goodness that comes as part of the Azure platform. It includes, but is not limited to: VM sizes, VM agent for remote debugging, VM extensions, security extensions, etc.


BizTalk Server 2013 Developer edition is available for MSDN subscriptions in Microsoft Azure. It is a completely self-contained image and helps you get started with BizTalk Server development in the cloud.

Blog Post by: BizTalk Blog

New release: Managing and cleaning BizTalk Server MarkLog database tables: sp_DeleteBackupHistoryAndMarkLogsHistory

New release: Managing and cleaning BizTalk Server MarkLog database tables: sp_DeleteBackupHistoryAndMarkLogsHistory

Almost three weeks ago in my last post I release a SQL script to manager and delete the unnecessary records in the BizTalk “MarkLog” tables according to some of the best practices (you can read more here: Managing and cleaning BizTalk Server MarkLog database tables according to some Best Practices), however I knew in advance […]
Blog Post by: Sandro Pereira

ESB Toolkit Tip #5: Link BAM Itineraries data and Exceptions data with a custom Foreign Key

ESB Toolkit Tip #5: Link BAM Itineraries data and Exceptions data with a custom Foreign Key

With the ESB Toolkit you get BAM out of the box. There are already two activity definitions created that give information about itineraries that are processed in BizTalk and about Exceptions that occur in BizTalk. You only have to deploy the definitions with the Bm.exe tool to enable BAM tracking so it’s very easy to use BAM with the ESB Toolkit.  
When you deploy the activity definitions are several BAM tables en views created in the BAMPrimaryImport database. They contain very valuable information but the strange thing is that you cannot link the Itineraries data to the Exceptions data. The data is stored in different tables and there is no foreign key to join the tables. This is very unfortunate because now you know for example that an error has occurred in an Itinerary Service but you don’t know in which itinerary. Also if you want to have an overview of the running itineraries you have to link the data because if an exception has occurred in an itinerary that itinerary is not running anymore but you don’t have information about that in the Itineraries data. How can you fix this? By creating a custom Foreign Key!


Creating a custom Foreign Key

In the bam_ItineraryServiceActivity_CompletedInstances view you have the InterchangeID that is set by the Messaging Engine for each message that arrives on the Server. In the bam_EsbExceptions_CompletedInstances view you don’t have it but you can use other fields to store it in. The FaultCode field is a suitable candidate because it has the same data type as the InterchangeID and you can set the FaultCode inside an Orchestration when an Exception occurs.

Use the following code to get the InterchangeID and to create a Fault message when an Exception occurs. The data of the Fault message is stored in the EsbExceptionDb database but also in the BAMPrimaryImport database.

// Get Context properties
interchangeID = msgInbound(BTS.InterchangeID);

// Create FaultMessage
msgFault = Microsoft.Practices.ESB.ExceptionHandling.ExceptionMgmt.CreateFaultMessage();

// Set Fault Message Properties
msgFault.Body.FaultCode = interchangeID;

.csharpcode, .csharpcode pre
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
background-color: #f4f4f4;
width: 100%;
margin: 0em;
.csharpcode .lnum { color: #606060; }


Catch Exceptions











Retrieving data from multiple tables with SQL Joins

Create a SQL query in SQL Server Management Studio on the BAM views in the BAMPrimaryImport database. Use the InterchangeID and FaultCode fields to link the views.


Itineraries With Errors

In the following example are the bam_ItineraryServiceActivity_CompletedInstances view bam_EsbExceptions_CompletedInstances view joined to get an overview of Itineraries with errors. Itineraries With Errors





Running Itineraries

In the following example are the bam_ItineraryServiceActivity_CompletedInstances view bam_EsbExceptions_CompletedInstances view joined to get an overview of all the running Itineraries.

Running Itineraries


See Also

For more information see:

Using BAM in the ESB Toolkit

Office 365 and SharePoint Online FAQ

Recently had to field some questions regarding Office 365 and SharePoint online. Thought it would be beneficial for others looking for similar information. Leave a comment if you have additional input on any of these or have other questions regarding this topic:


Performance, Scalability
On SharePoint online are farms replicated Globally? Where are they replicated? What control […]
Blog Post by: Reddy Kadasani