Arbetsflödes-övervakare
Vanligtvis inträffar Windows-arbetsflödesfel p.g.a. en av följande orsaker. Vyn över aktiva aviseringar har en avisering som är associerad med det här felet. Den specifika orsaken till felet anges i aviseringsinformationen. Om den här övervakaren har varit röd sedan hanteringspaketet importerades och det inte finns några aviseringar i aviseringsvyn är det möjligt att det fanns arbetsflödesfel i systemet innan hanteringspaketet importerades. Du får övervakaren att bli grön genom att ignorera alla gamla arbetsflödesfel från Service Manager-konsolen.
1. WF-arbetsflöde misslyckades: Arbetsflödesfel indikerar att arbetsflödet har stött på problem som lett till att arbetsflödet har slutat fungera. Ett misslyckat arbetsflöde innebär vanligtvis att problemet är känt. Arbetsflöden kan misslyckas p.g.a. en mängd olika orsaker, t.ex. att arbetsflödeskontot inte har den behörighetsnivå som behövs för att slutföra en aktivitet, att resurser inte är tillgängliga, anslutningsproblem m.m.
2. Inlämning av WF-arbetsflöde misslyckades: Det här arbetsflödet skickades inte in för körning av övervakningsvärden.
3. WF-arbetsflödesundantag: Arbetsflödets status visar att arbetsflödet lyckades men med ett undantag. Bekräfta att förväntat resultat erhölls. Om inte kan du behöva upprepa den åtgärd som utfördes för start av arbetsflödet. Programfel i arbetsflödeskoden leder till att arbetsflödet misslyckas och att det kastar ett undantag.
4. Tidsgränsen för WF-arbetsflöde uppnåddes: Tidsgränsen uppnås om ett arbetsflöde inte avslutar en aktivitet inom 25 minuter. Arbetsflödet kan ha fastnat i antingen den startade eller schemalagda fasen och visas på fliken Kräver åtgärd i vyn för administration/arbetsflöden/status för den specifika typen av arbetsflöde i Service Manager-konsolen. Det finns en mängd olika orsaker för varför tidsgränsen för ett arbetsflöde uppnås, t.ex. körning när en tjänst startas om, en lång kö eller API:er som tar lång tid att returnera.
Om ett WF-arbetsflöde misslyckades
Misslyckade WF-arbetsflöden visas på fliken Kräver åtgärd i vyn för administration/arbetsflöden/status för den specifika typen av arbetsflöde i Service Manager-konsolen.
Öppna loggen genom att trycka på Visa logg för att få information om varför arbetsflödet misslyckades.
Försök att åtgärda problemet och tryck på Försök igen för att köra arbetsflödet på nytt.
Om problemet kvarstår försöker du med att starta om hälsotjänsten på Service Manager-hanteringsservern.
Om problemet åtgärdas manuellt trycker på knappen Ignorera för att ta bort arbetsflödena från vyn Kräver åtgärd.
Om inlämningen av ett WF-arbetsflöde misslyckades
Starta om hälsotjänsten på Service Manager-hanteringsservern.
I händelse av ett WF-arbetsflödesundantag
Utför de manuella stegen för att återskapa förhållandena som startade arbetsflödet om arbetsflödet slutfördes som lyckat men utan att slutföra den avsedda uppgiften.
Arbetsflödet kommer att finnas i vyn över arbetsflödesstatusar i Service Manager-konsolens administrationsfönster
Om tidsgränsen för ett WF-arbetsflöde uppnåddes
WF-arbetsflöden vars tidsgräns har uppnåtts visas på fliken Kräver åtgärd” i vyn för administration/arbetsflöden/status för den specifika typen av arbetsflöde i Service Manager-konsolen. Tryck på Försök igen för att köra arbetsflödena igen eller tryck på Ignorera om problemet åtgärdades manuellt.
Om arbetsflödena har fastnat i ett tillstånd där de inte körs startar du om hälsotjänsten på hanteringsservern i ett försök att starta om alla arbetsflöden i kön.
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>