JOB_QUEUE_PROCESSES

dbstalker, 05 июля

Столкнулись с непонятной проблемой: задание (job) автоматически не стартует в указанное время.

На новом сервере нужно было запустить в фоновом режиме задание, которое должно стартовать через каждую минуту.

Что может быть проще? Есть пакет dbms_job, бери да создавай задание. С этого и начали:

declare
 jn number;
begin
 dbms_job.submit(jn,'begin МОЕ ЗАДАНИЕ end;',sysdate,'sysdate+1/1440');
 commit;
end;
/

Задание создается, но автоматически не стартует по заданному плану.

С помощью процедуры dbms_job.run задание выполняется. Значит, фоновые процессы не запускаются. Посмотрев на параметры инициализации этого сервера, увидели, что JOB_QUEUE_PROCESSES=0.

Выставили значение, для начала, равным 10. Все заработало.

3 комментария

Прокоментировать

Anonymous
20 ноября 2007 г. в 10:33

Про значение JOB_QUEUE_PROCESSES видел такой комментарий

"Количество одновременно запускаемых фоновых процессов Oracle ( jobs ) определяется в основном конфигурацией сервера а именно одновременным количеством процессоров (ядер) сконфигурированном для использовния БД Oracle. Приближённая оценка  job _queue_processes = 1,5 * "количество ядер для оракле".
В любом случае количество должно быть более 2.
При слишком большом значении job_ queue_processes  возможна конкуренция за процессорные ресурсы сервера (частое переключение контекста) - что снижает производительности системы в целом.
Оптимальное значение выбирается из результатов эксплуатации системы используя статистику работы операционной системы так и оракле и может существенно отличаться от оценочного как в большую так и в меньшую сторону."

Алекс
11 февраля 2011 г. в 09:11

Непонятно зачем делать количество процессов больше чем количество ядер - толкаться локтями ведь будут.

ITSOra
12 января 2012 г. в 10:38

1. Использование DBMS_JOB - маветон. В продвинутых системах переходят на SCHEDULER у него больше возможностей планировки и развитая система приоритетов.
2. Количество процессов можно делать больше чем количество ядер. Т.к. не все из них потребляют кванты CPU одновременно. Специфика работы обычных приложений (не мат. расчётов) такова что половину времени процессы стоят в WAITS по дискам или сетевым события. Это время можно рационально использовать для других джобов которым выполняться необходимо а ждать нежелательно.

 

Новый комментарий

Я не спамер: введите суму 8+4



 

От авторов блога

О Блоге - прочитай перед началом.

Задать вопрос и получить ответ - уже решено 94 вопросов

Глоссарий - список терминов и сокращений


 
 

Бизнес форум