Hi,
My use of jBPM 5.1 is a little unusual. I have very simple workflows that take a record, carry out some simple manipulation and return the result at the end of that manipulation as a Parameter Mapping. In rare circumstances a Human Task might be required in the workflow logic to present the errant record for attention by a human. So I might have 1 million records, with maybe 12 that need attention. The remainder are all dealt with by the mvel logic in the workflow and a custom workflow item.
I simply create the StatefulKnowledgeSession and call startProcess for each record. This is killing performance, profiling the method that has the startProcess call is using 99.5% of all CPU time, the rest is mostly outside the workflow and is persisting the altered record to the Db. Is there a better way?
Here is theh basic call code
| params.put("transformData", tData); |
| params.put("namedCaches", cacheQueries); |
|
| ksession.startProcess( "_" + com.example.edm.core.utils.Utils.getRefId(transformationWorkflow.getUuid()), params); |
|
| transform = tData.getValues(); |
Thx.
David