WF ワークフローのタイムアウト ルール

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

WF ワークフローのタイムアウトを監視します。

Knowledge Base article:

概要

ワークフローの状態に「成功」と表示されていますが、例外が発生しました。予期した結果が得られているかどうかを確認する必要があり、予期した結果が得られていない場合は、ワークフローを開始するために実行したアクションを繰り返さなければならないことがあります。

原因

ワークフローの活動が 25 分以内に完了しなかった場合、ワークフローはタイムアウトします。ワークフローは、開始済み段階またはスケジュール済み段階で動かなくなることがあり、[対処が必要] タブに表示されます。このタブは、Service Manager コンソールにおいて、その特定の種類のワークフローに関する管理/ワークフロー/状態ビューに表示されます。ワークフローのタイムアウトには多数の原因が考えられ、サービスの再起動時に実行した、キューが長い、API の戻り値が長時間返されないなどの場合があります。

解決方法

Element properties:

TargetMicrosoft.SystemCenter.ServiceManager.SmManagementServer
CategoryCustom
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
WF ワークフローのタイムアウト
実行時間が 25 分を超えたため、{2} によって送信されたルール {0} の実行が終了しました。{3}

Member Modules:

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

Source Code:

<Rule ID="Microsoft.SystemCenter.ServiceManager.WWF.Monitoring.RuleRunning" Target="SM!Microsoft.SystemCenter.ServiceManager.SmManagementServer">
<Category>Custom</Category>
<DataSources>
<DataSource ID="DBProbe" TypeID="Microsoft.SystemCenter.ServiceManager.Monitoring.OledbProbe.WWFWorkflows">
<IntervalSeconds>900</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>