Se excedió la cuota de almacenamiento para la cola MSMQ. No se pueden almacenar más mensajes en la cola.
Se ha alcanzado una cuota de cola de Message Queue.
Reduzca el recuento de mensaje salientes
Para solucionar este problema:
Procese los mensajes existentes en la cola para reducir el recuento de mensajes salientes por debajo del umbral de cuota de la cola. Confirme que los mensajes se estén procesando a una velocidad mayor a la velocidad a la que se envían a la cola. Esto puede requerir un hardware adicional o cambios en la arquitectura de solución.
También puede aumentar la cuota específica de la cola. Para obtener más información sobre cuotas de colas de Message Queuing, consulte el artículo 899612 de Microsoft Knowledge Base ( http://go.microsoft.com/fwlink/?LinkID=107359).
Pera evitar que este problema recurra en el futuro, la aplicación que realiza el envío debe solicitar un aviso negativo (NACK) del equipo al que le envía mensajes. Si el NACK se devuelve a la aplicación de envío e indica que se ha alcanzado la cuota para el equipo o cola de destino, la aplicación de envío puede dejar de enviar mensajes o traspasas los mensajes a otro destino. El remitente exige avisos Nacks y Acks de manera programática. Para obtener más información, consulte Envío de mensajes seguro con MSMQ y NET http://go.microsoft.com/fwlink/?LinkID=95381).
También puede utilizar la herramienta de línea de comando perfmon para supervisar varios puntos de datos relacionados con los mensajes entrantes y salientes en Message Queue.
Para llevar a cabo este procedimiento, debe ser miembro del grupo Administradores o tener delegada la autoridad adecuada.
Para utilizar perfmon para supervisar datos, realice lo siguiente:
Abra una ventana del símbolo del sistema. Para abrir un símbolo del sistema, haga clic en Inicio. En el cuadro de búsqueda, escriba cmd y presione ENTRAR.
En el símbolo del sistema escriba Perfmon y, a continuación, presione ENTER.
En el árbol de consola, en Herramientas de supervisión, haga clic en Monitor de rendimiento.
En el panel de detalles, haga clic en el signo más (+) de color verde para agregar un monitor.
En la pestaña Agregar contadores, en Contadores, haga clic en el signo más (+) que se encuentra al lado del servicio de MSMQ.
Seleccione los contadores apropiados que necesite.
Haga clic en Agregar y, a continuación, en Aceptar.
Para obtener más información, consulte el identificador del evento 2182 ( http://technet.microsoft.com/es-es/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>