Monitor przepływu pracy struktury łączącej
Zazwyczaj awarie łączącego przepływu pracy występują z następujących powodów. Widok aktywnych alertów będzie zawierać alert powiązany z tą awarią. Informacje zawarte w alercie będą wskazywać na konkretny powód awarii.
1.Przepływ pracy struktury łączącej nigdy nie uruchomiony: To ostrzeżenie oznacza, że łącznik nie został uruchomiony od czasu jego utworzenia. Możliwe, że łącznik jest wyłączony, usługa kondycji nie duplikuje przepływów pracy lub łącznik jest błędnie skonfigurowany.
2.Przepływ pracy struktury łączącej zakończył się błędami: Wystąpił błąd łącznika struktury łączącej związany z synchronizacją. Możliwe są różne przyczyny. Dokładna przyczyna problemu zależy od źródła.
2.Nieznany stan przepływu pracy struktury łączącej: Łącznik struktury łączącej ma nieznany stan. Stan przepływu pracy nie został zaktualizowany przez przepływ pracy.
Jeśli przepływ pracy struktury łączącej nie został nigdy uruchomiony:
Korzystając z konsoli programu Service Manager, upewnij się, że łącznik jest włączony.
Sprawdź konfiguracje łącznika, dostępność serwera, uprawnienia, harmonogram itp. Sprawdź dziennik zdarzeń, aby uzyskać szczegółowe informacje oraz wskazówki.
Uruchom ponownie usługę kondycji na serwerze zarządzania, na którym miały być uruchomione przepływy pracy, i sprawdź dziennik zdarzeń programu Operations Manager pod kątem błędów związanych z usługą Lfx.
Jeśli przepływ pracy struktury łączącej zakończył się błędami:
Sprawdź dziennik zdarzeń programu Operations Manager na serwerze zarządzania programu Service Manager pod kątem błędów związanych z usługą Lfx. Opis błędu zawiera wyjaśnienia problemów dotyczących przepływu pracy.
Jeśli wystąpił nieznany stan przepływu pracy struktury łączącej:
Ponów próbę uruchomienia łącznika 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" Accessibility="Public" Enabled="true" Target="SM!Microsoft.SystemCenter.ServiceManager.SmManagementServer" ParentMonitorID="Microsoft.ServiceManager.Workflows.AvailabilityHealthRollup" Remotable="true" Priority="Normal" TypeID="Microsoft.SystemCenter.ServiceManager.Workflows.OLEDB.Monitoring.DBProbeMonitorType" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<OperationalStates>
<OperationalState ID="ComponentUnhealthy" MonitorTypeStateID="State1" HealthState="Warning"/>
<OperationalState ID="ComponentHealthy" MonitorTypeStateID="State2" HealthState="Success"/>
</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>