在ORACLE上创建一JOB,脚本如下:
begin
sys.dbms_job.submit(job => :job,
what => 'BEGIN 
PK_SETTLE_INST.SP_START_ACC_JOB;
END;',
next_date => to_date('06-09-2009 03:30:00', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'trunc(sysdate)+1+3.5/24');
commit;
end;该JOB在正常运行3天后,第四天发现JOB停止了,没有执行,手动执行RUN,没有问题,请问这个现象怎么造成的?怎么解决?
还有我做了一个测试,创建了一个15:30将要执行的JOB,在15:25的时候我运行一个繁重的运算任务,到15:30还没有结束,此时该JOB也没有执行,在繁重任务执行完后,已经过了15:30,但此后该JOB也一直没有被重新唤起执行,不知道为什么?

解决方案 »

  1.   

    你job执行一次需要多久时间?你设置的job执行间隔时间是多久?
      

  2.   

    如果这段程序是从脚本中copy来的,说明这个JOB已停用了一个多月了。改了下:begin 
          sys.dbms_job.submit(job => :job, 
          what => 'PK_SETTLE_INST.SP_START_ACC_JOB;', 
          next_date => to_date('24-10-2009 03:30:00', 'dd-mm-yyyy hh24:mi:ss'), 
          interval => 'trunc(sysdate)+1+3.5/24'); 
          commit; 
    end; 
      

  3.   

    job执行一次不超过10分钟,这个JOB设置在每日的凌晨3:30执行,连续执行了几天没问题,今天来看发现今天凌晨没有执行,直接调用DBMS_JOB.RUN执行没有问题的。不知道为什么会停止,在这期间重启过一次数据库。别的操作没有做过。
      

  4.   

    我也碰到过这样的问题.你改一下参数.job_queue_processes 改大点