We are using JPBM with a JMS Q at the start and end of the workflow engine. So basically a workflow process instance is created when a message arrives on the incoming Q, and work is carried out for that message and when the workflow completes, a status message is placed on the outgoing Q. None of our workflows involved human intervention, they are all automated. Each workflow instance is created and executed by a worker thread that is listening on the input Q.
When we do a build to production, we have to bounce our servers, so when this happens, any processes that are in mid-workflow execution will stopped and not complete due to server shutdown. So this leaves us with a handful of process instances that did not complete.
So I have to create a way of finding all outstanding process instances that are not complete and restart them. So here are my questions:
1. Is JBPM smart enough to pick up where it left off with a given process that is already in progress but did not complete? Or do I have to determine where i left off, and restart that process at the node of choice?
2. Or should I just find the processes that has not complete and extract the relavent data and start a new process instance all together?
3. Or is there a better way to approach this issue all together?
1. I'm pretty sure it's this smart -- that's why it writes to a database. I'm intending to use it for workflows that span upwards of six months.