Oudste bericht

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

Deze monitor controleert de leeftijd van het oudste bericht in een wachtrij.

Knowledge Base article:

Samenvatting

Deze monitor controleert de leeftijd van het oudste bericht in een wachtrij.

Configuratie

Deze monitor is standaard uitgeschakeld. Om deze te laten werken moet Overschrijven worden ingeschakeld.

Het gedrag van deze monitor kan worden gedeactiveerd met behulp van de volgende parameters.

IntervalSeconds

Het aantal seconden tussen de uitvoeringen van de test. Als deze waarde te laag is ingesteld kan dit leiden tot overmatige overhead bij de MSMQ-service. Als deze optie te hoog is ingesteld, kan een fout niet binnen een redelijke termijn worden gedetecteerd. Standaardinstelling is 120 seconden (voer de test om de 2 minuten uit).

Waarschuwingsdrempelwaarde

Leeftijd van het oudste bericht in seconden waarbij een waarschuwing gegenereerd moet worden.

Foutdrempelwaarde

Leeftijd van het oudste bericht in seconden waarbij een fout gegenereerd moet worden.

Oorzaken

Tijdens de normale werking is de verwachting dat de toepassingen tijdig berichten ontvangen als ze worden toegevoegd aan de wachtrij. Als een bericht voor langere tijd in de wachtrij blijft staan, kan dit wijzen op een probleem met de ontvangende toepassing of de leesvaardigheid van de wachtrij bij de toepassing.

Oplossingen

Controleer de verbindingsstatus van de wachtrij en de toepassingen die berichten van de wachtrij kunnen ontvangen.

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
De levensduur van het oudste bericht in de wachtrij heeft de drempel overschreden.
Bekijk de waarschuwingscontext voor meer informatie.
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>