How to Stop Running MDC Loads, Workflows and Threads
Valid for version 11.0.0+.
This article describes how to correctly terminate workflows or MDC loads. This may come useful when a load or workflow takes a long time, usually when loading a high number of records or running a complicated processing.
Stopping a Workflow
To stop a workflow:
- Navigate to the Admin Center, Running screen under the Workflows section.
- From the list of running instances, click the workflow Instance ID. A detail page of the workflow instance opens.
- Click Stop execution. The workflow will switch from RUNNING to STOPPING, and finally to the FINISHED_STOP state.
It is not possible to stop the workflow when it contains certain tasks, e.g., Run MDC Load, Run MDC Multi Load, Run DQD Processing.
It may take long to stop a workflow that calls components containing certain steps, e.g. Join, may take really long to get stopped.
Stopping an MDC Load
It is not possible to stop an MDC load operation by any means. This means that if a workflow contains the Run MDC Load task, it is not possible to stop the workflow either. The only way to stop it is to stop the server.
It is not possible to terminate a hanging MDC load or a workflow without stopping the server. An attempt to terminate the operation by killing the thread will make the whole JVM instance inoperable.
Killing a Process vs. Killing a Thread
Killing a Process
It is possible to kill operations that run as a separate process.
In Ataccama products, these are only operations started by Run DQC Process workflow task. If you start a plan or a component with this task, it will run in a separate JVM instance (separate process) and if it hangs up, you can kill the process.
Why Killing a Thread Does Not Terminate the Operation?
It is not possible to kill operations that run as threads.
The MDC loads and workflows run as a thread or several threads in a Java process. A workflow may be distributed among several threads, as well as one thread may be used for several operations. This means that killing a thread is likely to hang up the whole server and you will need to restart it anyways.
JVM threads and OS threads are two different things and killing the OS thread will hang up the server. For more information, see here.
Related Articles