Journal Percentage

Microsoft.MSMQ.6.3.Monitor.Queue.JournalPercentage (UnitMonitor)

Monitors the Queue Journal Quota Percentage usage.

Knowledge Base article:

Summary

This monitor checks the percentage of the allowed journal space currently used if a journal 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.

AllowFailures

If True, monitor will report success if any single test is successful. If False, an error state will be reported if any single test fails.

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

If the journal for a queue is enabled, messages are copied to it as they are received from the queue. The journal will continue to grow until is purged or otherwise trimmed.

Resolutions

The queue can be purged or trimmed using the Tasks associated with the queue in the Operations Console.

There is a Resolution assocated with this monitor that will automatically trim or purge the queue when it reaches an Error state.

Element properties:

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

Source Code:

<UnitMonitor ID="Microsoft.MSMQ.6.3.Monitor.Queue.JournalPercentage" Accessibility="Public" Enabled="false" Target="Microsoft.MSMQ.6.3.Queues" ParentMonitorID="SystemHealth!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.MSMQ.6.3.MonitorType.QueueStatistic.ThreeState" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.MSMQ.6.3.Monitor.Queue.JournalPercentage.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.3.Queue"]/PathName$</QueuePath>
<CounterName>Journal Quota Pctg</CounterName>
<LogDetail>false</LogDetail>
<WarningThresholdValue>80</WarningThresholdValue>
<ErrorThresholdValue>90</ErrorThresholdValue>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>