Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Síntomas
En Administración central de SharePoint, un trabajo del temporizador de flujo de trabajo muestra el estado como "Pausa". Como resultado, experimenta los siguientes problemas:
- Las aprobaciones de las tareas no se completan.
- Los flujos de trabajo no se pueden ejecutar después de una pausa.
- Se produce un procesamiento aleatorio de flujos de trabajo.
- Los flujos de trabajo no funcionan durante largos períodos de tiempo.
Causa
La causa más probable es una instancia de flujo de trabajo incorrecta.
Solución
Para corregir el problema, determine primero si se debe a una definición de flujo de trabajo introducida en el sistema o por una instancia de flujo de trabajo incorrecta. Después de comprobarlo, trabaje con el propietario del flujo de trabajo para decidir si el flujo de trabajo se puede terminar o eliminar.
Paso 1: Restringir los servidores que ejecutan el trabajo del temporizador de flujo de trabajo (opcional, pero muy recomendado)
Para diagnosticar el problema rápidamente, considere la posibilidad de detener el servicio temporizador de flujo de trabajo de Microsoft SharePoint Foundation en todos los servidores excepto uno.
Paso 2: Establecer el nivel de registro de ULS en VerboseEx
En el shell de administración de SharePoint, ejecute el siguiente comando:
Set-SPLogLevel -TraceSeverity VerboseEx
Nota Esto puede provocar problemas de rendimiento en la granja de servidores. Se recomienda restringir la duración al mínimo y restablecer el nivel de registro de ULS al valor predeterminado después de que el comportamiento se haya reproducido mediante Clear-SPLogLevel.
Si el impacto en el rendimiento evita el seguimiento detallado completo, establezca el nivel de registro de todas las categorías en Detallado y el nivel de registro de "Infraestructura de flujo de trabajo heredada" (o "Infraestructura de flujo de trabajo" en SharePoint 2010) y categorías "Temporizador" en VerboseEx. Para ello, ejecute los siguientes comandos en el shell de administración de SharePoint:
Set-SPLogLevel -TraceSeverity Verbose
Set-SPLogLevel -TraceSeverity VerboseEx -Identity "Legacy Workflow Infrastructure"
Set-SPLogLevel -TraceSeverity VerboseEx -Identity "Timer"
Paso 3: Borrar la caché de configuración
Borre la caché de configuración en todos los servidores en los que el trabajo del temporizador de flujo de trabajo está bloqueado y en los servidores en los que se inicia el servicio temporizador de flujo de trabajo de Microsoft SharePoint Foundation.
Paso 4: Esperar hasta que se produzca el problema de nuevo y recopilar registros ulS
Una vez desactivada la memoria caché de configuración, el estado del trabajo del temporizador de flujo de trabajo cambiará de "Pausar" a "Pausado" y, a continuación, "En ejecución". Espere hasta que se produzca el problema: normalmente tarda diez minutos. También puede ver que el trabajo del temporizador de flujo de trabajo se inicia en otro servidor si el trabajo se puede ejecutar en ese servidor.
Compruebe los registros de ULS cada cinco minutos para ver si el problema se ha reproducido y el trabajo del temporizador está bloqueado. El problema se muestra en los registros de ULS antes de que el estado del trabajo del temporizador se convierta en "Pausar". Si no se crean nuevas entradas para el "flujo de trabajo del trabajo del temporizador" en los registros ulS, el trabajo del temporizador se bloquea. Cuando esto ocurre, filtre los registros de ULS mediante la siguiente condición y compruebe la hora de la última entrada:
Name Contains Timer Job job-workflow
Paso 5: Examen de los registros de ULS
Abra los registros de ULS en el Visor de ULS y, a continuación, aplique los siguientes filtros:
Name Contains job-workflow EventID Contains ahk8y
Busque el último flujo de trabajo que se estaba procesando. Lo más probable es que se trate de la instancia de flujo de trabajo que provocó el problema. Este es un ejemplo:
SharePoint Foundation Legacy Workflow Infrastructure ahk8y Verbose In RunWorkflowElev(), begin processing events for instance: bb7e3f4f-74ac-43f7-a31e-faa7e900843e 8329f59d-0342-20c3-fa1a-56f9161ded9f
Borre todos los filtros y, a continuación, aplique el siguiente filtro:
La correlación es igual a Correlation_ID> y<
El mensaje contiene proc_GetWorkflowAssociations y
[EventID contiene b6p4 o
EventID contiene tzkv ]En el ejemplo, el identificador de correlación es 8329f59d-0342-20c3-fa1a-56f9161ded9f.
Busque las últimas apariciones de eventos b6p4 y tzkv y busque listId, SiteId, ItemId y WebId. Este es un ejemplo:
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
En el ejemplo, listId es m82r99b0-ff01-4448-9907-e2cbbbca0586, siteId es 8dd5c889-47a6-4798-93ef-8652609278f4, ItemId es e22969ea-f883-4e99-8cbd-4b799a884d2d y el WebId es j3952987-5ca6-4eae-8530-13e83acf1bb0.
Paso 6: Identificación del flujo de trabajo
En el shell de administración de SharePoint, ejecute los siguientes comandos para buscar la dirección URL web y el título de la lista:
$web= (Get-SPSite -Identity <SiteId> |Get-SPWeb -Identity <WebId>)
$list = $web.Lists.GetList("<ListId>", $true)
$list.ParentWeb
$list.Title
Nota SiteId, WebId y ListId son marcadores de posición para siteId, WebId y ListId que se encontraron en el paso 5.
Vaya a la lista y busque el elemento mediante ItemId. También puede crear una vista temporal en la lista y filtrarla por ITEMID. El flujo de trabajo problemático está asociado al elemento. Vaya a la configuración de flujo de trabajo del elemento. Si el elemento tiene varios flujos de trabajo ejecutándose en él, haga clic en la columna de estado del flujo de trabajo problemático para ver la página del historial de flujos de trabajo.
Paso 7: Finalizar el flujo de trabajo
Examine el historial de flujos de trabajo para identificar lo que está mal. A continuación, puede finalizar el flujo de trabajo o eliminar el elemento.
A veces, es posible que no identifique el flujo de trabajo o el elemento en el paso 6. En tales casos, asegúrese de que está viendo la lista correcta e inspeccione todos los demás datos. Compruebe también las papeleras de reciclaje.
Si todavía no encuentra el elemento o el flujo de trabajo, es posible que el elemento se haya eliminado, pero la instancia de flujo de trabajo todavía se está ejecutando. En este caso, ejecute los siguientes comandos en el Shell de administración de SharePoint para cancelar el flujo de trabajo:
$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)
Más información
¿Aún necesita ayuda? Visite Comunidad de SharePoint.