Receive Location fault tolerance

BizTalk Server 2020 – How to use Receive Location fault tolerance

Lex

BizTalk Server

Nov 2, 2021

Introduction to BizTalk Server 2020

Meanwhile, it is almost two years ago that Microsoft has released BizTalk Server 2020. Besides making sure that BizTalk Server is compatible with the most recent versions of Windows, SQL Server, Visual Studio, etc., the product also came with several new features.

The What’s New article on the Microsoft website gives an overview of all the new features and the newly supported platforms. You will see that in the Additional Updates section, a feature called Partially disabled receive locations shows up. In this blog, we will explore what the feature is about and how it can be useful.

Receive Location fault tolerance

Introduction to Receive Location fault tolerance

With the new Partially disabled Receive Locations feature, fault-tolerance for Receive Locations comes into play. However, before we have a look into the benefits of the feature, and how it must be set up, let’s first have a look at the default behaviour of Receive Locations.

Explaining default behaviour of Receive Locations

As you know, Receive Locations connect to endpoints to pick up messages that must be processed by BizTalk Server. If the Receive Location is for example a file share or an FTP site, the Receive Location will poll the endpoint with a specific interval and check if any messages should be picked up.

When you are familiar with the states of a Receive Location, you know that it can have the following states:

  • Enabled – Messages can be picked up and processed by the Receive Location
  • Disabled – The Receive Location is inactive, and no messages will be picked up nor processed

In other words, a Receive Location can be in an active state or in an inactive state, so a partially disabled state sounds a bit odd.

However, what would happen if a Receive Location can’t connect to its endpoint because of some temporary failure? The failure could be due to external issues like network issues or due to something being wrong in the BizTalk Server itself. In both cases, the Receive Location tries to connect a couple of times to the endpoint. Depending on the kind of adapter that is used, the number of retries can be configured in the Receive Location.

The below screenshot shows the retry settings for a Receive Location that is using the FILE adapter.

File transport properties

Regardless of the root cause concerns an external issue or an internal one, when the Receive Location could not connect to the endpoint after the maximum number of retries has been reached, the Receive Location will automatically be disabled. As long as the issue has not been fixed and the Receive Location has not been enabled, no messages will be picked up from the endpoint, thereby interrupting the business process.

Explaining the new Receive Location fault-tolerance feature

With the new Partially disabled Receive Locations feature, fault-tolerance for Receive Locations comes into play. This feature is mainly beneficial for your BizTalk Server Group consisting of multiple BizTalk servers.

Let’s have a look at a scenario.

Scenario: Two BizTalk servers, one server breaks down
Say, you have a BizTalk Group with 2 BizTalk application servers, and there is a Receive Location that polls its endpoint from both BizTalk application servers. After some time, an issue (like running out of disk space) happens in one of the BizTalk application servers. This leads to the Receive Location not being able to connect to the endpoint, so after a couple of retries the Receive Location becomes disabled. No more messages are picked up and the business process is interrupted.

Let’s shortly summarize what is happening: The connectivity to the endpoint is totally fine. Also, except for a single BizTalk server, the rest of the BizTalk platform is perfectly able to process messages from that endpoint. Still, messages are not being picked up, because BizTalk has disabled that Receive Location.

Even more, it is very likely that the BizTalk server that currently is broken, normally processes multiple Receive Locations that are now also disabled, because of the issue with that single server!

A hidden gem in BizTalk Server 2020!

Would not it be great if BizTalk Server would still be able to pick up messages from its endpoints, without having to bother about the broken server (although it must be fixed of course)? Well, that is exactly what the Partially disabled Receive Location feature is all about!

The following quote comes from the official web page in the Microsoft Documentation site that explains this feature.

Starting with BizTalk Server 2020 and newer, you can configure receive locations to recover from transient errors, instead of getting disabled. On error, receive locations are disabled in the specific host instance. BizTalk attempts to recover the receive location in an interval you set. The receive location continues running in the other host instances.”

Doesn’t that sound like a great feature to use? Continue reading, and we will tell you when and how to benefit of this feature!

How to enable Receive Location fault tolerance

Before we explain how to enable this feature, let’s first have a look under what conditions you will benefit of it.

Prerequisites to use Receive Location fault tolerance

As seen in the previous paragraph, the feature does it job when an issue happens in one (or more) of the BizTalk servers. In such cases, BizTalk will disable the Receive Location only in the server where the issue occurs. From this, we can derive a couple conditions when the feature is helpful.

  1. You must have multiple BizTalk servers that are processing the (same) Receive Locations. This means, that you must be running BizTalk Server Enterprise edition, and that you have at least two BizTalk application servers. In those BizTalk application servers, you must have host instances that serve Receive Locations. So, if you are running the Standard edition of BizTalk Server, the benefits are minimal.
  2. The feature is only beneficial in case of issues with the actual BizTalk application servers. Think of scenarios like running out of disk space or the webservice that’s connected to the Receive Location malfunctions.

Steps to enable Receive Location fault tolerance

Now we better understand in what scenarios the feature is helpful, let’s have a look at how to enable the feature.

For that, we need to move over to the BizTalk Server Administration Console. Follow the steps shown here to enable Receive Location fault tolerance.

  1. Open the BizTalk Server Administration Console and expand BizTalk Server Administration
  2. enable Receive Location fault tolerance
  3. In the admin console, right-click the BizTalk Group, and in the menu that appears click Settings…
  4. BizTalk Server Administration Console
  5. The BizTalk Settings Dashboard opens. Under the category Receive Location you will find the Enable fault tolerance checkbox
  6. BizTalk settings dashboard
  7. To enable the feature, click the Enable fault tolerance
  8. Click the OK button to save the configuration

Note: The Receive Location section also contains a configurable Retry Interval. With this interval, you can configure after how much time the Receive Location should try to connect to its endpoint again.

It is as simple as that!

More BizTalk Server 2020 resources

From a product perspective, BizTalk360 has a strong focus on BizTalk Server. Because of that, we also want to bring good BizTalk Server content to our blog. However, there is more. Since the release of BizTalk Server 2020, we are maintaining a landing page that contains articles especially about BizTalk Server 2020.

Further, you might have noticed that we are close to publishing a book about migrating to BizTalk Server 2020. This will be a 420-page full-colour paperback that’s written by Sandro Pereira, Tom Canter, and the author of this blog. We are still working on setting up the marketplace and fulfilment. So, more information will be available soon!

Also, together with Stephen W. Thomas, Sandro Pereira, and the author of this blog, we are running BizTalk/Integration trainings. The main topics are:

  • BizTalk Server 2020 Development (trainer Sandro Pereira)
  • BizTalk Server 2020 Hybrid options (trainer Stephen W. Thomas)
  • BizTalk Server 2020 Administrations (trainer Lex Hegt)

The full training covers 3 days, however as each main topic takes one day, you can decide to only take the main topics that are most relevant to you.

If you want to know more about all this, you can check the following websites:

Conclusion

In this article, we had a look at a BizTalk Server 2020 feature, being Receive Location fault tolerance. We explained the benefits of this feature, in which scenarios you can take use of the feature, and how to enable the feature in the BizTalk Server Administration console.

If you want to have even more control over your BizTalk Server environment, why not give BizTalk360 a try! This feature-rich web-based portal, with 80+ administration, monitoring, and analytics features makes you as a BizTalk Server administrator working much more efficient.

Our team will be proud to show you the product and discuss any challenges you might currently be facing with managing and monitoring your BizTalk Server environment. Feel free to check the product website, book a demo, or even download a free trial of the product.

We hope this article is of use for you.