What is the main difference between end node and terminate node from process/architect perspective like archive, data management/ engine?
PS: we all know the implementation that if terminate node execute then it will close any in progress node in a process unlike end node.
Discussion posts and replies are publicly visible
There is no difference in regards to data management.
The only difference is that processes that use terminate will usually end up finishing sooner (or at least are less likely to hang around unfinished), so it could have an indirect effect on your memory usage.
In general I'd recommend using terminate nodes on most process models (unless you explicitly have a reason not to) just to make it less likely that you end up with a bunch of abandoned process models. Terminates are also easier for troubleshooting, because if you end up creating multiple active flows as part of starting / restarting nodes, then you don't need to ensure that all of your active flows finish.
So its just a best practice, there is no differenceHere is once scenario. I want understandThere is a parent process A that have a child process C that have end node- On Instance there is node error on child process and after fixing it and re running node and on child process completion the parent process flow does not move ahead- But if child process C have terminate node then on re running the errored node and on child process completion, the parent process flow moves ahead, WHY?????
The parent process will progress as the child process ends. "ends" is defined by: "There are no active nodes anymore". A terminating end event will take care of this and complete any active or failed node.
so it means, end node does not actually mark a process end which terminate node does, right?
Hm ... yes. The fine detail here is, that it is not about the process behaving differently, but all remaining active nodes are completed. And THAT makes the process complete and the parent progressing.
So conclusion is if we have this kind parent child sub-process scenario, we must give terminate node in child process else if a process is stand alone then it is not mandatory to have terminate node.Am I right?
There is no "must" and no "mandatory" here. You need to understand what it does, and then use it to fit your requirements.
Peter Lewis described it pretty well.
Probably then it must or mandatory based on scenario.Thanks for the explanation
Thanks for detailed explanation
Hi Peter,
Is there any way we can restart or re activate the terminated process? One of our process models is set as delete instances after 14 days of completion and the instance is completed with the terminated end node. But now we want one of the instances not to get deleted. Is it achievable?
I think the safest way would be to modify that process instance and add a scheduled empty script task that then goes to a terminating end event. This way you can keep that process alive as long as you need it.
What is the reason for this?