The state of the in-process message count over time.
Monitoring of the "BizTalk:Message Agent\High in-process message 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 in-process message 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 Orchestration Engine or the Outbound Transport Manager / Adapter have accepted too many messages concurrently and those messages are not being processed in a timely manner. Hence the runtime engine is not accepting new messages for processing.
If the runtime engine is using CPU and all other resources as usual, then even if the system is throttling- it is not necessarily an indication of a bad condition. This could simply mean that the system is processing the workload in the normal fashion and throttling has been applied to prevent overloading the system.
Verify if the application (i.e. outbound transport and/or the orchestration engine) is functioning properly and there is progress of work. If the progress of work is unaffected by the throttling, then this is a benign warning.
Check for any mal-functioning of the outbound transport.
Verify the Orchestration Engine performance counters and ensure that schedules are executing as expected
If the system has a high in-process message count and appears to be idle, then it should be investigated why the system is not processing the messages. Temporarily incrementing the in-process message threshold may help identifying the core problem.
Refer to the external knowledge provided
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.2013R2.BizTalkApplicationService | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Instance Name | BizTalk:Message Agent | ||
Counter Name | High in-process message 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.2013R2.MessageAgentHighInprocessMessageCount.PerformanceMonitor" Accessibility="Public" Enabled="true" Target="BTSLib!Microsoft.BizTalk.Server.2013R2.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.2013R2.MessageAgentHighInprocessMessageCount.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.2013R2.ServerRole"]/ComputerName$</ComputerName>
<CounterName>High in-process message count</CounterName>
<ObjectName>BizTalk:Message Agent</ObjectName>
<InstanceName>$Target/Property[Type="BTSLib!Microsoft.BizTalk.Server.2013R2.BizTalkApplicationService"]/BizTalkHostName$</InstanceName>
<AllInstances>false</AllInstances>
<Frequency>60</Frequency>
<Threshold>0.6</Threshold>
<NumSamples>30</NumSamples>
</Configuration>
</UnitMonitor>