Munkafolyamat-figyelő
A Windows-munkafolyamatok hibája a legtöbb esetben az alábbi okokra vezethető vissza. Az aktív riasztások nézetében meg fog jelenni a hibához tartozó riasztás. A riasztáshoz mellékelt ismeretek között szerepel a hiba tényleges oka is. Ha a figyelő a felügyeleti csomag importálása óta vörös állapotban volt, és a riasztási nézetben nem látható riasztás, akkor lehetséges, hogy már a felügyeleti csomag importálása előtt is voltak munkafolyamat-végrehajtási hibák a rendszerben. A figyelőt úgy állíthatja zöld állapotra, hogy a Service Manager-konzolon az összes régi munkafolyamat-hibát mellőzi.
1. WF-munkafolyamat: sikertelen: A munkafolyamat-hibák arra utalnak, hogy a munkafolyamat a működésének leállásához vezető hibába ütközött. A munkafolyamat meghibásodása általában magával vonja a probléma ismertségét. Egy munkafolyamat számos okból futhat hibára, például előfordulhat, hogy a munkafolyamat-fióknak nincs jogosultsága egy tevékenység végrehajtására, bizonyos erőforrások nem érhetők el, elérési hiba lép fel stb.
2. WF-munkafolyamat: az elküldés meghiúsult: A figyelési állomás nem küldte el futtatásra a munkafolyamatot.
3. WF-munkafolyamat: kivétel: A rendszer azt jelzi, hogy a munkafolyamat állapota „Sikeres”, de kivétel történt. Ellenőrizze, hogy a várt eredményt kapta-e. Ha nem, akkor lehetséges, hogy ismét el kell végeznie a munkafolyamatot elindító műveletet. Ha a munkafolyamat szoftverkódja hibás, akkor a munkafolyamat meghiúsul és kivételt jelez.
4. WF-munkafolyamat: időtúllépés : Ha egy munkafolyamat nem fejez be egy tevékenységet 25 percen belül, akkor időtúllépéssel végződik a futása. Lehetséges, hogy a munkafolyamat az Elindítva vagy az Ütemezett állapotban ragadt; ebben az esetben a Service Manager-konzol az adott típusú munkafolyamatokhoz tartozó Adminisztráció/Munkafolyamatok/Állapot nézetének „Figyelmet igényel” lapján jelenik meg. Egy munkafolyamat számos különböző okból végződhet időtúllépéssel, ilyen például valamelyik érintett szolgáltatás újraindítása, a túl hosszú várólista, a választ csak hosszú idő után visszaadó API-k stb.
Ha a WF-munkafolyamat végrehajtása sikertelen,
A sikertelen WF-munkafolyamatok a Service Manager-konzol az adott típusú munkafolyamatokhoz tartozó Adminisztráció/Munkafolyamatok/Állapot nézetének „Figyelmet igényel” lapján jelennek meg.
A „Napló megtekintése” elemmel nyithatja meg a naplót, amelyből meghatározhatja a munkafolyamat sikertelenségének okát.
Próbálja meg kijavítani a hibát, majd az „Újra” elemmel futtassa újra a munkafolyamatot.
Ha a probléma továbbra is fennáll, próbálja meg újraindítani a Service Manager felügyeleti kiszolgálón az állapotfigyelő szolgáltatást.
Ha sikerül kézzel elhárítani a problémát, akkor a „Mellőzés” gombbal távolíthatja el a munkafolyamatot a „Figyelmet igényel” nézetből.
Ha a WF-munkafolyamat elküldése meghiúsult,
Indítsa újra az állapotfigyelő szolgáltatást a Service Manager felügyeleti kiszolgálón.
Ha a WF-munkafolyamat kivételt jelez,
Ha a munkafolyamat sikeresen befejeződött, mégsem végezte el a kívánt feladatot, akkor a megfelelő műveletek kézi végrehajtásával állítsa újra elő azt a helyzetet, amelynek hatására elindult a munkafolyamat.
A munkafolyamat a Service Manager-konzol Adminisztráció panelének Munkafolyamat-állapot nézetében követhető.
Ha a WF-munkafolyamat időtúllépéssel fejeződött be,
Az időtúllépéssel végződő WF-munkafolyamatok a Service Manager-konzol az adott típusú munkafolyamatokhoz tartozó Adminisztráció/Munkafolyamatok/Állapot nézetének „Figyelmet igényel” lapján jelennek meg. Futtassa újra a munkafolyamatot, vagy ha sikerült kézzel elhárítania a hibát, kattintson a Mellőzés gombra.
Ha a munkafolyamatok nem futó állapotban ragadnak be, indítsa újra az állapotfigyelő szolgáltatást a felügyeleti kiszolgálón; ilyenkor a várólistán található munkafolyamatok újraindítását is megkísérli a rendszer.
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.WWFWorkflows.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>
SELECT CONVERT(nvarchar,COUNT(*))
FROM dbo.WindowsWorkflowTaskJobStatus
LEFT OUTER JOIN dbo.JobStatusView
ON dbo.[JobStatusView].[BatchId] = dbo.[WindowsWorkflowTaskJobStatus].[BatchId]
LEFT OUTER JOIN dbo.MySubscriptions
ON dbo.[WindowsWorkflowTaskJobStatus].[RuleId] = dbo.[MySubscriptions].[RuleEntityId]
WHERE ((
dbo.[WindowsWorkflowTaskJobStatus].[Processed] IS NULL
AND
( (dbo.[WindowsWorkflowTaskJobStatus].[ErrorMessage] IS NOT NULL)
OR (dbo.[JobStatusView].Status = 3)
OR ((dbo.[JobStatusView].Status = 0 OR dbo.[JobStatusView].Status = 1)
AND
(DATEDIFF(MINUTE, dbo.[JobStatusView].TimeScheduled, GETUTCDATE()) >= 25)
)
OR( dbo.[JobStatusView].Status = 2)
OR( dbo.[JobStatusView].Status is NULL)
)
))
</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>