Äldsta meddelandet

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

Denna monitor kontrollerar åldern på det äldsta meddelandet i en kö.

Knowledge Base article:

Sammanfattning

Denna monitor kontrollerar åldern på det äldsta meddelandet i en kö.

Konfiguration

Som grundinställning är den här övervakaren inaktiverad. För att den ska fungera, måste den aktiveras med en åsidosättning.

Beteendet hos denna monitor kan modifieras av en åsidosättning med följande parametrar.

Intervall i sekunder

Antalet sekunder mellan verkställande av testet. Om värdet sätts för lågt, kan det resultera i överdriven overhead mot MSMQ-tjänsten. Om den är satt för hög, kan ett feltillstånd inte detekteras inom en lämplig tid. Standardinställningen är 120 sekunder (exekvera testet varje 2 minuter).

VarningsTröskelVärde

Det äldsta meddelandet i sekunder där ett varningstillstånd ska genereras.

FelTröskelVärde

Ett varningstillstånd ska genereras med det äldsta meddelandet i sekunder

Orsaker

Under normal drift, förväntas det att applikationen kommer att ta emot meddelanden i en tidsmässig ordning när de läggs till i kön. Om ett meddelande kvarstår i kön en längre tid, kan det tyda på ett problem med den mottagande programmet eller programmets förmåga att avläsa från kön.

Lösningar

Kontrollera anslutningsstatus för kön och programmet som kan ta emot meddelanden från den.

Element properties:

TargetMicrosoft.MSMQ.10.0.Queues
Parent MonitorSystem.Health.PerformanceState
CategoryAvailabilityHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.MSMQ.10.0.MonitorType.QueueStatistic.ThreeState
RemotableTrue
AccessibilityPublic
Alert Message
Åldern på det äldsta meddelandet i kön har överskridit tröskelvärdet.
Mer information finns i aviseringsmeddelandet.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.MSMQ.10.0.Monitor.Queue.OldestMessage" Accessibility="Public" Enabled="false" Target="Microsoft.MSMQ.10.0.Queues" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.MSMQ.10.0.MonitorType.QueueStatistic.ThreeState" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.MSMQ.10.0.Monitor.Queue.OldestMessage.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.10.0.Queue"]/PathName$</QueuePath>
<CounterName>Oldest Message Age</CounterName>
<LogDetail>false</LogDetail>
<WarningThresholdValue>0</WarningThresholdValue>
<ErrorThresholdValue>0</ErrorThresholdValue>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>