I am not much sure about jBPM 4, but in jBPM 3 code I am using. I can suspend and resume a process by using the following API's on ProcessInstance Class
org.jbpm.graph.exe.ProcessInstance public void suspend() suspends this execution. This will make sure that tasks, timers and messages related to this process instance will not show up in database queries. public void resume() resumes a suspended execution. All timers that have been suspended might fire if the duedate has been passed. If an admin resumes a process instance, the option should be offered to update, remove and create the timers and messages related to this process instance.
how about following API
If I useexecutionService.endProcessInstance(id, Execution.STATE_SUSPENDED), there will occur an Exception:
"invalid end state: suspended"
I think we need find another way.