我们在Oracle 11g R2中使用DBMS_PARALLEL_EXECUTE,如下所示
预定作业运行一个过程,该过程使用程序包DBMS_PARALLEL_EXECUTE创建并运行并行任务。有时预定的作业挂起,需要重新启动。我的问题是如何正确杀死执行并行任务? 使用DBMS_PARALLEL_EXECUTE.DROP_TASK或DBMS_PARALLEL_EXECUTE.STOP_TASK过程没有帮助 - 我可以看到任务进程的会话(它创建与DBMS_PARALLEL_EXECUTE.RUN_TASK的参数parallel_level相同数量的新进程)。杀死预定作业(dbms_job.remove)和终止作业会话一样 - 任务会话仍然可用。
答案 0 :(得分:0)
我自己找到了解决方案。我对dbms_job包和相关视图dba_jobs_running感到焦虑。我发现dbms_job是折旧包。 Oracle(11g)在运行并行任务的作业时使用dbms_scheduler包。它们在dba_scheduler_running_jobs中可见,可以由dbms_scheduler.stop_job停止。此操作还会停止上级作业和所有相关会话。并行任务获取状态崩溃。