Removing/stopping previous deployments

Hello,

I have created a simple heartbeat process which fires every 5 minutes. Examining the database I noticed that processes from the previous deployments were still getting started.

Overall for my application I don’t want to run processes from previous versions of deployments.

I tried to solve this particular issue by stopping or suspending the process instances from previous deployments but that seems to result in optimistic lock exceptions.

Is there some way to

  • Stop previous deployments from being deployed
  • Migrate process instances before the process engine begins executing
  • Stop process instances from being deployed?

On my event timer I also tried to configure my start event with:

        <startEvent id="startTimer" name="Timer starting heartbeat">
            <extensionElements>
                <flowable:startEventCorrelationConfiguration><![CDATA[storeAsUniqueReferenceId]]></flowable:startEventCorrelationConfiguration>
            </extensionElements>
            <timerEventDefinition>
                <timeCycle>R/PT30S</timeCycle>
            </timerEventDefinition>
        </startEvent>

But that doesn’t seem to do what I hope it does when I cause new deployments to be created by changing the process configuration.

You have a couple of options.
Obviously you could undeploy the previous version before deploying the new one. Likely this wont work for you because the instances may be long running and you can’t undeploy the app with running instances.
The second option is to remove the timer job from previous deployments.
You can do you from the admin application, via the REST API below:
Flowable Process Swagger Documentation

Or if you absolutely must, you can remove the row from the act_ru_timer_job table.
Once the timer job is removed, currently running instances will complete, but new instances of that deployment will not be created.