Queue Monitor: Send Test Message

Microsoft.MSMQ.2008.Monitor.Queue.TestMessage (UnitMonitor)

This monitor tests a server by sending a test message to a queue. Receipt of the message is validated through a response message to an admin queue at which point both the test message and response message are removed.

Knowledge Base article:

Summary

This monitor tests a server by sending a test message to a queue.

Receipt of the message is validated through a response message to an admin queue at which point both the test message and response message are removed.

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 600 seconds (send a test message every 10 minutes).

TargetQueue

Path name of the target queue to send the message to.

AdminQueue

Path name of the admin queue to send the response message to.

CreateQueues

If set to true, the target queue and admin queue will automatically be created if they do not already exist.

MessageBody

Text to include in the body of the test message.

AppSpecific

Application specific long integer used to uniquely identify Operations Manager messages.

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.

For transactional Queues the Admin Queue will switch from the own queue to the test default queue: X.

Causes

Check the information in the alert related to this monitor and the returned in the State Change Event. This will include the step in the process that ended in a failure and the exact error message.

Element properties:

TargetMicrosoft.MSMQ.2008.Queues
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.MSMQ.2008.MonitorType.TestMessage
RemotableTrue
AccessibilityPublic
Alert Message
Queue: Send Test Message Alert
Please see the alert context for details.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.MSMQ.2008.Monitor.Queue.TestMessage" Accessibility="Public" Enabled="false" Target="Microsoft.MSMQ.2008.Queues" ParentMonitorID="SystemHealth!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.MSMQ.2008.MonitorType.TestMessage" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.MSMQ.2008.Monitor.Queue.TestMessage.AlertMessageResourceID">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
</AlertSettings>
<OperationalStates>
<OperationalState ID="MessageFailed" MonitorTypeStateID="MessageFailed" HealthState="Error"/>
<OperationalState ID="MessageReceived" MonitorTypeStateID="MessageReceived" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>600</IntervalSeconds>
<ComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</ComputerName>
<TargetQueue>$Target/Property[Type="Microsoft.MSMQ.2008.Queue"]/PathName$</TargetQueue>
<AdminQueue>$Target/Property[Type="Microsoft.MSMQ.2008.Queue"]/PathName$</AdminQueue>
<CreateQueues>true</CreateQueues>
<AppSpecific>123456789</AppSpecific>
<MaxWaitTime>10</MaxWaitTime>
<MessageBody>Test message sent by Operations Manager 2007.</MessageBody>
<RemoveMessage>true</RemoveMessage>
<CleanupQueue>true</CleanupQueue>
<CleanupAdminQueue>true</CleanupAdminQueue>
<LogDetail>false</LogDetail>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>