Some delays were observed that could range from 30 seconds to 2 hours when an IPC workflow was started by a parent workflow.
Workflows are not completing as expected and performance on the server decreases dramatically.
While observing running instances in the Server.PrccInst Table, there was a great number of instances found that exceeded the 20 thread limit configured at that time on the server. In the Server.IPC table there was an amount exceeding 100000 instances which could not be managed by the 5 IPC threads configured.
Next, investigate the issue by changing the number of main threads and IPC threads. After this has been changed, have a look at the running workflows to validate whether the IPC instances are created synchronously or asynchronously.
If the IPC instances are created synchronously, the main workflow instance will stay active until all IPC instances are completed. (Design on this can be reviewed.)
Do not change the amount of threads in big chunks, but rather increase the thread in small amounts and testing until the desired amount is reached. For example: Change main threads from 20 to 30 to 40 to 50.
After this is done, observer the active and running instances and see if the total amount of active and running instances decrease as expected.