Quota de armazenamento excedida para a fila MSMQ. Não é possível armazenar mais mensagens na fila.
Foi atingida uma quota de fila de Colocação de Mensagens em Fila.
Reduzir o número de mensagens pendentes
Para resolver este problema:
Processe as mensagens existentes na fila para reduzir o número de mensagens pendentes abaixo do limiar de quota da fila. Confirme se as mensagens estão a ser processadas a uma velocidade superior àquela com que são colocadas na fila. Isto poderá exigir hardware adicional ou alterações da arquitetura de solução.
Poderá também aumentar a quota de fila específica. Para obter mais informações sobre as quotas de fila da Colocação de Mensagens em Fila, veja o artigo 899612 da Base de Dados de Conhecimento Microsoft ( http://go.microsoft.com/fwlink/?LinkID=107359).
Para evitar este problema no futuro, a aplicação emissora deverá solicitar confirmações negativas (NACK) do computador para o qual envia as mensagens. Se for devolvida à aplicação emissora uma NACK que indique que a quota da fila ou do computador de destino foi atingida, a aplicação emissora poderá deixar de enviar mensagens ou descarregar as mensagens para outro destino. As Nacks e Acks são solicitadas programaticamente pelo emissor. Para obter mais informações, veja Reliable Messaging with MSMQ and .NET (Mensagens Fiáveis com MSMQ e .NET) ( http://go.microsoft.com/fwlink/?LinkID=95381).
Poderá utilizar a ferramenta da linha de comandos perfmon para monitorizar diversos pontos de dados relacionados com as mensagens a receber e a enviar na Colocação de Mensagens em Fila.
Para efetuar este procedimento, tem de pertencer ao grupo Administradores ou ter-lhe sido delegada a autoridade correta.
Para utilizar o perfmon para monitorizar dados:
Abra uma linha de comandos. Para abrir uma linha de comandos, clique em Iniciar. Na caixa Pesquisa, escreva cmd e prima ENTER.
Na linha de comandos, escreva Perfmon e prima ENTER.
Na árvore da consola, em Ferramentas de Monitorização, clique em Monitor de Desempenho.
No painel de detalhes, clique no sinal de adição (+) verde para adicionar um monitor.
No separador Adicionar contadores, em Contadores, clique no sinal de adição (+) junto de Serviço MSMQ.
Selecione os contadores adequados de que necessita.
Clique em Adicionar e clique em OK.
Para obter mais informações, veja Event ID 2182 (ID de Evento 2182) ( http://technet.microsoft.com/en-us/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>