Flux de travail WF

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

Analyse des flux de travail

Knowledge Base article:

Résumé

En général, les échecs des flux de travail Windows se produisent pour l’une des raisons suivantes. L’affichage des alertes actives indique une alerte associée à cet échec. Les informations de l’alerte indiquent la cause spécifique de l’échec. Si cette analyse est dans un état rouge depuis l’importation du pack d’administration et qu’aucune alerte ne s’affiche dans l’affichage des alertes, les échecs de flux de travail existaient peut-être déjà dans le système avant l’importation du pack d’administration. Pour mettre cette analyse dans l’état vert, ignorez tous les anciens échecs des flux de travail à partir de la console Service Manager.

Causes

1. Échec du flux de travail WF : Les échecs de flux de travail indiquent que le flux de travail a rencontré un problème qui a entraîné son arrêt. L’échec d’un flux de travail suppose généralement un problème connu. Les flux de travail peuvent échouer pour plusieurs raisons, par exemple, le compte du flux de travail ne dispose pas du niveau d’autorisation nécessaire pour effectuer une activité, les ressources ne sont pas disponibles, il existe des problèmes de connectivité, etc.

2. Échec de l’envoi du flux de travail WF : Ce flux de travail n’a pas été envoyé pour être exécuté par l’hôte de l’analyse.

3. Exception du flux de travail WF : L’état du flux de travail apparaît comme « Correct », mais a rencontré une exception. Vérifiez que le résultat attendu a été obtenu, sinon, l’action qui a été effectuée pour démarrer le flux de travail doit peut-être être recommencée. Une erreur logicielle dans le code du flux de travail entraîne l’échec de ce dernier et lève une exception.

4. Expiration du flux de travail WF : Si un flux de travail ne termine pas une activité dans les 25 minutes, il expire. Le flux de travail est peut-être bloqué dans la phase de démarrage ou de planification, et apparaît sous l’onglet « Nécessite une attention » qui se trouve dans la console Service Manager, dans l’affichage de l’administration/des flux de travail/des états pour ce type de flux de travail concerné. Il existe plusieurs causes d’expiration des flux de travail, par exemple, s’ils s’exécutent quand le service est redémarré, si la file d’attente est longue ou si le retour des API est trop long.

Résolutions

En cas d’échec du flux de travail WF,

En cas d’échec de l’envoi du flux de travail WF,

En cas d’exception du flux de travail WF,

En cas d’expiration du flux de travail WF,

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" 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()) &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>