Lagringskvot överskridits för MSMQ-kö. Inga fler meddelanden kan lagras i kön.

Microsoft.MSMQ.10.0.Rule.Alert.Event2182 (Rule)

Knowledge Base article:

Sammanfattning

Lagringskvot överskridits för MSMQ-kö. Inga fler meddelanden kan lagras i kön.

Orsaker

En kvot för Message Queuing har nåtts.

Lösningar

Minska antalet utestående meddelanden

Så här löser du problemet:

För att undvika det här problemet i framtiden bör det sändande programmet begära negativa kvittenser (NACK) från den dator som den skickar meddelanden till. Om en NACK återsänds till denna sändande programmet och den indikerar att kvoten för målkön eller datorn har uppnåtts, kan den sändande programmet antingen sluta skicka meddelanden eller avlasta meddelanden till en annan destination. NACK- och ACK-meddelanden begärs automatiskt av avsändaren. Mer information finns i Reliable Messaging med MSMQ och .NET ( http://go.microsoft.com/fwlink/?LinkID=95381).

Du kan använda kommandoradsverktyget perfmon för att övervaka olika datapunkter för inkommande och utgående meddelanden i Message Queuing.

För att göra det här måste du vara medlem i grupen Administratörer eller ha rätt behörighet.

För att använda resursövervakaren av data:

Mer information

Mer information finns under händelse-id 2182 ( http://technet.microsoft.com/en-us/library/dd337533(WS.10).aspx)

Element properties:

TargetMicrosoft.MSMQ.10.0.Servers
CategoryAvailabilityHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
Lagringskvot överskridits för MSMQ-kö. Inga fler meddelanden kan lagras i kön.
Händelsebeskrivning: {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="Microsoft.MSMQ.10.0.Rule.Alert.Event2182" Enabled="false" Target="Microsoft.MSMQ.10.0.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">EventSourceName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Property[Type="Microsoft.MSMQ.10.0.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.10.0.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>