Lue englanniksi

Jaa


SharePoint-työnkulun ajastintyö on jäänyt jumiin "Keskeyttäminen"-kohteeseen

Oireet

SharePointin keskitetyssä hallinnassa työnkulun ajastintyö näyttää tilan "Keskeyttäminen". Tämän vuoksi sinulla on seuraavia ongelmia:

  • Hyväksynnät tehtäviä ei suoriteta.
  • Työnkulkuja ei voi suorittaa tauon jälkeen.
  • Työnkulkuja käsitellään satunnaisesti.
  • Työnkulut eivät toimi pitkiä aikoja.

Syy

Todennäköisin syy on virheellinen työnkulkuesiintymä.

Ratkaisu

Voit korjata ongelman määrittämällä ensin, johtuuko se järjestelmässä käyttöön otetun työnkulun määrityksestä vai huonosta työnkulkuesiintymästä. Kun olet varmistanut tämän, päätä yhdessä työnkulun omistajan kanssa, voidaanko työnkulku lopettaa vai poistaa.

Voit diagnosoida ongelman nopeasti pysäyttämällä Microsoft SharePoint Foundation -työnkulun ajastimen palvelun kaikissa palvelimilla yhtä lukuun ottamatta.

Vaihe 2: Määritä ULS-kirjaustasoksi VerboseEx

Suorita SharePoint Management -liittymässä seuraava komento:

PowerShell
Set-SPLogLevel -TraceSeverity VerboseEx  

Huomautus , tämä voi aiheuttaa suorituskykyongelmia klusterissa. Suosittelemme, että rajoitat keston vähimmäisarvoon ja palautat ULS-kirjaustason oletusarvoon, kun toiminta on toistettu käyttämällä Clear-SPLogLevel-funktiota.

