Storage quota exceeded for MSMQ queue. No more messages can be stored in the queue.
A Message Queuing queue quota has been reached.
Reduce the outstanding message count
To resolve this issue:
Process existing messages in the queue to reduce the outstanding message count below the queue quota threshold. Confirm that messages are being processed at a higher rate than they are being queued. This may require additional hardware or changes to solution architecture.
You may also increase the specific queue quota. For more information about Message Queuing queue quotas, see article 899612 in the Microsoft Knowledge Base ( http://go.microsoft.com/fwlink/?LinkID=107359).
To avoid this problem in the future, the sending application should request negative acknowledgements (NACK) from the computer to which it is sending messages. If a NACK is returned to the sending application and it indicates that the quota for the destination queue or computer has been reached, the sending application can either stop sending messages or offload the messages to another destination. Nacks and Acks are requested programmatically by the sender. For more information, see Reliable Messaging with MSMQ and .NET ( http://go.microsoft.com/fwlink/?LinkID=95381).
You can use the perfmon command-line tool to monitor various data points related to the incoming and outgoing messages in Message Queuing.
To perform this procedure, you must have membership in Administrators, or you must have been delegated the appropriate authority.
To use perfmon to monitor data:
Open a command prompt. To open a command prompt, click Start. In the search box, type cmd, and then press ENTER.
At the command prompt, type Perfmon, and then press ENTER.
In the console tree, under Monitoring Tools, click Performance Monitor.
In the details pane, click the green plus sign (+) to add a monitor.
On the Add counters tab, under Counters, click the plus sign (+) next to MSMQ Service.
Select the appropriate counters that you need.
Click Add, and then click OK.
For more information, see Event ID 2182 ( http://technet.microsoft.com/en-us/library/dd337533(WS.10).aspx)
Target | Microsoft.MSMQ.6.2.Servers | ||
Category | AvailabilityHealth | ||
Enabled | False | ||
Event_ID | 2182 | ||
Event Source | $Target/Property[Type="Microsoft.MSMQ.6.2.ServerRole"]/ServiceName$ | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | Microsoft.Windows.EventProvider | Default |
Alert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.MSMQ.6.2.Rule.Alert.Event2182" Enabled="false" Target="Microsoft.MSMQ.6.2.Servers" 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">2182</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Property[Type="Microsoft.MSMQ.6.2.ServerRole"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="Alert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertName/>
<AlertDescription/>
<AlertOwner/>
<AlertMessageId>$MPElement[Name="Microsoft.MSMQ.6.2.Rule.Alert.Event2182.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>