handle async message jobs after process instance deletion
---------------------------------------------------------
Key: JBPM-2275
URL:
https://jira.jboss.org/jira/browse/JBPM-2275
Project: JBoss jBPM
Issue Type: Task
Security Level: Public(Everyone can see)
Components: Runtime Engine
Reporter: Tom Baeyens
Assignee: Tom Baeyens
Priority: Critical
Fix For: jBPM 4.0
when a process instance ends, a delete process instance synchronization is issued.
but potentially this last transaction also schedules some async continuations or async
event listeners. as long as those messages are not processed the jobs should not be
deleted.
currently they are deleted: in HibernatePvmDbSession.deleteProcessInstance :
// delete remaining jobs for this process instance
List<JobImpl> jobs = findJobs(processInstanceId);
for (JobImpl job: jobs) {
session.delete(job);
}
In case of the normal process instance ending, the process instance is deleted because of
the synchronization. In that case, only timers should be deleted there. And a mechanism
should be put in place so that the process instance is only deleted after the last async
message for that execution has been processed.
In case a process instance is deleted as an admin operation, all the jobs (incl messages)
should be deleted.
At least investigate and clearly document in which cases this goes bananas
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: