連結架構工作流程監視器
連結工作流程的失敗通常為下列原因之一所導致。作用中警示檢視將會顯示與此失敗相關聯的警示。警示資訊會指出失敗的特定原因。
1.連結架構工作流程從未執行: 此警告表示連接器自建立之後從未執行。連接器可能已停用、健全狀況服務可能未繁衍工作流程,或連接器的設定可能不當。
2.連結架構工作流程已完成,但發生錯誤: 連結架構連接器發生同步處理錯誤。原因可能有很多種,確切的原因取決於來源。
2.連結架構工作流程的狀態不明: 連結架構連接器的狀態不明。工作流程未更新工作流程狀態。
若是連結架構工作流程從未執行:
使用 Service Manager 主控台,確定連接器已啟用。
檢查連接器設定、伺服器可用性、權限、排程等等。如需詳細資訊或指引,請查看事件記錄檔。
重新啟動應執行工作流程之管理伺服器上的健全狀況服務,並查看 Operations Manager 事件記錄檔中有關於 Lfx 服務的錯誤。
若連結架構工作流程已完成,但發生錯誤:
查看 Service Manager 管理伺服器上的 Operations Manager 事件記錄檔,從中尋找有關 Lfx 服務的錯誤。錯誤描述,將會說明工作流程的問題。
若是連結架構工作流程的狀態不明:
嘗試從 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>