Превышена квота хранилища для очереди MSMQ. В этой очереди нет места для новых сообщений.
Достигнута квота очереди службы очереди сообщений.
Уменьшите количество ожидающих сообщений
Чтобы разрешить эту проблему, выполните следующие действия:
Обработайте существующие сообщения в очереди, чтобы уменьшить количество ожидающих сообщений ниже порога квоты очереди. Убедитесь, что сообщения обрабатываются с большей скоростью, чем они становятся в очередь. Для этого может потребоваться дополнительное оборудование или изменения архитектуры решения.
Можно также увеличить определенную квоту очереди. Дополнительные сведения о квотах очереди сообщений см. в статье 899612 базы знаний Майкрософт ( http://go.microsoft.com/fwlink/?LinkID=107359).
Чтобы избежать этой проблемы в будущем, отправляющее приложение должно запрашивать отрицательное подтверждение от компьютера, которому оно отправляет сообщение. Если отрицательное подтверждение возвращается к отправляющему приложению и указывает, что достигнута квота очереди или компьютера места назначения, отправляющее приложение может либо остановить передачу сообщений, либо разгрузить сообщения на другое место назначения. Отрицательные и положительные подтверждения запрашиваются отправителем программным способом. Дополнительные сведения см. в разделе "Надежный обмен сообщениями с помощью MSMQ и .NET" ( http://go.microsoft.com/fwlink/?LinkID=95381).
Для отслеживания различных точек данных, связанных с входящими и исходящими сообщениями в очереди сообщений, можно использовать программу командной строки "PerfMon".
Для выполнения этой процедуры нужно быть членом группы "Администраторы" либо обладать соответствующими делегированными полномочиями.
Чтобы использовать программу "perfmon" для отслеживания данных, выполните следующие действия.
Откройте командную строку. Чтобы открыть командную строку, нажмите кнопку "Пуск". В поле поиска введите "cmd" и нажмите клавишу ВВОД.
В командной строке введите Perfmon и нажмите клавишу ВВОД.
В дереве консоли в разделе "Средства наблюдения" щелкните "Системный монитор".
В области сведений нажмите на значок зеленого плюса (+), чтобы добавить монитор.
На вкладке "Добавление" в разделе "Счетчики" нажмите на значок плюса (+) рядом со службой MSMQ.
Выберите необходимые счетчики.
Нажмите "Добавить", а затем "ОК".
Дополнительные сведения см. в событии с ИД 2182 ( http://technet.microsoft.com/ru-ru/library/dd337533(WS.10).aspx)
Target | Microsoft.MSMQ.10.0.Servers | ||
Category | AvailabilityHealth | ||
Enabled | False | ||
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.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>