Analyse des flux de travail
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.
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.
En cas d’échec du flux de travail WF,
Les flux de travail WF ayant échoué sont affichés dans la console Service Manager sous l’onglet « Nécessite une attention » de l’affichage de l’administration/des flux de travail/des états pour le type de flux de travail concerné.
Ouvrez le journal en appuyant sur « Afficher le journal » pour obtenir des informations sur les raisons de l’échec du flux de travail.
Essayez de corriger le problème et appuyez sur « Réessayer » pour réexécuter le flux de travail.
Si le problème persiste, essayez de redémarrer le service de contrôle d’intégrité sur le serveur d’administration de Service Manager.
Si le problème est résolu manuellement, appuyez sur le bouton « Ignorer » pour supprimer les flux de travail de l’affichage « Nécessite une attention ».
En cas d’échec de l’envoi du flux de travail WF,
Redémarrez le service de contrôle d’intégrité sur le serveur d’administration de Service Manager.
En cas d’exception du flux de travail WF,
Effectuez les étapes manuelles pour recréer les conditions qui ont démarré le flux de travail, si ce dernier s’est terminé avec l’état « Correct », mais qu’il n’a pas effectué la tâche attendue.
Le flux de travail est présent dans l’affichage des états des flux de travail dans le volet Administration de la console Service Manager.
En cas d’expiration du flux de travail WF,
Les flux de travail WF ayant expiré sont affichés dans la console Service Manager sous l’onglet « Nécessite une attention » de l’affichage de l’administration/des flux de travail/des états pour le type de flux de travail concerné. Essayez de réexécuter les flux de travail ou appuyez sur Ignorer si le problème a été résolu manuellement.
Si les flux de travail sont bloqués dans un état inactif, redémarrez le service de contrôle d’intégrité sur le serveur d’administration pour essayer de redémarrer une nouvelle fois tous les flux de travail de la file d’attente.
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>