Reguła Limit czasu przepływu pracy WF

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

Monitoruje przekroczenia limitu czasu w przepływach pracy WF.

Knowledge Base article:

Podsumowanie

Stan przepływu pracy jest wyświetlany jako „Powodzenie”, ale wystąpił wyjątek. Należy potwierdzić otrzymanie oczekiwanego rezultatu. W przeciwnym razie może być wymagane powtórzenie czynności, która została wykonana w celu uruchomienia przepływu pracy.

Przyczyny

Jeśli przepływ pracy nie zakończy działania w ciągu 25 minut, przekroczy limit czasu. Przepływ pracy może być zablokowany w fazie „rozpoczęty” lub „zaplanowany”. Będzie widoczny w konsoli programu Service Manager na karcie „Wymaga uwagi” w widoku administracyjnym/przepływów pracy/stanu dla danego typu przepływu pracy. Istnieje wiele powodów przekroczenia limitu czasu przez przepływ pracy, np. uruchomienie podczas ponownego uruchamiania usługi, długa kolejka lub interfejsy API, które długo zwracają informacje.

Rozwiązania

Element properties:

TargetMicrosoft.SystemCenter.ServiceManager.SmManagementServer
CategoryCustom
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
Limit czasu przepływu pracy WF
Zakończona reguła {0} przesłana przez {2} była uruchomiona przez ponad 25 minut.{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>