Regel "WF-Workflowtimeout"

Microsoft.SystemCenter.ServiceManager.WWF.Monitoring.RuleRunning (Rule)

Überwacht Timeouts bei WF-Workflows.

Knowledge Base article:

Zusammenfassung

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.

Ursachen

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

Element properties:

TargetMicrosoft.SystemCenter.ServiceManager.SmManagementServer
CategoryCustom
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
WF-Workflowtimeout
Die von "{2}" übermittelte Regel "{0}" wurde länger als 25 Minuten ausgeführt und beendet.{3}

Member Modules:

ID Module Type TypeId RunAs 
DBProbe DataSource Microsoft.SystemCenter.ServiceManager.Monitoring.OledbProbe.WWFWorkflows2 Default
Filter ConditionDetection System.ExpressionFilter Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SystemCenter.ServiceManager.WWF.Monitoring.RuleRunning" Enabled="true" Target="SM!Microsoft.SystemCenter.ServiceManager.SmManagementServer" ConfirmDelivery="false" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>Custom</Category>
<DataSources>
<DataSource ID="DBProbe" TypeID="Microsoft.SystemCenter.ServiceManager.Monitoring.OledbProbe.WWFWorkflows2">
<IntervalSeconds>1800</IntervalSeconds>
<SyncTime/>
<ConnectionString/>
<Query/>
<GetValue>true</GetValue>
<IncludeOriginalItem>true</IncludeOriginalItem>
<OneRowPerItem>true</OneRowPerItem>
</DataSource>
</DataSources>
<ConditionDetection ID="Filter" TypeID="System!System.ExpressionFilter">
<Expression>
<Or>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Columns/Column[2]</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">0</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Columns/Column[2]</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">1</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</Or>
</Expression>
</ConditionDetection>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SystemCenter.ServiceManager.WWF.Monitoring.Rule.AlertMessageRunning"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/Columns/Column[1]$</AlertParameter1>
<AlertParameter2>$Data/Columns/Column[2]$</AlertParameter2>
<AlertParameter3>$Data/Columns/Column[3]$</AlertParameter3>
<AlertParameter4>$Data/Columns/Column[4]$</AlertParameter4>
<AlertParameter5>$Data/Columns/Column[5]$</AlertParameter5>
<AlertParameter6>$Data/Columns/Column[6]$</AlertParameter6>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/Columns/Column[6]$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>