Understanding the BizTalk Throttling Mechanism
  • 12 Mar 2021
  • 5 Minutes to read
  • Dark
    Light
  • PDF

Understanding the BizTalk Throttling Mechanism

  • Dark
    Light
  • PDF

Article summary

This section provides an insight into the concept of BizTalk Throttling, which is described in the following parts:

  • What Is BizTalk Host Throttling
  • Message Publishing Throttling States
  • Message Delivery Throttling States

What is BizTalk Host Throttling

Throttling is a process by which BizTalk Server ensures optimum performance and use of System resources (memory, threads, CPU, etc).

Floodgate scenarios, where an unusual load comes into the system within a short period of time, are very common in an integration environment. BizTalk Server manages this kind of scenario by a mechanism called Host Throttling. The product monitors various points in the system - memory, CPU usage, database connections, thread count, etc. and if it detects an unusual pattern, then it tries to control those parameters to bring the system to a manageable level.

For a detailed study on this topic, please read the MSDN article: What Is Host Throttling?

Additional resources: BizTalk Server 2010: Host Throttling Understand BizTalk server Host throttling

Message Publishing Throttling States

The following table shows the various Message Publish throttling states, trigger conditions, and what actions the BizTalk Server takes to mitigate the risk. This data is important to understand the Throttling Analyser user interface and the interaction with the Publish and Delivery Throttling Graph.

StateTrigger for Throttling ConditionThrottling Actions Taken
2Message publishing incoming rate for the host instance exceeds the Message publishing outgoing rate * the specified Rate overdrive factor (percent) value. The database cannot keep up with the publishing rate.Block the publishing thread for a dynamically computed time period until the Message Publishing Incoming Rate is at par with the Message Publishing Outgoing Rate * the specified Rate overdrive factor (percent) value.
4Process memory exceeds the specified threshold. This can occur if the batch to be published has steep memory requirements or too many threads are processing messagesReduce the size of the thread pool used by EPM. Block the EPM threads to prevent the processing of new message batches. If there is a steep memory requirement to persist the messages in a batch to the database, the publishing thread is also subject to a progressive delay before the messages are persisted to the database. Whether the publishing batch will be blocked or not due to process memory pressure depends on several factors including the number of messages in the batch or if there are dehydration or message deletion commands in the batch.
5System memory exceeds the specified threshold.Reduce the size of the thread pool used by EPM. Block the EPM threads to prevent the processing of new message batches. If there is a steep memory requirement to persist the messages in a batch to the database, the publishing thread is also subject to a progressive delay before the messages are persisted to the database. Whether the publishing batch will be blocked or not due to process memory pressure depends on several factors including the number of messages in the batch or if there are dehydration or message deletion commands in the batch.
6Host message queue size, the spool table size, or the tracking table size exceeds the specified threshold. Possible reasons for this condition include:· The SQL Server Agent jobs used by BizTalk Server to maintain the BizTalk Server databases not running or are running slowly.· Down-stream components are not processing messages from the in-memory queue in a timely manner.· Number of suspended messages is high.· Maximum sustainable load for the system has been reached.Reduce the size of the thread pool used by EPM. Block the EPM threads to prevent the processing of new message batches. The publishing thread is also subject to a progressive delay before the messages are persisted in the database.
8Database sessions being used by the host instance exceed the specified threshold.Reduce the size of the thread pool used by EPM. Block the EPM threads to prevent the processing of new message batches. The publishing thread is also subject to a progressive delay before the messages are persisted in the database.
9Process thread count exceeds the specified threshold.educe the size of the thread pool used by EPM. Block the EPM threads to prevent the processing of new message batches. If there is a steep memory requirement to persist the messages in a batch to the database, the publishing thread is also subject to a progressive delay before the messages are persisted to the database. Whether the publishing batch will be blocked or not due to process memory pressure depends on several factors including the number of messages in the batch or if there are dehydration or message deletion commands in the batch.

Message Delivery Throttling States

The following table shows the various Message Delivery throttling states, trigger conditions, and what actions the BizTalk Server takes to mitigate the risk. This data is important to understand the Throttling Analyser user interface and the interaction with the Publish and Delivery Throttling Graph.

StateTrigger for Throttling ConditionThrottling Actions Taken
1Message delivery incoming rate for the host instance exceeds the Message delivery outgoing rate * the specified Rate overdrive factor (percent) value this can be caused by high processing complexity, slow outbound adapters, or a momentary shortage of system resources.Block the delivery thread for a dynamically computed time period until the Message delivery incoming rate is at par with the Message delivery outgoing rate * the specified Rate overdrive factor (percent) value.
3A number of in-process messages delivered to a service class exceed the specified threshold. This can be caused by high processing complexity, slow outbound adapters, or a momentary shortage of system resources.Slow down message delivery to adapters or XLANG. Reduce the size of the thread pool used by the Message Agent.
4Process memory exceeds the specified threshold. This can occur in memory-intensive processing scenarios, when processing large messages, or when send adapters are attempting to process a high number of messages simultaneously.Slow down message delivery to adapters or XLANG. Reduce process memory consumption by dehydrating service instances and shrinking cache when applicable. Reduce the size of the thread pools used by the EPM and/or the Message Agent. Periodically force a .NET garbage collection (GC).
5System memory exceeds a threshold.Slow down message delivery to adapters or XLANG. Reduce process memory consumption by dehydrating service instances and shrinking cache when applicable. Reduce the size of the thread pools used by the EPM and/or the Message Agent.
9Process thread count exceeds the specified threshold.Reduce the size of the thread pools used by the EPM and/or the Message Agent

Was this article helpful?