Technical Bulletin - FI-001
Applies To: On-Premise Clients
Fischer Component: Workflow Connectivity Studio – Workflow Configuration
Issue: Workflow that is chained to a synchronous workflow hangs in a queued state
Explanation/Scenario:
To easily explain the scenario, let’s assume the max workflow limit for the server is 10 and there is only one server.
There is a parent workflow which chains to a synchronous target workflow and started 10+ instances of the parent workflow. Each instance of the parent workflow will try to launch the chained target workflow and will remain in running state until the synchronous target workflow completes. Since the queue limit is already hit by the running parent workflow instances, none of the target workflows can be executed, leaving the parent in waiting forever. This will lead to a situation that no other workflows can be executed since the queue is already in the full capacity.
We may think that setting limit on the parent workflow will solve the issue, but it won’t. The parent workflow does not need not be the same workflow, it can be 10 different parent workflows each chaining to the same or different synchronous target workflows.
The issue is because the target workflow being synchronous, the parent has to wait for the target to complete. So, someone can deploy as many parent workflows chaining to synchronous target workflows to make the queue/workflow engine freeze.
Resolution:
Due to this issue, all are alerted NOT TO use a synchronous target workflow to chain to. Be sure to re-deploy the workflow to asynchronous before being used to chain it.
With impact of the issue, our product team will be consider enforcing one or all of the below restrictions.
- Do not allow to deploy a workflow which chains to a synchronous target workflow.
- Since this scenario would not cover already deployed workflows, the workflow chainer should mark the workflow as failed if it finds chaining to a synchronous target workflow.
- Make the out-of the box system workflows which essentially needs to be chained (such as syncImport) to be deployed as asynchronous
Related Configuration Screenshots:
The below screenshots visually display the workflow that is subject to this bulletin, as well as the configuration steps.
Workflow that is chaining to another workflow.
Here is the SyncImport workflow that is chained to the above workflow.
Configuration Steps:
1. With the SyncImport workflow in the canvas on the right, you click the orange lightning bolt to get the deploy workflow screen to show.
2. Click “Deploy New” (if it is the first time deploying it) or “Redeploy”, if it had been deployed before.
Once you do this you will be presented with the below screen. The “Execution” drop down is the option that you want to set as “Asynchronous”. Then Click “OK” to complete the deployment.
3. Also note that you can change the “Execution” from the Admin UI -> Server -> Workflows. Find the workflow and then click “View Configuration”
4. Set the “Execution Mode” to “Asynchronous” and click “Update”
Comments
0 comments
Please sign in to leave a comment.