Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Sintomas
Na Administração Central do SharePoint, um trabalho de temporizador de fluxo de trabalho mostra o status como "Pausando". Como resultado, você enfrenta os seguintes problemas:
- As aprovações de tarefas não são concluídas.
- Os fluxos de trabalho não podem ser executados após uma pausa.
- Ocorre um processamento aleatório de fluxos de trabalho.
- Os fluxos de trabalho não funcionam por longos períodos de tempo.
Motivo
A causa mais provável é uma instância de fluxo de trabalho defeituosa.
Resolução
Para corrigir o problema, primeiro determine se ele é causado por uma definição de fluxo de trabalho que foi introduzida no sistema ou por uma instância de fluxo de trabalho incorreta. Depois de verificar isso, trabalhe com o proprietário do fluxo de trabalho para decidir se o fluxo de trabalho pode ser encerrado ou excluído.
Etapa 1: restringir servidores que executam o trabalho de temporizador de fluxo de trabalho (opcional, mas altamente recomendado)
Para diagnosticar o problema rapidamente, considere interromper o Serviço de Temporizador de Fluxo de Trabalho do Microsoft SharePoint Foundation em todos os servidores, exceto um.
Etapa 2: Definir o nível de log do ULS como VerboseEx
No shell de Gerenciamento do SharePoint, execute o seguinte comando:
Set-SPLogLevel -TraceSeverity VerboseEx
Nota Isso pode causar problemas de desempenho nos servidores. Recomendamos que você restrinja a duração ao mínimo e redefina o nível de log ULS para o valor padrão depois que o comportamento tiver sido reproduzido usando Clear-SPLogLevel.
Se o impacto no desempenho impedir o rastreamento VerboseEx completo, defina o nível de registro em log para todas as categorias como Detalhado e o nível de registro em log para as categorias "Infraestrutura de Fluxo de Trabalho Herdado" (ou "Infraestrutura de Fluxo de Trabalho" no SharePoint 2010) e "Temporizador" como VerboseEx. Para fazer isso, execute os seguintes comandos no shell de Gerenciamento do SharePoint:
Set-SPLogLevel -TraceSeverity Verbose
Set-SPLogLevel -TraceSeverity VerboseEx -Identity "Legacy Workflow Infrastructure"
Set-SPLogLevel -TraceSeverity VerboseEx -Identity "Timer"
Etapa 3: Limpar cache de configuração
Desmarque o cache de configuração em todos os servidores em que o trabalho do temporizador de fluxo de trabalho está travado e nos servidores em que o Serviço de Temporizador de Fluxo de Trabalho do Microsoft SharePoint Foundation é iniciado.
Etapa 4: Aguarde até que o problema ocorra novamente e colete logs ULS
Depois que o cache de configuração for limpo, o status do trabalho de temporizador de fluxo de trabalho será alterado de "Pausando" para "Pausado" e, em seguida, "Em execução". Aguarde até que o problema ocorra , geralmente leva dez minutos. Você também poderá ver que o trabalho do temporizador de fluxo de trabalho será iniciado em outro servidor se o trabalho puder ser executado nesse servidor.
Verifique os logs ULS a cada cinco minutos para ver se o problema foi reproduzido e se a tarefa de temporizador está travada. O problema é exibido nos logs do ULS antes que o status do trabalho do temporizador se torne "Pausando". Se nenhuma entrada nova para o "fluxo de trabalho do trabalho do timer" for criada nos logs do ULS, o trabalho de temporizador estará travado. Quando isso ocorrer, filtre os logs uls usando a seguinte condição e verifique a hora da última entrada:
Name Contains Timer Job job-workflow
Etapa 5: Examinar os logs do ULS
Abra os logs do ULS no Visualizador do ULS e aplique os seguintes filtros:
Name Contains job-workflow EventID Contains ahk8y
Localize o último fluxo de trabalho que estava sendo processado. Provavelmente, essa é a instância de fluxo de trabalho que causou o problema. Este é um exemplo:
SharePoint Foundation Legacy Workflow Infrastructure ahk8y Verbose In RunWorkflowElev(), begin processing events for instance: bb7e3f4f-74ac-43f7-a31e-faa7e900843e 8329f59d-0342-20c3-fa1a-56f9161ded9f
Desmarque todos os filtros e aplique o seguinte filtro:
Correlação é <igual a Correlation_ID> e
A mensagem contém proc_GetWorkflowAssociations e
[EventID contém b6p4 ou
EventID contém tzkv ]No exemplo, a ID de Correlação é 8329f59d-0342-20c3-fa1a-56f9161ded9f.
Localize as últimas ocorrências de eventos b6p4 e tzkv e localize ListId, SiteId, ItemId e WebId. Este é um exemplo:
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
No exemplo, o ListId é m82r99b0-ff01-4448-9907-e2cbbbca0586, o SiteId é 8dd5c889-47a6-4798-93ef-8652609278f4, o ItemId é e22969ea-f883-4e99-8cbd-4b799a884d2d, e o WebId é j3952987-5ca6-4eae-8530-13e83acf1bb0.
Etapa 6: Identificar o fluxo de trabalho
No shell de Gerenciamento do SharePoint, execute os seguintes comandos para localizar a URL da Web e o título da lista:
$web= (Get-SPSite -Identity <SiteId> |Get-SPWeb -Identity <WebId>)
$list = $web.Lists.GetList("<ListId>", $true)
$list.ParentWeb
$list.Title
ObservaçãoSiteId, WebId e ListId são espaços reservados para o SiteId, WebId e ListId que foram encontrados na Etapa 5.
Vá para a lista e localize o item usando ItemId. Você também pode criar uma exibição temporária na lista e filtre-a por ITEMID. O fluxo de trabalho problemático está associado ao item. Vá para a configuração de fluxo de trabalho do item. Se o item tiver vários fluxos de trabalho em execução, clique na coluna de status do fluxo de trabalho problemático para exibir a página de histórico do fluxo de trabalho.
Etapa 7: Encerrar o fluxo de trabalho
Examine o histórico do fluxo de trabalho para identificar o que está errado. Em seguida, você pode encerrar o fluxo de trabalho ou excluir o item.
Às vezes, você pode não identificar o fluxo de trabalho ou o item na Etapa 6. Nesses casos, verifique se você está exibindo a lista correta e inspecione todos os outros dados. Verifique também as lixeiras.
Se você ainda não conseguir encontrar o item ou o fluxo de trabalho, é possível que o item tenha sido excluído, mas a instância de fluxo de trabalho ainda esteja em execução. Nesse caso, execute os seguintes comandos no Shell de Gerenciamento do SharePoint para cancelar o fluxo de trabalho:
$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)
Mais informações
Ainda precisa de ajuda? Vá para a Comunidade do SharePoint.