--最多同時運行的JOB個數;如果太小,JOB就排隊等待;如果為0,就沒有JOB會被執行。
SQL> show parameter job_queue_processes
NAME??????????????????????????????????????? TYPE????????? VALUE
--------------------------???????? ----------??? -------------
job_queue_processes???????? integer ?? ????? 10
--一個什么也不做的SP
CREATE OR REPLACE PROCEDURE mytest
IS
BEGIN
?? ?NULL;
END;
--一個往表里寫數據的SPCREATE OR REPLACE PROCEDURE mytest
IS
BEGIN
?? ?insert into test_table values(...);
END;
--定時調用SP,10秒(86400秒=1天)SQL> VARIABLE job_id NUMBER;
SQL> BEGIN
??????????
-- :job_id中的冒號表示冒號后面的是變量,類似SQL Server的@?????????? DBMS_JOB.SUBMIT(:job_id, 'mytest;', sysdate, 'sysdate + 10 / 86400') ;
?????????? COMMIT;?
--記得一定要commit哦?????????? END;
--查看剛才生成的Job IDSQL> set serveroutput on
SQL> execute dbms_output.put_line(:job_id)?
--這里倒是不需要commit,直接execute就好了318--查看所有Job?select * from user_jobs;
--刪除JobSQL> BEGIN
?????????? DBMS_JOB.REMOVE(123); --123是Job ID
?????????? COMMIT;
?????????? END;
如果Job由于某種原因未能成功運行,Oracle將重試16次,之后如果還未能成功運行,將被標記為Broken。
http://www.tkk7.com/Jcat/archive/2009/12/17/306315.html
從10g開始,DBMS_SCHEDULER 逐步會替換掉 DBMS_JOB
DBMS_JOB has been around forever, and now it is deprecated. Although DBMS_JOB still exists in 10g and 11g, but only for backward compatibility. No new features are being added to dbms_job and you will likely quickly run into its limitations. Oracle recommends the use of DBMS_SCHEDULER in releases 10g and up. DBMS_SCHEDULER is a much more robust package and fully-featured than DBMS_JOB. To use the DBMS_SCHEDULER package a user must be granted the CREATE JOB privilege.
After replace DBMS_JOB with DBMS_SCHEDULER for all jobs successful, the job_queue_processes parameter can now be set to zero.
SQL> alter system set job_queue_processes=0;
posted on 2009-04-16 15:42
Jcat 閱讀(775)
評論(0) 編輯 收藏 所屬分類:
Database