Workflow-Monitor
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.
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.
WF-Workflowfehler:
Fehlerhafte WF-Workflows werden in der Service Manager-Konsole auf der Registerkarte "Eingriff erforderlich" der Ansicht "Verwaltung/Workflows/Status" für den jeweiligen Workflowtyp angezeigt.
Öffnen Sie das Protokoll, indem Sie "Protokoll anzeigen" auswählen, um Informationen zum Workflowfehler zu erhalten.
Versuchen Sie das Problem zu korrigieren, und wählen Sie "Wiederholen", um den Workflow erneut auszuführen.
Wenn das Problem weiterhin besteht, starten Sie den Integritätsdienst auf dem Service Manager-Verwaltungsserver neu.
Wenn das Problem manuell behoben werden kann, wählen Sie die Schaltfläche "Ignorieren", um die Workflows aus der Ansicht "Eingriff erforderlich" zu entfernen.
Fehler bei der WF-Workflowübermittlung:
Starten Sie den Integritätsdienst auf dem Service Manager-Verwaltungsserver neu.
WF-Workflowausnahme:
Führen Sie die manuellen Schritte zum Reproduzieren der Bedingungen aus, durch die der Workflow gestartet wurde, wenn der Workflow als "Erfolgreich" abgeschlossen, der beabsichtigte Task jedoch nicht durchgeführt wurde.
Der Workflow wird in der Ansicht "Workflowstatus" im Verwaltungsbereich der Service Manager-Konsole aufgeführt.
WF-Workflowtimeout:
WF-Workflows mit Timeout werden in der Service Manager-Konsole auf der Registerkarte "Eingriff erforderlich" der Ansicht "Verwaltung/Workflows/Status" für den jeweiligen Workflowtyp angezeigt. Versuchen Sie die Workflows erneut auszuführen, oder wählen Sie "Ignorieren", wenn das Problem manuell behoben wurde.
Wenn die Workflows in einem Zustand verbleiben, in dem sie nicht ausgeführt werden, starten Sie den Integritätsdienst auf dem Verwaltungsserver neu, um alle Workflows in der Warteschlange neu zu starten.
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>