Długość kolejki zadań

Microsoft.SystemCenter.ServiceManagementAutomation.2012R2.Monitor.MessageQueueLength (UnitMonitor)

Sprawdza liczbę zadań w kolejce procesu roboczego elementu Runbook.

Knowledge Base article:

Podsumowanie

Określa, czy wartość długości kolejki zadań przekroczyła określony próg. Ta kolejka jest przechowywana w bazie danych programu Service Management Automation, dlatego monitor należy skonfigurować tak, aby miał dostęp do bazy danych. Więcej informacji można znaleźć w części Konfiguracja.

Przyczyny

Jeśli długość kolejki zadań osiągnie limit krytyczny, procesy robocze nie będą mogły odpowiednio obsługiwać obciążenia zadaniami. Szybkość przesyłania zadań jest większa niż szybkość ich przetwarzania.

Rozwiązanie

Zwiększ liczbę ról procesu roboczego.

Konfiguracja

Aby ten monitor działał prawidłowo, musi on mieć uprawnienia do odczytu bazy danych programu Service Management Automation. Utwórz konto Uruchom jako z uprawnieniami do odczytu bazy danych i dodaj je do profilu Uruchom jako o nazwie Konto bazy danych programu Microsoft Service Management Automation.

Można skonfigurować następujące opcje tego monitora:

Opcja

Definicja

Domyślne

Alert na podstawie stanu

Stan kondycji monitora generującego alert.

Monitor wskazuje krytyczny stan kondycji

Priorytet alertu

Priorytet alertu generowanego dla tego monitora.

Średni

Ważność alertu

Priorytet alertu generowanego dla tego monitora.

Krytyczny

Automatyczne rozwiązywanie alertu

Określa, czy alert powinien zostać rozwiązany automatycznie po powrocie monitora do stanu prawidłowego.

Prawda

Włączone

Określa, czy monitor powinien zostać uruchomiony.

Prawda

Próg błędu

Liczba komunikatów w kolejce, która generuje krytyczny stan kondycji.

20

Generuje alert

Określa, czy monitor powinien generować alert po przejściu w stan ostrzeżenia lub w stan krytyczny.

Prawda

Interwał

Liczba sekund między okresami uruchomienia monitora.

300

Próg ostrzeżenia

Liczba komunikatów w kolejce, która generuje ostrzegawczy stan kondycji.

10

Element properties:

TargetMicrosoft.SystemCenter.ServiceManagementAutomation.2012R2.Server.Worker
Parent MonitorSystem.Health.PerformanceState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SystemCenter.ServiceManagementAutomation.2012R2.MonitorType.MessageQueueLength
RemotableTrue
AccessibilityPublic
Alert Message
Długość kolejki zadań przekroczyła próg.
Długość kolejki zadań przekroczyła próg. Ostatnia zmierzona wartość: {0}.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.ServiceManagementAutomation.2012R2.Monitor.MessageQueueLength" Accessibility="Public" Enabled="true" Target="Microsoft.SystemCenter.ServiceManagementAutomation.2012R2.Server.Worker" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SystemCenter.ServiceManagementAutomation.2012R2.MonitorType.MessageQueueLength" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SystemCenter.ServiceManagementAutomation.2012R2.Monitor.MessageQueueLength.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Value$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UnderThreshold" MonitorTypeStateID="UnderThreshold" HealthState="Success"/>
<OperationalState ID="OverWarningThreshold" MonitorTypeStateID="OverWarningThreshold" HealthState="Warning"/>
<OperationalState ID="OverErrorThreshold" MonitorTypeStateID="OverErrorThreshold" HealthState="Error"/>
</OperationalStates>
<Configuration>
<Interval>300</Interval>
<DatabaseServer>$Target/Property[Type="SMA!Microsoft.SystemCenter.ServiceManagementAutomation.Server"]/DatabaseServerName$</DatabaseServer>
<DatabaseInstance>$Target/Property[Type="SMA!Microsoft.SystemCenter.ServiceManagementAutomation.Server"]/DatabaseServerInstance$</DatabaseInstance>
<DatabaseName>$Target/Property[Type="SMA!Microsoft.SystemCenter.ServiceManagementAutomation.Server"]/DatabaseName$</DatabaseName>
<WarningThreshold>10</WarningThreshold>
<ErrorThreshold>20</ErrorThreshold>
</Configuration>
</UnitMonitor>