Планировщик заданий Oracle не может остановить запуск задания - PullRequest
0 голосов
/ 25 июня 2018

У нас есть проблема в одной из наших производственных баз данных, решение которой я не могу найти.Один из наших заданий застрял в состоянии RUNNING, и попытка остановить его выдает ORA-27366: job "NameSpace"."Some_Job" is not running.В запросе к таблице DBA_SCHEDULER_JOBS задание указано как RUNNING, но странно то, что Next_Run_Date больше, чем Last_Start_Date примерно на 10 минут.

Screenshot

Попытка остановить работу с помощью:

-- Stop Job
BEGIN
    DBMS_SCHEDULER.STOP_JOB(job_name => 'NameSpace.SomeJob', force => TRUE);
    DBMS_OUTPUT.PUT_LINE('Stopped Job - SUCCESS');
EXCEPTION
    WHEN OTHERS THEN
        DBMS_OUTPUT.PUT_LINE('Stopping of Job FAILED - ' ||  SQLERRM);

Дала мне следующее:

Stopping of Job - FAILED - ORA-27366: job "NameSpace"."SomeJob" is not running

Мой вопрос, как сделатьЯ действительно прекращаю работу?

1 Ответ

0 голосов
/ 25 июня 2018

Возможно попробуйте это:

DECLARE

    CURSOR Jobs IS
    SELECT OWNER, JOB_NAME, LAST_START_DATE
    FROM USER_SCHEDULER_JOBS
    WHERE JOB_NAME = 'whatever you try to hide from us'
        AND STATE = 'RUNNING';

BEGIN

    FOR aJob IN Jobs LOOP
    BEGIN
        DBMS_SCHEDULER.STOP_JOB(aJob.OWNER||'.'||aJob.JOB_NAME, FORCE => TRUE);
    EXCEPTION
         WHEN OTHERS THEN
              DBMS_OUTPUT.PUT_LINE('Stopping of Job "'||aJob.OWNER||'.'||aJob.JOB_NAME||'" FAILED - ' ||  SQLERRM);
    end;
    END LOOP;
END;

Вид DBA_SCHEDULER_RUNNING_JOBS также должен работать

...