Jos suorituskykyvaikutus estää täyden VerboseEx-jäljityksen, määritä kaikkien luokkien kirjaustasoksi Yksityiskohtainen ja "Vanha työnkulun infrastruktuuri" -(tai SharePoint 2010:n työnkulkuinfrastruktuurin" ja "Ajastin"-luokan luokiksi VerboseEx. Voit tehdä tämän suorittamalla seuraavat komennot SharePoint Management -liittymässä:

PowerShell
Set-SPLogLevel -TraceSeverity Verbose   
Set-SPLogLevel -TraceSeverity VerboseEx -Identity "Legacy Workflow Infrastructure"  
Set-SPLogLevel -TraceSeverity VerboseEx -Identity "Timer"  

Vaihe 3: Tyhjennä määritysvälimuisti

Tyhjennä määritysvälimuisti kaikista palvelimista, joissa työnkulun ajastintyö on jumissa, sekä palvelimilla, joilla Microsoft SharePoint Foundation -työnkulun ajastinpalvelu käynnistetään.

Vaihe 4: Odota, kunnes ongelma ilmenee uudelleen, ja kerää ULS-lokit

Kun määritysvälimuisti on tyhjennetty, työnkulun ajastintyön tilaksi tulee "Keskeyttäminen" ja "Keskeytetty" ja sitten "Käynnissä". Odota, kunnes ongelma ilmenee – se kestää yleensä kymmenen minuuttia. Työnkulun ajastintyö voi käynnistyä toisella palvelimella, jos työ voidaan suorittaa kyseisellä palvelimella.

Tarkista viiden minuutin välein olevat ULS-lokit, onko ongelma toistunut, ja ajastintyö on jumissa. Ongelma näkyy ULS-lokeissa, ennen kuin ajastintyön tilasta tulee "Pausing". Jos Ajastintyön työnkulku -kohteille ei luoda uusia merkintöjä ULS-lokeissa, ajastintyö on jumissa. Kun näin käy, suodata ULS-lokit käyttämällä seuraavaa ehtoa ja tarkista viimeisimmän merkinnän aika:

 Name  Contains  Timer Job job-workflow

Vaihe 5: Tutki ULS-lokeja

  1. Avaa ULS-lokit ULS-katseluohjelmassa ja käytä sitten seuraavia suodattimia:

    Name  Contains  job-workflow  
    EventID  Contains  ahk8y
    
  2. Etsi viimeisin käsiteltävä työnkulku. Tämä on todennäköisesti ongelman aiheuttanut työnkulun esiintymä. Tässä on esimerkki:

    SharePoint Foundation Legacy Workflow Infrastructure ahk8y Verbose In RunWorkflowElev(), begin processing events for instance: bb7e3f4f-74ac-43f7-a31e-faa7e900843e      8329f59d-0342-20c3-fa1a-56f9161ded9f
    
  3. Tyhjennä kaikki suodattimet ja ota sitten käyttöön seuraava suodatin:

    Korrelaatio on yhtä suuri kuin <Correlation_ID> ja
    Viesti sisältää proc_GetWorkflowAssociations ja
    [EventID contains b6p4 Or
    EventID sisältää tzkv ]

    Esimerkissä Korrelaatiotunnus on 8329f59d-0342-20c3-fa1a-56f9161ded9f.

  4. Etsi tapahtumien b6p4 ja tzkv viimeiset esiintymät ja etsi sitten ListId, SiteId, ItemId ja WebId. Tässä on esimerkki:

    05/25/2017 12:28:43.27 OWSTIMER.EXE (0x9318) 0x6DF0 SharePoint Foundation Database b6p4 VerboseEx SqlCommand: ; EXEC proc_getworkflowassociations '8dd5c889-47a6-4798-93ef-8652609278f4', 'j3952987-5ca6-4eae-8530-13e83acf1bb0', 'e22969ea-f883-4e99-8cbd-4b799a884d2d', 'm82r99b0-ff01-4448-9907-e2cbbbca0586', @contenttypeid, @RequestGuid OUTPUT 8329f59d-0342-20c3-fa1a-56f9161ded9f   
    05/25/2017 12:28:43.27 OWSTIMER.EXE (0x9318) 0x6DF0 SharePoint Foundation Database tzkv Verbose SqlCommand: 'proc_GetWorkflowAssociations' CommandType: StoredProcedure CommandTimeout: 0 Parameter: '@RETURN_VALUE' Type: Int Size: 0 Direction: ReturnValue Value: Parameter: '@SiteId' Type: UniqueIdentifier Size: 0 Direction: Input Value: '8dd5c889-47a6-4798-93ef-8652609278f4' Parameter: '@WebId' Type: UniqueIdentifier Size: 0 Direction: Input Value: 'j3952987-5ca6-4eae-8530-13e83acf1bb0' Parameter: '@Id' Type: UniqueIdentifier Size: 0 Direction: Input Value: 'e22969ea-f883-4e99-8cbd-4b799a884d2d' Parameter: '@ListId' Type: UniqueIdentifier Size: 0 Direction: Input Value: 'm82r99b0-ff01-4448-9907-e2cbbbca0586' Parameter: '@ContentTypeId' Type: VarBinary Size: 512 Direction: Input Value: Parameter: '@RequestGuid' Type: UniqueIdentifier Size: 0 Direction: Input Value: '8329f59d-0342-20c3-fa1a-56f9161ded9f' 8329f59d-0342-20c3-fa1a-56f9161ded9f
    

    Esimerkissä ListId on m82r99b0-ff01-4448-9907-e2cbbbca0586, SiteId on 8dd5c889-47a6-4798-93ef-8652609278f4, ItemId on e22969ea-f883-4e99-8cbd-4b79a84d2d ja WebId on j3952987-5ca6-4eae-8530-13e83acf1bb0.

Vaihe 6: Työnkulun tunnistaminen

Etsi verkko-URL-osoite ja luettelon otsikko suorittamalla seuraavat komennot SharePoint Management -liittymässä:

 $web= (Get-SPSite -Identity <SiteId> |Get-SPWeb -Identity <WebId>)   
 $list = $web.Lists.GetList("<ListId>", $true)  
 $list.ParentWeb   
 $list.Title

Huomautus: SiteId, WebId ja ListId ovat vaiheessa 5 löydettyjen SiteId-, WebId- ja ListId-tunnusten paikkamerkkejä.

Siirry luetteloon ja etsi kohde käyttämällä ItemId-funktiota. Voit myös luoda väliaikaisen näkymän luetteloon ja suodattaa sen ITEMID-tunnuksen perusteella. Ongelmallinen työnkulku liittyy kohteeseen. Siirry kohteen työnkulkuasetukseen. Jos kohteessa on käynnissä useita työnkulkuja, voit tarkastella työnkulkuhistoriasivua napsauttamalla ongelmallisen työnkulun tilasaraketta .

Vaihe 7: Työnkulun lopettaminen

Tarkista työnkulkuhistoriasta, mikä on vialla. Sen jälkeen voit lopettaa työnkulun tai poistaa kohteen.

Joskus et välttämättä tunnista työnkulkua tai kohdetta vaiheessa 6. Varmista tällaisissa tapauksissa, että tarkastelet oikeaa luetteloa, ja tarkista kaikki muut tiedot. Tarkista myös roskakorit.

Jos et edelleenkään löydä kohdetta tai työnkulkua, kohde on ehkä poistettu, mutta työnkulun esiintymä on yhä käynnissä. Tässä tapauksessa voit peruuttaa työnkulun suorittamalla seuraavat komennot SharePoint Management Shellissä:

$web = Get-SPWeb <WebURL>  
#Pass the workflow Instance Id from the ahk8y event  
$WorkflowInstanceID = <WorkflowInstanceID>  
$workflowId =  [GUID]$WorkflowInstanceID  
$workflow = New-Object Microsoft.SharePoint.Workflow.SPWorkflow($web, $workflowId);  
[Microsoft.SharePoint.Workflow.SPWorkflowManager]::CancelWorkflow($workflow)

Lisätietoja

Tarvitsetko lisää ohjeita? Siirry SharePointin yhteisöön.