Preventing interactive workflow timeout

Build 1501 on 14/Nov/2017  This topic last edited on: 1/Sep/2014, at 11:23

While executing an interactive workflow in a browser window, if you close it, the workflow remains "active" in memory.

For that reason, a cleanup process checks continuously if there are workflows in memory for more than the value of their TimeOut parameter, and if so, kill them.

The problem is that sometime, the execution of a workflow can be very long, especially when it is needed to upload big files or write a very long article.

The solution adopted so far was to increase the value of the TimeOut of the workflow, but it's not very efficient as it may be difficult to find a correct value. Setting a high value can cause many workflows to remain unnecessary alive in memory (which can also affect performances).

In order to resolve this problem, while an interactive workflow is being executed (the WFForm.aspx is opened), then its timeout is automatically reset 30 seconds before either the workflow itself or the browser session expires.

In such a way, neither the workflow nor the browser session can expire anymore while the WFForm.aspx page is opened.

If the WFForm.aspx page is closed before the workflow terminates, then it will be "cleaned" from memory after the period indicated by the TimeOut of the workflow.

So you don't need anymore to configure big values for the workflow TimeOut ; on the contrary, it is better to have a small value.

However, it's not recommended to set a workflow timeout to less than one minute. The default value for workflow timeout (10 minutes) is reasonable.

Web session keep-alive

It can be enabled for very long executing workflow (like, for example, the workflows that generate reports).

keepalive

The workflow's test page shows the configured IIS timeout in minutes.

If the web session keep-alive is enabled, the browser sends to the web server the keep-alive requests to make the session endless.

The WF command of the do.ashx is called with the KA (KeepAlive) parameter and the value (in seconds) of the keeping-alive timing (note that this value is a third of the session timeout).

See also

Preventing http timeout

Preventing browser session timeout

Preventing cmd4 timeout

Preventing login timeout in client applications