Превышена квота хранилища для очереди MSMQ. В этой очереди нет места для новых сообщений.

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

Knowledge Base article:

Сводка

Превышена квота хранилища для очереди MSMQ. В этой очереди нет места для новых сообщений.

Причины

Достигнута квота очереди службы очереди сообщений.

Решения

Уменьшите количество ожидающих сообщений

Чтобы разрешить эту проблему, выполните следующие действия:

Чтобы избежать этой проблемы в будущем, отправляющее приложение должно запрашивать отрицательное подтверждение от компьютера, которому оно отправляет сообщение. Если отрицательное подтверждение возвращается к отправляющему приложению и указывает, что достигнута квота очереди или компьютера места назначения, отправляющее приложение может либо остановить передачу сообщений, либо разгрузить сообщения на другое место назначения. Отрицательные и положительные подтверждения запрашиваются отправителем программным способом. Дополнительные сведения см. в разделе "Надежный обмен сообщениями с помощью MSMQ и .NET" ( http://go.microsoft.com/fwlink/?LinkID=95381).

Для отслеживания различных точек данных, связанных с входящими и исходящими сообщениями в очереди сообщений, можно использовать программу командной строки "PerfMon".

Для выполнения этой процедуры нужно быть членом группы "Администраторы" либо обладать соответствующими делегированными полномочиями.

Чтобы использовать программу "perfmon" для отслеживания данных, выполните следующие действия.

Дополнительно

Дополнительные сведения см. в событии с ИД 2182 ( http://technet.microsoft.com/ru-ru/library/dd337533(WS.10).aspx)

Element properties:

TargetMicrosoft.MSMQ.10.0.Servers
CategoryAvailabilityHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
Превышена квота хранилища для очереди MSMQ. В этой очереди нет места для новых сообщений.
Описание события: {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>