Monitor de Fluxo de Trabalho
Em geral, falhas de Fluxo de Trabalho do Windows podem ocorrer por um dos motivos a seguir. A exibição de alertas ativos terá um alerta associado a essa falha. O conhecimento do alerta indicará a causa específica da falha. Se o monitor ficou vermelho desde que o pacote de gerenciamento foi importado e nenhum alerta é mostrado na exibição de alertas, é possível que tenham ocorrido falhas nos fluxos de trabalho existentes no sistema antes da importação do pacote de gerenciamento. Para deixar o monitor verde, ignore todas as falhas de fluxo de trabalho antigas no console do Service Manager.
1. Falha no Fluxo de Trabalho de WF: Falhas de fluxo de trabalho indicam que o fluxo de trabalho encontrou um problema que fez com que ele parasse de funcionar. Um fluxo de trabalho com falha geralmente indica que o problema é conhecido. Fluxos de trabalho podem falhar por infinitas razões, tais como a conta do fluxo de trabalho não ter o nível necessário de permissões para concluir uma atividade, recursos não disponíveis, problemas de conectividade, etc...
2. Falha no Envio de Fluxo de Trabalho de WF: Esse fluxo de trabalho não foi enviado para ser executado pelo host de monitoramento.
3. Exceção de Fluxo de Trabalho de WF: O status do fluxo de trabalho é mostrado como "Êxito", porém encontrou uma exceção. Confirme se o resultado esperado foi obtido, caso contrário, a ação que foi realizada para iniciar o fluxo de trabalho pode precisar ser repetida. Erro de software no código do fluxo de trabalho causará essa falha e gerará uma exceção.
4. Tempo Limite do Fluxo de Trabalho de WF: Se um fluxo de trabalho não concluir uma atividade dentro de 25 minutos, o tempo limite será atingido. O fluxo de trabalho pode estar preso na fase iniciada ou agendada, e aparecerá na guia "Requer Atenção", que pode ser encontrada no console do Service Manager, na exibição de administração/fluxos de trabalho/status para o tipo específico do fluxo de trabalho em questão. Há diversas causas que fazem com que o tempo limite de um fluxo de trabalho seja atingido, tais como estar em execução quando um serviço é reiniciado, grandes filas ou APIs que levam muito tempo para retornar.
Se Houver Falha no Fluxo de Trabalho de WF,
Fluxos de trabalho WF com falha serão mostrados no console do Service Manager na guia "Requer Atenção" da exibição de Administração/fluxos de trabalho/status para o tipo específico do fluxo de trabalho em questão.
Abra o log pressionando "Exibir log" para obter informações sobre por que o fluxo de trabalho falhou.
Tente corrigir o problema e pressione "Tentar novamente" para que o fluxo de trabalho seja executado novamente.
Se o problema persistir, tente reiniciar o Serviço de Integridade no servidor de gerenciamento do Service Manager.
Se o problema for resolvido manualmente, pressione o botão "Ignorar" para remover os fluxos de trabalho da exibição "Requer Atenção".
Se Houver Falha no Envio de Fluxo de Trabalho de WF,
Reinicie o Serviço de Integridade no servidor de gerenciamento do Service Manager.
Se Houver Exceção de Fluxo de Trabalho de WF,
Execute as etapas manuais para recriar as condições que deram início ao fluxo de trabalho se este tiver sido concluído com "Êxito", mas não realizou a tarefa desejada.
O fluxo de trabalho localiza-se na Exibição de Status de Fluxo de Trabalho no Painel de Administração do console do Service Manager.
Se o Tempo Limite do Fluxo de Trabalho de WF For Atingido,
Fluxos de trabalho de WF que atingiram o tempo limite serão mostrados no console do Service Manager na guia "Requer Atenção" da exibição de Administração/fluxos de trabalho/status para o tipo específico do fluxo de trabalho em questão. Repita os fluxos de trabalho para tentar executá-los novamente ou pressione Ignorar se o problema tiver sido corrigido manualmente.
Se os fluxos de trabalho estiverem presos em um estado em que não estejam em execução, reinicie o Serviço de Integridade no servidor de gerenciamento para experimentar e reiniciar todos os fluxos de trabalho na fila novamente.
Target | Microsoft.SystemCenter.ServiceManager.SmManagementServer |
Parent Monitor | Microsoft.ServiceManager.Workflows.AvailabilityHealthRollup |
Category | AvailabilityHealth |
Enabled | True |
Alert Generate | False |
Alert Auto Resolve | True |
Monitor Type | Microsoft.SystemCenter.ServiceManager.Workflows.OLEDB.Monitoring.DBProbeMonitorType |
Remotable | True |
Accessibility | Public |
RunAs | Default |
<UnitMonitor ID="Microsoft.SystemCenter.ServiceManager.WWFWorkflows.Monitor" Accessibility="Public" Enabled="true" Target="SM!Microsoft.SystemCenter.ServiceManager.SmManagementServer" ParentMonitorID="Microsoft.ServiceManager.Workflows.AvailabilityHealthRollup" Remotable="true" Priority="Normal" TypeID="Microsoft.SystemCenter.ServiceManager.Workflows.OLEDB.Monitoring.DBProbeMonitorType" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<OperationalStates>
<OperationalState ID="ComponentUnhealthy" MonitorTypeStateID="State1" HealthState="Warning"/>
<OperationalState ID="ComponentHealthy" MonitorTypeStateID="State2" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>60</IntervalSeconds>
<SyncTime/>
<ConnectionString>Provider=SQLOLEDB;Server=$Target/Property[Type='SM!Microsoft.SystemCenter.ServiceManager.SmManagementServer']/SmDbHostName$;Database=$Target/Property[Type='SM!Microsoft.SystemCenter.ServiceManager.SmManagementServer']/SMDbName$;Integrated Security=SSPI</ConnectionString>
<Query>
SELECT CONVERT(nvarchar,COUNT(*))
FROM dbo.WindowsWorkflowTaskJobStatus
LEFT OUTER JOIN dbo.JobStatusView
ON dbo.[JobStatusView].[BatchId] = dbo.[WindowsWorkflowTaskJobStatus].[BatchId]
LEFT OUTER JOIN dbo.MySubscriptions
ON dbo.[WindowsWorkflowTaskJobStatus].[RuleId] = dbo.[MySubscriptions].[RuleEntityId]
WHERE ((
dbo.[WindowsWorkflowTaskJobStatus].[Processed] IS NULL
AND
( (dbo.[WindowsWorkflowTaskJobStatus].[ErrorMessage] IS NOT NULL)
OR (dbo.[JobStatusView].Status = 3)
OR ((dbo.[JobStatusView].Status = 0 OR dbo.[JobStatusView].Status = 1)
AND
(DATEDIFF(MINUTE, dbo.[JobStatusView].TimeScheduled, GETUTCDATE()) >= 25)
)
OR( dbo.[JobStatusView].Status = 2)
OR( dbo.[JobStatusView].Status is NULL)
)
))
</Query>
<State1Filter>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Columns/Column[1]</XPathQuery>
</ValueExpression>
<Operator>NotEqual</Operator>
<ValueExpression>
<Value Type="String">0</Value>
</ValueExpression>
</SimpleExpression>
</State1Filter>
<State2Filter>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Columns/Column[1]</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">0</Value>
</ValueExpression>
</SimpleExpression>
</State2Filter>
</Configuration>
</UnitMonitor>