I have a problem where process is stuck in parallel gateway join step waiting execution (task) that is already cancelled by boundary timer
<blockcode> [+] Parallel fork / | \ T1 T2 T3 (T3 has a boundary timer that executes a service task when it is due) \ | / [+] Parallel join –> stuck here
</blockcode>
The problem is the reminder boundary timer "Cancel Activity" was set to true so when it is due the T3 task is cancelled/deleted and the process is stuck in join state.
I have fixed the definition by set "Cancel Activity" to false but there are several processes running in production that are stuck on Join step.
Is there any workaround to at least continue the running processes ?
> Is there any workaround to at least continue the running processes ?
You could try to 'fix' the execution tree yourself, by looking at the processes that are doing the right behaviour, and fixing, using sql, the execution rows to move it past the join. Do not that this is not an easy task, especially if this is production :s
If the process is simple enough as you describe (only joining two tasks) it should be only that. It is 'safe' in the sense that you can always go in the db again and fix it manually 😉 Activiti does not cache anything around executions or runtime state, so that won't cause a problem.
To be sure you could write a unit test that executes the new process, and see what database differences there are with the old version.