Проблема: На сервере нужно запустить задание(job), которое будет выполняться через определенный промежуток времени. После создания задания (job’а) в Oracle оно не стартует в указанное время, при этом если выполнить вручную — все прекрасно работает.
Инструментарий: Oracle 11
Решение: Для ручного выполнения задания (job’а) в Oracle я использовал стандартный команду:
begin
dbms_scheduler.run_job (job_name => '<Название>');
end;
/
И все работает как часы. Но стоит это же задание запланировать чтобы оно выполнялось в определенное время — ничего не выполняется.
Для просмотра параметров на сервере воспользуемся запросом:
select * from v$parameter
Но нас интересует не вся информация, а параметр JOB_QUEUE_PROCESSES. Для выбора информации отдельно по этому параметру воспользуемся запросом:
select * from v$parameter where upper(name) = 'JOB_QUEUE_PROCESSES';
В описание написано что JOB_QUEUE_PROCESSES — максимальное число процессов, разрешенных для выполнения заданий в фоне.
В нашем случае этот параметр равняется нулю (в результате выборки столбец Value = 0).
Изменим значение данного параметра с помощью операции:
alter system set job_queue_processes = 10;
PS: Все заработало.