Przepływy pracy serwera LinkingFramework

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

Monitor przepływu pracy serwera LinkingFramework

Knowledge Base article:

Podsumowanie

Zazwyczaj awarie łączącego przepływu pracy mogą występować z jednej z następujących przyczyn. Widok aktywnych alertów będzie miał alert skojarzony z tą awarią. Informacje o alercie będą wskazywać konkretną przyczynę awarii.

Przyczyny

1. Przepływ pracy serwera LinkingFramework nie został nigdy uruchomiony: To ostrzeżenie wskazuje, że łącznik nie był uruchamiany od chwili utworzenia. Łącznik może być wyłączony, usługa badania kondycji może nie duplikować przepływów pracy lub łącznik może być niepoprawnie skonfigurowany.

2. Przepływ pracy serwera LinkingFramework został zakończony z błędami: W łączniku serwera LinkingFramework wystąpił błąd związany z synchronizacją. Możliwe są różne przyczyn, przy czym dokładna przyczyna zależy od źródła.

2. Nieznany stan przepływu pracy serwera LinkingFramework: Łącznik serwera LinkingFramework jest w nieznanym stanie. Stan przepływu pracy nie został zaktualizowany przez przepływ pracy.

Rozwiązania

W razie, gdy przepływ pracy serwera LinkingFramework nie został nigdy uruchomiony

W razie, gdy przepływ pracy serwera LinkingFramework został zakończony z błędami

W razie, gdy stan przepływu pracy serwera LinkingFramework jest nieznany

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.LfxWorkflows.Monitor" TypeID="Microsoft.SystemCenter.ServiceManager.Workflows.OLEDB.Monitoring.DBProbeMonitorType" Accessibility="Public" Target="SM!Microsoft.SystemCenter.ServiceManager.SmManagementServer" ParentMonitorID="Microsoft.ServiceManager.Workflows.AvailabilityHealthRollup">
<Category>AvailabilityHealth</Category>
<OperationalStates>
<OperationalState MonitorTypeStateID="State1" HealthState="Warning" ID="ComponentUnhealthy"/>
<OperationalState MonitorTypeStateID="State2" HealthState="Success" ID="ComponentHealthy"/>
</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>
declare @TableName sysname;
declare @StatusColumn sysname;
declare @StartTimeColumn sysname;
declare @Query varchar(max);
select @TableName = MT.ManagedTypeTableName,
@StatusColumn = MTP1.ColumnName,@StartTimeColumn = MTP2.ColumnName from ManagedType MT
inner join ManagedTypeProperty MTP1
on MT.ManagedTypeId = MTP1.ManagedTypeId
inner join ManagedTypeProperty MTP2
on MT.ManagedTypeId = MTP2.ManagedTypeId
where MT.TypeName = N'Microsoft.SystemCenter.LinkingFramework.SyncStatus'
and MTP1.ManagedTypePropertyName = N'Status'
and MTP2.ManagedTypePropertyName = N'LastRunStartTime'
SET @Query = N'select CONVERT(varchar,COUNT(*))' +
' from dbo.EnumType Etype join ' + @TableName +
' SyncStatus on Etype.EnumTypeId = SyncStatus.' + @StatusColumn +
' join dbo.Relationship Rel on Rel.TargetEntityId = SyncStatus.BaseManagedEntityId join dbo.BaseManagedEntity BME '+
'on BME.BaseManagedEntityId = Rel.SourceEntityId ' +
' WHERE (' + @StatusColumn + ' like ''%FinishedwithError%'') OR ' +
'(' + @StatusColumn + ' like ''%Unknown%'') OR ' +
'(' + @StatusColumn + ' like ''%NeverRun%'' AND ' +
'('+ ' DATEDIFF(MINUTE,' + @StartTimeColumn + ', GETUTCDATE()) &gt;= 5))'
EXEC(@Query)

</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>