队列监视器:发送测试消息

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

此监视器通过向队列发送测试消息来测试服务器。 通过向管理队列发送响应消息来验证是否收到消息,收到消息后将删除测试消息和响应消息。

Knowledge Base article:

摘要

此监视器通过向队列发送测试消息来测试服务器。

通过向管理队列发送响应消息来验证是否收到消息,收到消息后将删除测试消息和响应消息。

配置

可以通过设置以下参数的替代方法来修改此监视器的行为。

IntervalSeconds

执行测试的间隔秒数。 如果此值设置得过低,可能导致 MSMQ 服务超支。 如果此值设置得过高,可能无法适时检测到错误状态。 默认设置为 600 秒(每 10 分钟发送一次测试消息)。

TargetQueue

将消息发送到的目标队列的路径名。

AdminQueue

将响应消息发送到的管理队列的路径名。

CreateQueues

如果设置为 true,将自动创建目标队列和管理队列(如果尚不存在)。

MessageBody

包含在测试消息正文中的文本。

AppSpecific

应用程序特定的长整型,用于唯一标识 Operations Manager 消息。

使用队列访问用户配置文件中定义的凭据进行连接。 此帐户必须有权访问正在进行测试的队列。 此帐户是在操作控制台的管理部分中配置的。

对于事务性队列,管理队列将从自己的队列切换到测试默认队列:X.

原因

检查警报中与此监视器相关的信息,以及状态更改事件中返回的信息。 这包括以失败结束的过程中的步骤以及确切错误消息。

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.TestMessage
RemotableTrue
AccessibilityPublic
Alert Message
队列:发送测试消息警报
有关详细信息,请参阅警报上下文。
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.MSMQ.6.3.Monitor.Queue.TestMessage" 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.TestMessage" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.MSMQ.6.3.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.6.3.Queue"]/PathName$</TargetQueue>
<AdminQueue>$Target/Property[Type="Microsoft.MSMQ.6.3.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>