The BizTalk Server throttling mechanism applies inbound throttling to the orchestration engine (XLANG) and to inbound adapters.
Inbound throttling can cause inbound messages to backlog at the source. If inbound throttling is applied to a receive adapter then the receive adapter may stop receiving messages until the throttling condition is mitigated. The following table describes factors involved in inbound throttling, as well as appropriate mitigation strategies.
|
Message Publishing
Throttling State
|
Trigger for Throttling Condition
|
Throttling Actions Taken
|
Mitigation Strategy
|
Performance Object
|
Performance Counter
|
| 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. | Use performance counters to determine the message publishing incoming and message publishing outgoing rate. Consider an appropriate overdrive factor for your environment. Verify that the values supplied for the Sampling window duration (milliseconds) and Minimum number of samples parameters are appropriate for your scenario. For more information about these parameters see "How to Modify the Default Host Throttling Settings" in BizTalk Server 2006 R2 Help at http://go.microsoft.com/fwlink/?LinkID=106731. | BizTalk:MessageAgent | Message publishing incoming rate Message publishing outgoing rate |
| 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. | Consider reducing the amount of load by reducing the EPM thread pool, and/or the size of adapter batches. If the process is not consuming excessive memory, consider increasing the Process memory usage threshold for the host. For more information about changing the Process memory usage threshold see "How to Modify the Default Host Throttling Settings" in BizTalk Server 2006 R2 Help at http://go.microsoft.com/fwlink/?LinkID=106731. | BizTalk:MessageAgent | High process memory Process memory usage (MB) Process memory usage threshold (MB) |
| 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. | Ensure that the SQL Server Agent jobs used by BizTalk Server to maintain the BizTalk Server databases are running and are not failing. Terminate and resume suspended instances as needed. Increase the default value for the Message count in database threshold taking into consideration the space requirements of the SQL server that houses the BizTalk Server databases. If your database is sized appropriately to handle additional message backlog, consider increasing the ThrottlingSpoolMultiplier and ThrottlingTrackingDataMultiplier registry values to allow additional backlog in the Spool and Tracking tables. For more information about changing the values see "How to Modify the Default Host Throttling Settings" in BizTalk Server 2006 R2 Help at http://go.microsoft.com/fwlink/?LinkID=106731. | BizTalk:MessageAgent BizTalk:Message Box:General Counters BizTalk:Message Box:Host Counters | MessageAgent /Database size Message Box:General Counters /Spool size Message Box:General Counters /Tracking data size Message Box:Host Counters/Host queue – length Message Box:Host Counters/Host queue - suspended msgs – length |
| 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. | Consider increasing the Database connections per CPU threshold for the host. For more information about changing this value, see "How to Modify the Default Host Throttling Settings" in BizTalk Server 2006 R2 Help at http://go.microsoft.com/fwlink/?LinkID=106731. | BizTalk:MessageAgent | Database session |
| 9 | Process thread count 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. The publishing thread is also subject to a progressive delay before the messages are persisted to the database. | Consider adjusting the different thread pool sizes to ensure that the system does not create a large number of threads. For more information about modifying the thread pool sizes see "How to Modify the Default Host Throttling Settings" in BizTalk Server 2006 R2 Help at http://go.microsoft.com/fwlink/?LinkID=106731. | BizTalk:MessageAgent | Thread count Thread count threshold |
| 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. | Consider reducing load by reducing the default size of the EPM thread pool, and/or the size of adapter batches. If the process is not consuming excessive memory, consider increasing the Physical memory usage threshold for the host. For more information about changing the Physical memory usage threshold, see "How to Modify the Default Host Throttling Settings" in BizTalk Server 2006 R2 Help at http://go.microsoft.com/fwlink/?LinkID=106731. | BizTalk:MessageAgent | Physical memory usage (MB) Physical memory usage threshold (MB) |