Performance is bad on completing the sub process

Hi All,

I am using Flowable 6.7.2 and i am using a sub process with below configs, after the last activity it is taking more time. Can i know the reason or root cause why it is taking time to complete sub process ?

isSequential : false
isExclusive : true
isAsynchronous : false

Sriram B

Sort of depends on what the last activity is. If you have a user task that goes into an HTTP task (which is what I do a lot of in my workflows), those HTTP calls can fail or be slow to run and bog the whole thing down. You have asynchronous to false, so it won’t return control back to you until the next stopping point (either the end of the workflow or the next user task, whichever it finds first).

Assuming that your last task really just goes to the exit of the sub process, I would suspect you have an error in your wiring. Depending on the conditions set for your exit wires (aka sequence flows) from that final activity, Flowable could be getting stuck in figuring out where it needs to go next and throwing an exception.

Depending on how you are running the workflow engine, you should be able to see Flowable errors get dumped to standard output/standard output logs (if you run the SpringBoot app, it’s on the console). If you have access to the database that Flowable connects to, you can look in the ACT_HI_ACTINST table (the historical activity instance log), which tracks the exact sequence of activities your workflow takes. You should be able to see from this table, if you query based upon the PROC_INST_ID_ column (which is the ID of the process you are running), what steps the workflow tried to take after you completed the task. No entries here = I would definitely suspect a syntax error in your workflow diagram. Basic SQL syntax below

select * from act_hi_actinst where proc_inst_id_ = ;

I think that “isExclusive : true” is problem in this case. Imagine that you have 1000 subprocess so each time subprocess is ending Flowable have to lock parent process to synchronized access to it for writeing info about executed subprocess (and varaibleAggregation)