I hope most of the users and developers might have come across above note and worried about it. There can be any of following reasons for the cause of above note:
- A workflow being executed on a large number of items.
- Multiple workflows instances are being initiated on the same site within a small amount of time.
- Performance stress of SharePoint farm environment.
- When an item is added to the library it takes some times to initiate the workflow.
- When Workflow mail generating is not very fast due to heavy load on server.
- When Workflows take more time to Initiate the workflow on current item.
- Sometimes with out any reason “Due to heavy load, the latest workflow operation has been queued. It will attempt to resume at a later time”. message will be shown though the workflow might have already initiated.
The above points does mean always we have to add more hardware 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:
- Increase Throttle Size
- Increase Batch Size
- Time Out
- Workflow Timer Interval
- 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>