Nejstarší zpráva

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

Toto monitorování kontroluje stáří nejstarší zprávy ve frontě.

Knowledge Base article:

Souhrn

Toto monitorování kontroluje stáří nejstarší zprávy ve frontě.

Konfigurace

Toto monitorování je standardně zakázané. Pokud má fungovat, je třeba ho povolit prostřednictvím přepsání.

Chování tohoto monitorování lze upravit a zadat jinou hodnotu nastavení následujících parametrů.

IntervalSeconds

Počet sekund mezi spuštěním testu. Pokud je nastavena příliš nízká hodnota, může způsobovat nadměrné zatížení služby MSMQ. Pokud je příliš vysoká, nemusí se stav chyby případně zjistit ve vhodném časovém úseku. Výchozí nastavení je 120 sekund (při kterém se test spouští každé 2 minuty).

WarningThresholdValue

Stáří nejstarší zprávy v sekundách, při kterém by měl být generován stav upozornění.

ErrorThresholdValue

Stáří nejstarší zprávy v sekundách, při kterém by měl být generován chybový stav.

Příčiny

Za normálního provozu existuje předpoklad, že aplikace budou zprávy přijímat včas tak, jak jsou přidávány do fronty. Pokud určitá zpráva zůstane ve frontě delší dobu, je to známkou potíží s přijímající aplikací nebo se schopností aplikace číst z dané fronty.

Řešení

Zkontrolujte stav připojení fronty nebo aplikací, které z ní mohou přijímat zprávy.

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
Stáří nejstarší zprávy ve frontě překročilo stanovenou prahovou hodnotu.
Podrobnosti zjistíte v kontextu výstrahy.
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>