Issues with the Delay Activity in MOSS Workflows
I was experiencing weird behaviour when I used the Delay activity. I asked the delay activity to delay for 3 minutes - the first time it delayed for 5 minutes, then 15 minutes, then 30 minutes and so on . . .
If you are experiencing this also, make sure you have Windows 2003 Server SP2 installed and then obtain a copy of the hotifx for KB932816. Once this has been installed on the server - everything works as expected.
Another point to note is that the delay will actually expire based on the interval of Windows SharePoint Services Timer service (owstimer.exe). What happens when you use the delay activity is that the workflow is dehydrated to SQL in effect making it go to sleep. The next time that the Windows SharePoint Services Timer service runs it checks to see whether the delay has expired or not. If it has, then the processing of the workflow continues at this point. If it hasn't then this will be checked again when the Timer service runs again.
You can determine how regulary the timer service runs using the stsadm command line tool as follows:
stsadm -o getproperty -propertyname "job-workflow" -url http://localhost
To set this interval use the following stsadm command:
stsadm -o setproperty -propertyname "job-workflow" -propertyvalue "every 5 minutes between 0 and 59" -url http://localhost
Hope this helps explain the mystery !