WF İş Akışları

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

İş Akışı İzleyicisi

Knowledge Base article:

Özet

Genelde Windows İş Akışı hataları aşağıdaki nedenlerden biri dolayısıyla meydana gelebilir. Etkin uyarılar görünümünde bu uyarıyla ilişkili bir uyarı vardır. Uyarı bilgileri hatanın nedenini gösterecektir. Bu izleyici, yönetim paketi içeri aktarıldığından beri kırmızıysa ve uyarılar görünümünden bir uyarı yoksa, sistemde yönetim paketi içeri aktarılmadan önce de mevcut iş akışı hataları bulunuyor olması mümkündür. Bu izleyiciyi yeşile döndürmek için, lütfen Service Manager konsolundaki tüm eski iş akışı hatalarını yoksayın.

Nedenler

1. WF İş Akışı Başarısız : İş akışı hataları, iş akışının çalışmayı durdurmasına neden olan bir sorun olduğunu gösterir. Başarısız bir iş akışı genelde sorunun bilindiğini gösterir. İş akışları, iş akışı hesaplarının bir eylemi tamamlamak için ihtiyacı olan izin düzeyine sahip olmaması, kaynakların uygun olmaması, bağlantı hataları vb. gibi çeşitli nedenlerle başarısız olabilir.

2. WF İş Akışı Aktarımı Başarısız : Bu iş akışı izleme konağı tarafından çalıştırılacak şekilde gönderilmemiş.

3. WF İş Akışı Özel Durumu : İş akışı durumu "Başarılı" olarak görünüyor ancak bir özel durum var. Beklenen sonucun elde edildiği onaylanmalıdır; onaylanmazsa, iş akışının başlatılması için gerçekleştirilen eylemin tekrarlanması gerekebilir. İş Akışı Kodu'ndaki yazılım hatası başarısız olmasına neden olacak ve bir özel durum oluşturacak.

4. WF İş Akışı Zaman Aşımı : Bir iş akışı, bir eylemi 25 dakika içinde tamamlamazsa zaman aşımına uğrar. İş akışı başlangıç ya da planlama safhasında takılabilir ve bu belirli iş akışı türü için yönetim/iş akışları/durum görünümü altında Service Manager konsolunda bulunabilen "Dikkat Gerektiriyor" sekmesinde görünebilir. İş akışı zamana aşımının bir hizmet yeniden başlatıldığında ve uzun bir sırada çalışma veya döndürülmesi uzun süren API'lar gibi çeşitli nedenleri vardır.

Çözümlemeler

WF İş Akışı Başarısızsa,

WF İş Akışı Aktarımı Başarısızsa,

WF İş Akışı Özel Durumu varsa,

WF İş Akışımı Zaman Aşımına uğradıysa,

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.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()) &gt;= 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>