WF-arbetsflöden

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

Arbetsflödes-övervakare

Knowledge Base article:

Sammanfattning

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.

Orsaker

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.

Lösningar

Om ett WF-arbetsflöde misslyckades

Om inlämningen av ett WF-arbetsflöde misslyckades

I händelse av ett WF-arbetsflödesundantag

Om tidsgränsen för ett WF-arbetsflöde uppnåddes

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>