cancel
Showing results for 
Search instead for 
Did you mean: 

Version migration of a running process

dp
Champ in-the-making
Champ in-the-making
Hi,

I need to migrate a running process instance to a new process definition version.
I saw that I can achieve this directly updating the act_ge_bytearray table (bytes_ column) but I don't think this is a safe solution.

Is there a right way of doing this thing? (an APi..maybe)

Thank you for your help!
1 REPLY 1

frederikherema1
Star Contributor
Star Contributor
There is an INTERNAL command that you can run at you're own risk which does some minimal compatibility checking of old running activities: org.activiti.engine.impl.cmd.SetProcessDefinitionVersionCmd


/**
* {@link Command} that changes the process definition version of an existing
* process instance.
*
* Warning: This command will NOT perform any migration magic and simply set the
* process definition version in the database, assuming that the user knows,
* what he or she is doing.
*
* This is only useful for simple migrations. The new process definition MUST
* have the exact same activity id to make it still run.
*
* Furthermore, activities referenced by sub-executions and jobs that belong to
* the process instance MUST exist in the new process definition version.
*
* The command will fail, if there is already a {@link ProcessInstance} or
* {@link HistoricProcessInstance} using the new process definition version and
* the same business key as the {@link ProcessInstance} that is to be migrated.
*
* If the process instance is not currently waiting but actively running, then
* this would be a case for optimistic locking, meaning either the version
* update or the "real work" wins, i.e., this is a race condition.
*
* @see http://forums.activiti.org/en/viewtopic.php?t=2918
* @author Falko Menge
*/