WF-Workflows

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

Workflow-Monitor

Knowledge Base article:

Zusammenfassung

In der Regel treten Windows-Workflowfehler aufgrund einer der folgenden Ursachen auf. In der Ansicht für aktive Warnungen ist diesem Fehler eine Warnung zugeordnet. In den Warnungsinformationen ist die spezifische Ursache für den Fehler angegeben. Wenn dieser Monitor seit dem Importieren des Management Packs rot angezeigt wird und in der Warnungsansicht keine Warnungen aufgeführt werden, lagen möglicherweise schon vor dem Importieren des Management Packs Workflowfehler im System vor. Um diesen Monitor grün anzuzeigen, ignorieren Sie alle alten Workflowfehler in der Service Manager-Konsole.

Ursachen

1. WF-Workflowfehler: Workflowfehler weisen darauf hin, dass beim Workflow ein Problem aufgetreten ist, das eine weitere Funktion des Workflows verhindert. Ein fehlerhafter Workflow deutet normalerweise auf ein bekanntes Problem hin. Workflows können aus einer Vielzahl von Gründen fehlerhaft sein. Beispielsweise besitzt das Workflowkonto nicht die erforderliche Berechtigungsebene zum Ausführen einer Aktivität, es stehen keine Ressourcen zur Verfügung, es liegen Konnektivitätsprobleme vor usw.

2. Fehler bei der WF-Workflowübermittlung: Dieser Workflow wurde nicht übermittelt, um vom überwachenden Host ausgeführt zu werden.

3. WF-Workflowausnahme: Der Workflowstatus wird als "Erfolgreich" angezeigt, es ist jedoch eine Ausnahme aufgetreten. Sie sollten sicherstellen, dass das gewünschte Ergebnis erzielt wurde. Ist dies nicht der Fall, muss die Aktion, die zum Starten des Workflows durchgeführt wurde, möglicherweise wiederholt werden. Ein Softwarefehler im Workflowcode verursacht einen Fehler und löst eine Ausnahme aus.

4.WF-Workflowtimeout: Wenn ein Workflow eine Aktivität nicht innerhalb von 25 Minuten abschließt, tritt ein Timeout auf. Der Workflow ist in der Start- oder Planungsphase stecken geblieben und wird auf der Registerkarte "Eingriff erforderlich" aufgeführt, die in der Service Manager-Konsole in der Verwaltungs-/Workflows-/Statusansicht für den jeweiligen Workflowtyp zu finden ist. Es gibt eine Vielzahl von Gründen für Workflowtimeouts, beispielsweise die Ausführung beim Neustart eines Diensts, eine lange Warteschlange oder APIs, die für die Rückgabe eine lange Zeit benötigen.

Lösungen

WF-Workflowfehler:

Fehler bei der WF-Workflowübermittlung:

WF-Workflowausnahme:

WF-Workflowtimeout:

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>