0

I have a problem with custom workflow. It is failing from time to time. Every time when I start the workflow manually, I received the following message:

Due to heavy load, the latest workflow operation has been queued. It will attempt to resume at a later time

And then sometimes it starts fine, sometimes it fails with

An error has occurred in WorkflowName

I have around 40 workflows running on the list (List Settings : Workflow Settings: Workflows in Progress= 40) All of them just waiting for approval tasks to be created. Does it count toward this threshold:

15 is the maximum number of workflows allowed to be executing against a content >database at the same time, excluding instances that are running in the timer >service. When this threshold is reached, new requests to activate workflows will >be queued to be run by the workflow timer service later. As non-timer execution >is completed, new requests will count against this threshold. https://technet.microsoft.com/en-us/library/cc262787.aspx#Workflow

Workflow is relatively big, it's main function is to assigns tasks to group of users.

I have no access to Central Administration, and there is no point of asking "admins" for help as they "don't support custom workflows" ...

Any idea how to make it more reliable?

1

There can be any of following reasons for the cause of above note:

  1. A workflow being executed on a large number of items.

  2. Multiple workflows instances are being initiated on the same site within a small amount of time.

  3. Performance stress of SharePoint farm environment.

  4. When an item is added to the library it takes some times to initiate the workflow.

  5. When Workflow mail generating is not very fast due to heavy load on server.

  6. When Workflows take more time to Initiate the workflow on current item.

The above points doesn't mean always that we have to add more RAM to the current farm environment but might be a reason sometimes when a farm environment running with limited RAM on them. But initially before considering an additional hardware try to change following configurations for workflow:

  1. Increase Throttle Size

  2. Increase Batch Size

  3. Time Out

  4. Workflow Timer Interval

  5. AutoCleanUpDays

Increase Throttle Size

The Workflow throttle setting controls how many Workflows can be processing at any one time on the entire server farm. By increasing the throttle it will allow the number of Workflows execution or can be initiated at a time.

Use below PowerShell command to get the current Throttle Size:

Get-SPFarmConfig | Select WorkflowPostponeThreshold

Use below PowerShell command to set new Throttle Size:

Set-SPFarmConfig -WorkflowPostponeThreshold 100

Increase Batch Size

This is the size that determines number of events processed for a single Workflow instance. Default value is 100, but it can be range from 1 to any number.

Use below PowerShell command to get the current Batch Size:

Get-SPFarmConfig | Select WorkflowBatchSize

Use below PowerShell command to set new Batch Size:

Set-SPFarmConfig -WorkflowBatchSize 200

Time Out

This decides the time out of the Workflow event. The default value is 5 and can be any integer. The time is in minute.

Use below STSADM command to get the current Time Out value:

stsadm -o getproperty -pn workflow-eventdelivery-timeout

Use below STSADM command to get the current Time Out value:

stsadm -o setproperty -pn workflow-eventdelivery-timeout -pv “15″

Workflow Timer Interval

This setting is applicable at Web Application level and not the farm level. The workflow timer interval specifies how often the workflow SPTimer job fires to process pending workflow tasks. This interval also represents the granularity of delay timers within your workflow. If a timer is set to delay for one minute, but the interval timer fires only every five minutes, the workflow delays for five minutes, not one minute.

Use below STSADM command to get the current Workflow Timer Interval value:

stsadm -o getproperty -pn job-workflow -url <Web Application Url>

Use below STSADM command to get the current Workflow Timer Interval value:

stsadm -o setproperty -pn job-workflow -pv “Every 10 minutes between 0 and 30″ -url <Web Application Url>

Hope this information helps!!!

Source

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.