SharePoint 2010: Flux de lucru nu se poate executa după pauză

Se aplică la: Microsoft SharePoint Foundation 2010SharePoint Server 2010

Simptome


Flux de lucru SharePoint 2010 nu se poate executa după pauză și flux de lucru arată starea "în curs". Dacă faceți clic pe el pentru a face salt la pagina stare flux de lucru, flux de lucru istoric zona Arată "flux de lucru failed to run." în descrierea ultimul element.

Să luăm în considerare următorul scenariu:

O fermă SharePoint 2010 are un Web Front End Server cu "Microsoft SharePoint Foundation Web Application" serviciu care rulează și un Server de aplicație separată cu funcţionare "Microsoft SharePoint Foundation flux de lucru cronometru Service" (serverul nu are Web Application service executarea).

Un flux de lucru a fost în coadă pentru reluarea și Application server cu serviciul de flux de lucru cronometru încearcă să reluați fluxul de lucru dar eșuează.

În acest scenariu server de aplicație nu reușește să reia serviciul cronometru flux de lucru și fluxul de lucru este blocat în "În desfăşurare" stare. Lista de flux de lucru istoric afişează mesajul "flux de lucru failed to run.".

În plus, intrările de jurnal ULS pe serverul SharePoint pot include următoarele:

OWSTIMER. EXE (0x0E5C) 0x2184 infrastructură de flux de lucru SharePoint Foundation 72fu neașteptate Load flux de lucru Class: System.Reflection.TargetInvocationException: excepţie a fost lansată de țintă o invocare. ---> System.NullReferenceException: obiecte de referință nu este setat la o instanță a unui obiect. la Microsoft.SharePoint.Workflow.SPWinOeHostServices.EnsurePluggableServices (SPSite site, servicii SPWorkflowExternalDataExchangeServiceCollection, ExternalDataExchangeService existingServices) la Microsoft.SharePoint.Workflow.SPWinOeHostServices... ctor (SPSite site-ul SPWeb web, SPWorkflowManager manager SPWorkflowEngine motor)

OWSTIMER. EXE (0x0E5C) 0x2184 SharePoint Foundation flux de lucru infrastructură 98 d 8 System.Reflection.TargetInvocationException neașteptate: excepţie a fost lansată de țintă o invocare. ---> System.NullReferenceException: obiecte de referință nu este setat la o instanță a unui obiect. la Microsoft.SharePoint.Workflow.SPWinOeHostServices.EnsurePluggableServices (SPSite site, servicii SPWorkflowExternalDataExchangeServiceCollection, ExternalDataExchangeService existingServices) la Microsoft.SharePoint.Workflow.SPWinOeHostServices... ctor (SPSite site-ul SPWeb web, SPWorkflowManager manager SPWorkflowEngine motor)

OWSTIMER. EXE (0x0D64) 0x0E98 infrastructură de flux de lucru SharePoint Foundation frg9 mediu de flux de lucru nu poate fi executa deoarece SPWebApplication.UpdateWorkflowConfigurationSettings nu a fost denumit anterior și serviciul de aplicație Web a fost dezactivat acest server. Apel UpdateWorkflowConfigurationSettings sau activa serviciul aplicație Web pentru acest server.

Cauza


Serviciul de cronometrare Flux de lucru încearcă să citească fluxul de lucru batchsize setările din web.config sau configurare bază de date pentru o aplicație web. În mod implicit, setarea batchsize este în fișierul web.config dacă serverul execută serviciul de aplicație Web.

Dacă serviciul de aplicație Web nu se execută pe același server și script-ul în metoda 1 (sub secțiunea "Rezolvare") nu s-a executat, setarea batchsize este în fișierul web.config nici în baza de date de configurare, apoi Operațiunea nu reușește.

Rezolvare


Metoda 1:

Găsiți un server Web front-end care are o aplicație Web service execută, executaţi următoarea comandă pentru a copia configurare legată de flux de lucru din web.config pentru baza de date de configurare, astfel încât acesta va fi disponibil de pe fiecare server din Uniunea de PowerShell.

• $webapp = get-SPWebApplication-identitate http://<web nume aplicaţie >
• $webapp. UpdateWorkflowConfigurationSettings()

Metoda 2:

Porniți serviciul aplicație Web pe toate serverele care execută serviciul de cronometrare Flux de lucru.

Metoda 3:

Dezactivați serviciul cronometru de flux de lucru pe serverele care nu execută serviciul de aplicație Web.

 

Mai multe informații


Un flux de lucru SharePoint este pus într-o stare de "deshidratate" atunci când o pauză apare sau devine amânată din cauza WorkflowPostponeThreshold.  SharePoint 2010 utilizează o coadă de sistem pentru a controla legate de flux de lucru stres fermă resurse și baze de date de conținut. Prin acest sistem, când numărul de fluxuri de lucru de executare împotriva unei baze de date atinge un prag configurate de administrator, operațiuni succesive fluxului de lucru sunt adăugate la coada pentru a se executa de serviciul cronometrul de flux de lucru. În mod implicit, acest serviciu primește un batch flux de lucru de elemente de lucru fiecare minut.

Mai multe setări de administrator fermă, direct și indirect legate de mecanismul queuing, afectează performanța și scalare pentru flux de lucru. Secțiunile următoare descriu ce face aceste setări și cum se reglează-le pentru a răspunde cerințelor de performanță.

  • Flux de lucru amâna prag (Set-SPFarmConfig – WorkflowPostponeThreshold < întreg >)

Numărul maxim de fluxuri de lucru care poate executa împotriva unei baze de date de conținut unică înainte de solicitări suplimentare și operațiuni sunt în coadă. Fluxuri de lucru în coadă arată starea de pornire. Aceasta este o setare la nivel de fermă care are o valoare implicită de 15. Acest lucru reprezintă numărul de operațiuni de flux de lucru care sunt în curs de procesare la un moment dat, nu numărul maxim de fluxuri de lucru care poate fi în curs de desfășurare. Așa cum s-au terminat operațiunile de flux de lucru, operațiuni succesive va putea să se execute.

  • Flux de lucru eveniment livrare Batch Size (Set-SPWorkflow – BatchSize < întreg >)

Serviciul de cronometrul de flux de lucru este o excepție la limita de prag Amânați și va prelua loturi de elemente din coadă și le executa unul o dată. Aceste loturi poate fi mai mare decât pragul Amânați. Numărul de elemente de lucru care primește serviciul per pornire este setat utilizând proprietatea BatchSize. Proprietatea BatchSize poate fi setată o dată pe instanță de serviciu Web Application. Valoarea implicită este 100.
Când se execută pe serverele de aplicații care nu sunt configurate pentru a fi servere front-end, serviciul de flux de lucru cronometru necesită setări de configurare flux de lucru în Web.config în baza de date de configurare. Aceasta trebuie făcută printr-un script care solicită UpdateWorkflowConfigurationSettings() obiecte SPWebApplication, care va copia Web.config setările de pe un server front-end.

Consultați următorul link pentru mai multe informații

Estimarea performanțele și capacitatea de planificare pentru flux de lucru în SharePoint Server 2010