Hi everyone
I have an issue in my process, I have a Process with a call activity which has a boundary conditional event. when the i try to submit the user task in the child process, i get java heap memory space error and the camunda engine will be crached ! does anyone know why this would happen?
If I had to guess, I would expect that it’s because there’s no variable event controlling the interruption… So it interrupts the activity, which it then immediately creates a new one, which is immediately interrupted, and then … boom.
Try it with “update” (without the quotes) in the “Variable Event” box of the Boundary Conditional Event.
Welcome to the world of infinite looping! HAHAHAHAHA
What is probably happening is that in your Boundary event, you defined that while the variable “repeat” == “on”, you will repeat the call activity, however you need to define the validation condition and the “variable events”.
A conditional boundary event when the Variable events field is not set, it validates and executes at each step… that is, your event is validating and executing continuously and infinitely, because when it calls the call activity, it sets “repeat” as “on”, and validates again, and setta repeat as on, and so on infinitely.
I believe that if you put “create” in the “variable events” field of your condition, it will solve it! So its validation will only happen when the Repeat variable is created.
Below is a part of Camunda’s official documentation and oficial camunda docs webpage link, perhaps explaining it in better words than mine. Conditional Events | docs.camunda.org.
I don’t know the need for this modeling of yours, but I would do it differently…
Main process:
ChildProcess:
That way you don’t run the risk of bursting the heap.
Because the variable will be created only after the call activity exits and validation will only occur after its instance leaves the subprocess and passes through the gateway.
Remembering that if you leave it like this, your “repeat” will always be ON… so I suggest creating some logic for it to work properly.
Hi Hope You are doing well
as you know there is not any loop in the process model because we have a wait state (user task) in the child process. by the way, i set create in variable event section of conditional event the same story had been occured.
Indeed this is just a sample and is not a real production project. I want to know why camunda engine does not handle this situation and why this strange behaviour has happend!
In your process model, the first activity you have in the child process is a script task, and this script task is the one that sets the “Repeat” variable to “on”.
When this happens, it automatically activates your “Boundary event”.
If you want, you can try to do a test by putting a user task just to lock your process between the boundary event and the call activity, so when your boundary event is activated, you can be sure of it and you will lock your process with this user task and you can better understand the behavior, looking at the current state in the parent process, and in the child process, like my example below:
Thanks @WilliamR.Alves
The bpmn model you provided helped me to get whats going on. Every time i completed verify boundary loop user task, again this task was in my task list