Quota Percentage

Microsoft.MSMQ.6.2.Monitor.Queue.QuotaPercentage (UnitMonitor)

Monitors the Quota Percentage usage of a Queue.

Knowledge Base article:

Summary

This monitor checks the percentage of the allowed queue space currently used if a quota is defined for the queue.

Configuration

The behavior of this monitor may be modified with an override setting the following parameters.

IntervalSeconds

The number of seconds between execution of the test. If this value is set too low, it could result in excessive overhead against the MSMQ service. If it is set to high, an error condition may not be detected within a suitable time. Default setting is 120 seconds (execute the test every 2 minutes).

WarningThresholdValue

Percentage journal usage that will trigger a Warning state. Must be lower than the ErrorThresholdValue Default value is 80.

ErrorThresholdValue

Percentage journal usage that will trigger an Error state. Must be higher than the WarningThresholdValue Default value is 90.

LogDetail

If True, the script will log a Windows event on the agent computer for every test it performs. Turn detailed logging on if you are experiencing problems that you are unable to identify. The log entries will provide the exact nslookup commands being executed and their output. The events may be viewed from the Script Detail Events view.

Causes

The size of a queue should remain relatively static as messages are delivered to and receved from the queue. If a queue reaches its quota, one or more receiving applications may be down or are unable to receive messages, thus removing them from the queue.

Resolutions

Check the connection status of the queue and applications that may be receiving messages from it.

If applications using the queue have increased in usage or in the size of their messages, the quota may need to be increased.

Element properties:

TargetMicrosoft.MSMQ.6.2.Queues
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.MSMQ.6.2.MonitorType.QueueStatistic.ThreeState
RemotableTrue
AccessibilityPublic
Alert Message
The percentage of the quota in use has exceeded the threshold.
Please see the alert context for details.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.MSMQ.6.2.Monitor.Queue.QuotaPercentage" Accessibility="Public" Enabled="false" Target="Microsoft.MSMQ.6.2.Queues" ParentMonitorID="SystemHealth!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.MSMQ.6.2.MonitorType.QueueStatistic.ThreeState" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.MSMQ.6.2.Monitor.Queue.QuotaPercentage.AlertMessageResourceID">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
</AlertSettings>
<OperationalStates>
<OperationalState ID="ExceededErrorThreshold" MonitorTypeStateID="ErrorState" HealthState="Error"/>
<OperationalState ID="ExceededWarningThreshold" MonitorTypeStateID="WarningState" HealthState="Warning"/>
<OperationalState ID="WithinThreshold" MonitorTypeStateID="SuccessState" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>300</IntervalSeconds>
<ComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</ComputerName>
<QueuePath>$Target/Property[Type="Microsoft.MSMQ.6.2.Queue"]/PathName$</QueuePath>
<CounterName>Quota Pctg</CounterName>
<LogDetail>false</LogDetail>
<WarningThresholdValue>80</WarningThresholdValue>
<ErrorThresholdValue>90</ErrorThresholdValue>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>