oracle定時任務失效


發現系統數據沒有更新,查看oracle定時任務,估計沒有執行。

發現next_date變成了4000/1/1 ,broken被選中。

select * from user_jobs發現該任務失敗次數達16次。

查得如下原因:

  當任務運行失敗時,SNP過程在1分鍾后將再次試圖運行該任務。如果這次運行又失敗了,下一次嘗試將在2分鍾后進行,再下一次在4分鍾以后。任務隊列每次 加倍重試間隔直到  它超過了正常的運行間隔。在連續16次失敗后,任務就被標記為中斷的(broken),如果沒有用戶干預,任務隊列將不再重復執行。

  當將一個任務的next_date參數賦值為null時,則該任務下一次運行的時間將被指定為4000年1月1 日,也就是說該任務將永遠不再運行。在大多數情況下,這可能是我們不願意  看到的情形。但是,換一個角度來考慮,如果想在任務隊列中保留該任務而又不想讓其 運行,將next_date設置為null卻是一個非常簡單的辦法。

 

手動test該定時任務,發現了報錯原因,是插入ipv6的ip失敗,將其刪除。將定時任務恢復,重新執行,執行成功則失敗次數將重置0.

將任務停掉的方法:

  dbms_job.broken(v_job,true,next_date);        //停止一個job,v_job可寫job號,里面參數true也可是falsenext_date(某一時刻停止)也可是sysdate(立刻停止)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM