Monitor przepływu pracy serwera LinkingFramework
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.
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.
W razie, gdy przepływ pracy serwera LinkingFramework nie został nigdy uruchomiony
Za pomocą konsoli programu Service Manager upewnij się, że łącznik jest włączony.
Sprawdź konfiguracje łącznika, dostępność serwera, uprawnienia, harmonogram itd. Sprawdź, czy w dzienniku zdarzeń nie ma bardziej szczegółowych informacji lub wskazówek.
Ponownie uruchom usługę badania kondycji na serwerze zarządzania, na którym miały być uruchomione przepływy pracy, i sprawdź, czy w dzienniku zdarzeń programu Operations Manager nie ma błędów dla usługi LFX.
W razie, gdy przepływ pracy serwera LinkingFramework został zakończony z błędami
Sprawdź dziennik zdarzeń programu Operations Manager na serwerze zarządzania programu Service Manager i wyszukaj błędy w usłudze LFX. Opis błędu będzie zawierał objaśnienie problemów z przepływem pracy.
W razie, gdy stan przepływu pracy serwera LinkingFramework jest nieznany
Spróbuj ponownie uruchomić łącznik z konsoli programu Service Manager.
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.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()) >= 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>