BizTalk Services: Throttling


Microsoft Azure BizTalk Services (MABS) is being retired, and replaced with Azure Logic Apps. If you currently use MABS, then Move from BizTalk Services to Logic Apps provides some guidance on moving your integration solutions to Logic Apps.

If you're brand new to Logic Apps, then we suggest getting started here:

Azure BizTalk Services implements service throttling based on two conditions: memory usage and the number of simultaneous messages processing. This topic lists the throttling thresholds and describes the Runtime behavior when a throttling condition occurs.

Throttling Thresholds

The following table lists the throttling source and thresholds:

Description Low Threshold High Threshold
Memory % of total system memory available/PageFileBytes.

Total available PageFileBytes is approximately 2 times the RAM of the system.

60% 70%
Message Processing Number of messages processing simultaneously 40 * number of cores 100 * number of cores

When a high threshold is reached, Azure BizTalk Services starts to throttle. Throttling stops when the low threshold is reached. For example, your service is using 65% system memory. In this situation, the service does not throttle. Your service starts using 70% system memory. In this situation, the service throttles and continues to throttle until the service uses 60% (low threshold) system memory.

Azure BizTalk Services tracks the throttling status (normal state vs. throttled state) and the throttling duration.

Runtime Behavior

When Azure BizTalk Services enters a throttling state, the following occurs:

  • Throttling is per role instance. For example:
    RoleInstanceA is throttling. RoleInstanceB is not throttling. In this situation, messages in RoleInstanceB are processed as expected. Messages in RoleInstanceA are discarded and fail with the following error:

    Server is busy. Please try again.

  • Any pull sources do not poll or download a message. For example:
    A pipeline pulls messages from an external FTP source. The role instance doing the pull gets into a throttling state. In this situation, the pipeline stops downloading additional messages until the role instance stops throttling.
  • A response is sent to the client so the client can resubmit the message.
  • You must wait until the throttling is resolved. Specifically, you must wait until the low threshold is reached.

Important notes

  • Throttling cannot be disabled.
  • Throttling thresholds cannot be modified.
  • Throttling is implemented system-wide.
  • The Azure SQL Database Server also has built-in throttling.

Additional Azure BizTalk Services topics

See Also