Comprimento da Fila de Tarefas

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

Verifica o número de tarefas na fila do Runbook Worker.

Knowledge Base article:

Resumo

Determina se o comprimento da Fila de Tarefas excedeu o limiar especificado. Esta fila é armazenada na base de dados do Service Management Automation, pelo que o monitor terá de estar configurado para ter acesso à base de dados. Para obter informações, consulte a secção Configuração.

Causas

Se o comprimento da fila de tarefas tiver atingido um limite crítico, os Workers não conseguirão processar a carga de tarefas de forma adequada. A taxa de submissão de tarefas é superior à taxa de processamento de tarefas.

Resolução

Aumente o número de funções de trabalho.

Configuração

Para que este monitor funcione corretamente, tem de ter permissão para ler a base de dados do Service Management Automation. Crie uma Conta Run As que tenha permissões de leitura na base de dados e adicione-a ao Perfil Run As denominado Conta da Base de Dados do Microsoft Service Management Automation.

As seguintes opções podem ser configuradas neste monitor:

Opção

Definição

Predefinição

Alerta do Estado

Estado de funcionamento do monitor que gera um alerta.

O monitor encontra-se num estado de funcionamento crítico

Prioridade dos Alertas

Prioridade do alerta gerado para este monitor.

Média

Gravidade do Alerta

Prioridade do alerta gerado para este monitor.

Crítica

Alerta de Resolução Automática

Especifica se o alerta deverá ser automaticamente resolvido quando o monitor regressar a um bom estado de funcionamento.

Verdadeiro

Ativado

Especifica se o monitor deverá ser executado.

Verdadeiro

ErrorThreshold

Número de mensagens na fila que gera um estado de funcionamento crítico.

20

Gera Alerta

Especifica se o monitor deverá gerar um alerta ao passar para um estado crítico ou de aviso.

Verdadeiro

Intervalo

Número de segundos entre execuções do monitor.

300

WarningThreshold

Número de mensagens na fila que gera um estado de funcionamento de aviso.

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
O comprimento da fila de tarefas excedeu o limiar.
O comprimento da Fila de Tarefas excedeu o limiar. O valor medido mais recente é de {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>