有哪些原因会导致oracle的job自动停止运行?
如果这个job调用的存储过程出错达到一定次数的话会导致job的自动停止吗?这个次数可以设置吗?
请赐教,谢谢!

解决方案 »

  1.   

    用dbms_job.remove(job in binary_integer);把作业移除。如果删除的作业正在执行,不会受到影响,执行完毕。
    用dbms_job.broken(job in binary_integer, broken in boolean,next_date in date default sysdate);这个必须在作业执行之前进行标记。否则当作业正在运行时标记,会重置作业为正常状态,之前的标记无效。
    (转)
    當一個job咝袝r返回一個error時﹐oracle會再次設法執行它﹐第一次嘗試是在1分鐘后﹐第二次是2分鐘之后﹐第三次是4分鐘之后﹐依此類推。每次嘗試的周期加倍﹐直到下一次的咝袝r刻來到﹐又再次嘗試﹐當嘗試執行失敗16次時﹐oracle自動標示此job為broken ,不再執行此任務。
    注意﹕
    當一個job 的執行周期是3分鐘執行一次﹐而你設參數job_queue_interval=600(10分鐘)﹐而你只有一個SNP進程的話﹐你的這個JOB將每10分鐘執行一次﹐失敗16次后將被標示為broken。因為
    你的job的執行周期被SNP進程的喚醒周期限制。哪么每次嘗試的時間間隔成倍的情況不會出現。