Analyse du flux de travail d'infrastructure de liaison
Généralement, des échecs des flux de travail de nettoyage peuvent se produire à cause d'une des raisons suivantes. L'affichage des alertes actives aura une alerte associée à cet échec. La connaissance de l'alerte indique la cause spécifique de l'échec.
1. Échec de flux de travail de nettoyage : Les échecs de flux de travail indiquent que le flux de travail a rencontré un problème qui a entraîné son arrêt. Un flux de travail ayant échoué implique généralement que le problème est connu.
Les flux de travail peuvent échouer pour plusieurs raisons, telles qu'un problème de connectivité avec la base de données, un problème de droits de base de données ou un éventuel arrêt du serveur de base de données.
2. Délai d'expiration de flux de travail de nettoyage : Si un flux de travail ne termine pas une activité en 25 minutes, il expirera. Il existe une exception pour le flux de travail de journal d'abonnement de nettoyage qui expire à l'issue de 15 minutes.
Il existe plusieurs causes d'expiration du flux de travail (exécution quand un service est redémarré, une longue file d'attente ou des API dont le renvoi prend du temps).
En cas d'échec de flux de travail de nettoyage ;
Pour plus d'informations sur l'échec ainsi que des conseils sur la solution, consultez le journal des événements.
En cas d'expiration du délai de flux de travail de nettoyage ;
Cela peut poser un problème avec la base de données. Pour plus d'informations sur l'échec ainsi que des conseils sur la solution, consultez le journal des événements.
Target | Microsoft.SystemCenter.ServiceManager.SmManagementServer | ||
Parent Monitor | Microsoft.ServiceManager.Workflows.AvailabilityHealthRollup | ||
Category | StateCollection | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | High | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SystemCenter.ServiceManager.Workflows.OLEDB.Monitoring.DBProbeMonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SystemCenter.ServiceManager.GroomingWorkflows.Monitor" TypeID="Microsoft.SystemCenter.ServiceManager.Workflows.OLEDB.Monitoring.DBProbeMonitorType" Accessibility="Public" Target="SM!Microsoft.SystemCenter.ServiceManager.SmManagementServer" ParentMonitorID="Microsoft.ServiceManager.Workflows.AvailabilityHealthRollup">
<Category>StateCollection</Category>
<AlertSettings AlertMessage="Microsoft.ServiceManager.GroomingWorkflows.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>High</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
</AlertSettings>
<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 COUNT(*)
FROM dbo.InternalJobHistory Job,
(SELECT max(timestarted) as LastTime, command
FROM dbo.InternalJobHistory
GROUP BY command) GroupJob
WHERE job.Command = GroupJob.Command
AND job.TimeStarted= GroupJob.LastTime
AND (
(job.StatusCode = '0' AND (DATEDIFF(MINUTE, job.TimeStarted , GETUTCDATE()) >= 25)) OR
(job.StatusCode = '0' AND (DATEDIFF(MINUTE, job.TimeStarted , GETUTCDATE()) >= 15) AND job.Command like '%Subscription%') OR
job.StatusCode ='2'
)
</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>