Message Queuing will not be able to accept messages temporarily because system commit is high.

MSMQ.Rule.Alert.Event2251 (Rule)

Message Queuing will not be able to accept messages temporarily because system commit is high. No manual intervention is required at this stage. Once memory utilization has normalized, Message Queuing will automatically resume accepting messages.

Knowledge Base article:

Summary

Message Queuing will not be able to accept messages temporarily because system commit is high. No manual intervention is required at this stage. Once memory utilization has normalized, Message Queuing will automatically resume accepting messages.

Causes

Message Queuing will not be able to accept messages temporarily because system commit is high.

Resolutions

Monitor low system resources

Common system resources are almost fully consumed. Message Queuing will not operate properly until system resources are freed up. For more information about managing Message Queuing system resources, see Resource Management in MSMQ Applications ( http://go.microsoft.com/fwlink/?LinkId=107361).

We recommend that you monitor the number of messages on your computer and processs these messages. If this issue is persistent, you may have to rearchitect your solution.

To perform this procedure, you must have membership in Administrators, or you must have been delegated the appropriate authority.

To monitor Message Queuing with Performance Monitor:

Additional

For more information, see Event ID 2251 ( http://technet.microsoft.com/en-us/library/dd337531(WS.10).aspx)

Element properties:

TargetMSMQ.Server
CategoryAvailabilityHealth
EnabledFalse
Event_ID2251
Event Source$Target/Property[Type="MSMQ.Server"]/ServiceName$
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
Message Queuing will not be able to accept messages temporarily because system commit is high.
Event Description: {0}
Event LogApplication

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.Windows.EventProvider Default
Alert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="MSMQ.Rule.Alert.Event2251" Enabled="false" Target="MSMQ.Server" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>AvailabilityHealth</Category>
<DataSources>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">2251</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Property[Type="MSMQ.Server"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="Alert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertName/>
<AlertDescription/>
<AlertOwner/>
<AlertMessageId>$MPElement[Name="MSMQ.Rule.Alert.Event2251.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
<Custom1/>
<Custom2/>
<Custom3/>
<Custom4/>
<Custom5/>
<Custom6/>
<Custom7/>
<Custom8/>
<Custom9/>
<Custom10/>
</WriteAction>
</WriteActions>
</Rule>