This error indicates that at least one of the BizTalk server processes in the affected computer is being throttled for significant periods on account of high thread counts.
Monitoring of the "BizTalk:Message Agent\High thread count" counter over a series of samples has indicated that the threshold defined has been consistently exceeded over that period of time.
This monitor watches the value of the "BizTalk:Message Agent\High thread count" counter for all host instance. That counter has a value of "1" or "0" based on whether the thresholds have been meet/exceeded or not (respectively). If the average value over 30 samples exceeds the preset threshold, which is set to 0.6 by default, then the state will change from healthy to critical. This monitor is configured by default to generate an alert when the state is changed to critical.
The process has created too many threads and the total number of threads in the process has exceeded the limit
Verify that the threadpool configurations for the various threadpools (e.g. the Transport Manager Threadpool, the Message Agent Threadpool, the managed threadpool, unmanaged NT threadpool etc) are as intended and are in sync with the thread threshold parameter.
Verify that the no custom component is creating threads in an uncontrolled manner.
Use debugging/process monitoring tools to identify the threads in the system and analyze what these threads are doing.
Host Throttling Performance Counters: http://technet.microsoft.com/en-us/library/aa578302.aspx
How to Modify the Default Host Throttling Settings: http://technet.microsoft.com/en-us/library/aa559628.aspx
Throttling Design Recommendation: http://technet.microsoft.com/en-us/library/aa547859.aspx
Target | Microsoft.BizTalk.Server.2010.BizTalkApplicationService | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Instance Name | BizTalk:Message Agent | ||
Counter Name | High thread count | ||
Frequency | 60 | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | System.Performance.AverageThreshold | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.BizTalk.Server.2010.MessageAgentHighThreadCount.PerformanceMonitor" Accessibility="Public" Enabled="true" Target="BTSLib!Microsoft.BizTalk.Server.2010.BizTalkApplicationService" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Perf!System.Performance.AverageThreshold" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.BizTalk.Server.2010.MessageAgentHighThreadCount.PerformanceMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Value$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="OverThreshold" MonitorTypeStateID="OverThreshold" HealthState="Error"/>
<OperationalState ID="UnderThreshold" MonitorTypeStateID="UnderThreshold" HealthState="Success"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="BTSLib!Microsoft.BizTalk.Server.2010.ServerRole"]/ComputerName$</ComputerName>
<CounterName>High thread count</CounterName>
<ObjectName>BizTalk:Message Agent</ObjectName>
<InstanceName>$Target/Property[Type="BTSLib!Microsoft.BizTalk.Server.2010.BizTalkApplicationService"]/BizTalkHostName$</InstanceName>
<AllInstances>false</AllInstances>
<Frequency>60</Frequency>
<Threshold>0.6</Threshold>
<NumSamples>30</NumSamples>
</Configuration>
</UnitMonitor>