When someone cancels a process from the ACTIVE tasks in the system monitor, what actually happens is that the system creates a record on a specific table; systaskkill to be exact.
Every process that runs through the system monitor is supposed to break from whatever work it’s doing every so often and check to see if there is a systaskkill record for it to cancel–if so, the process does whatever the developers want it to do to back out/stop.
Situation 1:
What happens when the process is terminated (the _proapsrv in E905) that was tied to that ACTIVE task while the process is in the system monitor? Literally nothing, so there isn’t a process there anymore to check to see if the systaskkill record is there. One needs to restart their appserver processes to address.
Situation 2:
What happens when the process is stuck in an endless loop due to a data related problem? e.g. a BOM where the parent part is also a child of itself (for example). Same actual outcome as the first situation–the program doesn’t break from it’s cycle to check to see if a cancel request was issued.
Situation 3:
What happens if a specific process doesn’t have the logic to check to see if there is a cancel request? Same as situation 1 and 2, and there are a few of them that behave this way in E9.05–I don’t recall what they are at the moment.
Situation 4:
What happens if you have a process that is executing happily, it breaks every so often to check for a cancel request, there is code for that process to actually cancel, and it actually sees a cancel request? Then, and only then, will canceling it from the system monitor work.
Situation 5:–inferred, easy to test for those that are curious
What happens if you are running a massive report that takes hours and hours to render on the SSRS side, and you submit a request to cancel it after the ERP part of the process but before SSRS completes? It will probably cancel from the system monitor, but, the processing on the SSRS side will continue (I’m guessing, I haven’t checked).
The cancel request is a “suggestion” for the process, if it is there to accept it and knows how to and what to do when it accepts it, to let it know that it would be nice for it to stop please and thank you. There are lots of reasons why a specific process can’t–some of them can’t by design due to the nature of what that specific process does. The cancel request isn’t the system taking a hammer to it to get it to stop, which is what a lot of people believe it really is.
When the taskagent/processserver processes restart, it should look for any systaskkill records and then mark any tasks that were on the ACTIVE tasks tab as CANCELLED–what you are running into could be a bug in the version of ERP that you are on.