Connection

Microsoft.MSMQ.10.0.Monitor.Queue.ConnectionStatus (UnitMonitor)

Monitors the connection status of a Queue.

Knowledge Base article:

Summary

This monitor checks the connection to a queue by attempting to peek into it.

This test is performed by the local server, so there still may be network conditions causing other clients to be unable to connect to it. Network conditions are included in a Client Perspective monitor which may be enabled and configured separately to this monitor.

Peeking into an inactive queue will automatically activate that queue. In order to reduce overhead on the server, the test is not performed against inactive queues.

Configuration

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

IntervalSeconds

The number of seconds between executions 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).

The connection is made under the credentials defined in the Queue Access User Profile. This account must have access to the queues being tested. The account is configured in the Administration section of the Operations Console.

Causes

If a connection to a queue fails because of an Access Denied error, it is most likely due to the inability of the Queue Access User Profile to the perform a connection to the queue. Check the credentials of the Queue Access User Profile in the Administration section of the Operations Console.

Element properties:

TargetMicrosoft.MSMQ.10.0.Queues
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.MSMQ.10.0.MonitorType.QueueConnection
RemotableTrue
AccessibilityPublic
Alert Message
The connection test to the queue failed.
Please see the alert context for details.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.MSMQ.10.0.Monitor.Queue.ConnectionStatus" Accessibility="Public" Enabled="true" Target="Microsoft.MSMQ.10.0.Queues" ParentMonitorID="SystemHealth!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.MSMQ.10.0.MonitorType.QueueConnection" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.MSMQ.10.0.Monitor.Queue.ConnectionStatus.AlertMessageResourceID">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UnsuccessfulConnection" MonitorTypeStateID="UnsuccessfulConnection" HealthState="Error"/>
<OperationalState ID="SuccessfulConnection" MonitorTypeStateID="SuccessfulConnection" 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.10.0.Queue"]/PathName$</QueuePath>
<LogDetail>false</LogDetail>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>