• Print
  • Share

Understanding the BizTalk Throttling Mechanism

  • Updated on 01 May 2018
  • 5 minutes to read
  • Contributors

This section provides an insight in 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 scenario are very common in an integration environment, where an unusual load comes into the system within a short period of time. BizTalk server manages these kind of scenario by a mechanism called Host Throttling. BizTalk server 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 publish message throttling states, trigger conditions and what actions BizTalk server takes to mitigate the risk. This data is important to understand the throttling analyser user interface Understand user interaction with Publish and Delivery Throttling Graph.

State Trigger for Throttling Condition Throttling Actions Taken
2 Message 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.
4 Process memory exceeds the specified threshold.This can occur if the batch to be published has steep memory requirements or too many threads are processing messages Reduce the size of the thread pool used by EPM.Block the EPM threads to prevent processing of new messages 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.
5 System memory exceeds the specified threshold. Reduce the size of the thread pool used by EPM.Block the EPM threads to prevent processing of new messages 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.
6 Host message queue size, the spool table size or the tracking table size exceed 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 processing of new messages batches.The publishing thread is also subject to a progressive delay before the messages are persisted to the database.
8 Database 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 processing of new messages batches.The publishing thread is also subject to a progressive delay before the messages are persisted to the database.
9 Process thread count exceeds the specified threshold. educe the size of the thread pool used by EPM.Block the EPM threads to prevent processing of new messages 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 publish message throttling states, trigger conditions and what actions BizTalk server takes to mitigate the risk. This data is important to understand the throttling analyser user interface Understand user interaction with Publish and Delivery Throttling Graph.

State Trigger for Throttling Condition Throttling Actions Taken
1 Message delivery incoming rate for the host instance exceeds the Message delivery outgoing rate * the specified Rate overdrive factor (percent) valueThis 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.
3 Number of in-process messages delivered to a service class exceeds 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.
4 Process 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).
5 System 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.
9 Process thread count exceeds the specified threshold. Reduce the size of the thread pools used by the EPM and/or the Message Agent