Fluxos de Trabalho WF

Microsoft.SystemCenter.ServiceManager.WWFWorkflows.Monitor (UnitMonitor)

Monitor de Fluxo de Trabalho

Knowledge Base article:

Resumo

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.

Causas

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.

Resoluções

Se falhar o Fluxo de Trabalho WF,

Se falhar a submissão do Fluxo de Trabalho WF,

Se o Fluxo de Trabalho WF apresentar uma exceção,

Se o Fluxo de Trabalho WF exceder o tempo limite,

Element properties:

TargetMicrosoft.SystemCenter.ServiceManager.SmManagementServer
Parent MonitorMicrosoft.ServiceManager.Workflows.AvailabilityHealthRollup
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateFalse
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SystemCenter.ServiceManager.Workflows.OLEDB.Monitoring.DBProbeMonitorType
RemotableTrue
AccessibilityPublic
RunAsDefault

Source Code:

<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()) &gt;= 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>