When debugging a workflow project that contains Wait For All Workflow Components(Merge), Wait For Selected Workflow Components(Merge) or the Embedded Merge Components, the merge components do not wait for all Dialog Workflow components / branches of execution to complete before proceeding. This can result in duplicate processing to occur in components following the merge component or premature completion of the workflow.
It is important to note that wait components do not wait for any component other than dialog workflow components in the flow.
Review of the debugger logs shows that execution threads are being force removed from the process immediately before the merge component completes.
The default configuration for the debug.workflow- exchange has a short cache time to live configuration which causes the threads of the process to be force deleted from the cache causing the merge to complete because there are no longer any threads to process.
Pre-requisites: Workflow Solution 7.0 SP3
Note: This fix requires the new licensing level generally available in 7.0 SP3 which enables the Add Exchange feature. Prior to 7.0 SP3 enterprise level licensing would be needed.
Please see the attached document for instructions with included screen shots.
This issue is corrected in Workflow 7.1. and (5/10/2011) 7.0 MR4
Workflow Solution 7.0, 7.0 SP1, 7.0 SP2, 7.0 SP3