Monitor de Fluxo de Trabalho
Normalmente, as falhas de Fluxo de Trabalho do Windows podem acontecer devido a uma das seguintes razões. A vista de alertas ativos terá um alerta associado a esta falha. O reconhecimento de alerta irá indicar a causa específica da falha. Se este monitor esteve vermelho desde a importação do pacote de gestão e não foram apresentados alertas nas vista de alertas, é possível que existam falhas de fluxos de trabalho no sistema anteriores à importação do pacote de gestão. Para que este monitor fique verde, ignore todas as antigas falhas de fluxo de trabalho na consola do Service Manager.
1. Falha do Fluxo de Trabalho WF : As falhas do fluxo de trabalho indicam que o fluxo de trabalho encontrou um problema que causou a paragem de trabalho. Um fluxo de trabalho falhado significa geralmente que o problema é conhecido. Os fluxos de trabalho podem falhar por vários motivos, como a conta de fluxo de trabalho não ter os níveis de permissão necessários para concluir uma atividade, os recursos não estarem disponíveis, problemas de conetividade, etc…
2. Falha ao submeter Fluxo de Trabalho WF : Este fluxo de trabalho não foi submetido para execução pelo anfitrião de monitorização.
3. Exceção do Fluxo de Trabalho WF : O estado de fluxo de trabalho é apresentado como "Com Êxito", mas teve uma exceção. Deverá ser confirmado que o resultado esperado foi obtido; caso contrário, poderá ser necessário repetir a ação executada para iniciar o fluxo de trabalho. Um erro de software no Código de Fluxo de Trabalho irá fazer com que este falhe e acione uma exceção.
4. Tempo excedido para o Fluxo de Trabalho WF : Se um fluxo de trabalho não concluir uma atividade no prazo de 25 minutos, o tempo limite será excedido. O fluxo de trabalho pode estar bloqueado na fase iniciada ou na fase planeada, e aparecerá no separador “Atenção Necessária” que se encontra na consola do Service Manager, na vista administração/fluxos de trabalho/estado para esse tipo de fluxo de trabalho. Existem diversas causas para atingir o limite de tempo do fluxo de trabalho, tais como executar quando um serviço é reiniciado, uma longa fila de espera ou APIs que demoram muito tempo a serem devolvidas.
Se falhar o Fluxo de Trabalho WF,
Os fluxos de trabalho WF falhados serão apresentados na consola do Service Manager no separador "Atenção Necessária" da vista administração/fluxos de trabalho/estado para esse tipo de fluxo de trabalho.
Abra o registo premindo a tecla "Ver registo" para obter informações sobre o motivo da falha do fluxo de trabalho.
Tente corrigir o problema e prima "Repetir" para voltar a executar o fluxo de trabalho.
Se o problema persistir, tente reiniciar o Serviço do Estado de Funcionamento no servidor de gestão do Service Manager.
Se o problema for resolvido manualmente, prima o botão "Ignorar" para remover os fluxos de trabalho da vista "Atenção Necessária".
Se falhar a submissão do Fluxo de Trabalho WF,
Reinicie o Serviço do Estado de Funcionamento no servidor de gestão do Service Manager.
Se o Fluxo de Trabalho WF apresentar uma exceção,
Execute os passos manuais para recriar as condições que iniciaram o fluxo de trabalho se o fluxo de trabalho foi concluído como "Com Êxito" mas não concluiu a tarefa pretendida.
O fluxo de trabalho será apresentado na Vista de Estado de Fluxo de Trabalho, no Painel de Administração da consola do Service Manager.
Se o Fluxo de Trabalho WF exceder o tempo limite,
Os fluxos de trabalho WF que atingiram o tempo limite serão apresentados na consola do Service Manager no separador "Atenção Necessária" da vista administração/fluxos de trabalho/estado para esse tipo de fluxo de trabalho. Repita os fluxos de trabalho para tentar executá-los novamente ou prima ignorar se o problema foi corrigido manualmente.
Se os fluxos de trabalho estão bloqueados num estado em que não funcionam, reinice o Serviço do Estado de Funcionamento no servidor de gestão para tentar reiniciar todos os fluxos de trabalho em fila de espera.
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" TypeID="Microsoft.SystemCenter.ServiceManager.Workflows.OLEDB.Monitoring.DBProbeMonitorType" Accessibility="Public" Target="SM!Microsoft.SystemCenter.ServiceManager.SmManagementServer" ParentMonitorID="Microsoft.ServiceManager.Workflows.AvailabilityHealthRollup">
<Category>AvailabilityHealth</Category>
<OperationalStates>
<OperationalState MonitorTypeStateID="State1" HealthState="Warning" ID="ComponentUnhealthy"/>
<OperationalState MonitorTypeStateID="State2" HealthState="Success" ID="ComponentHealthy"/>
</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>