2011-12-14 51 views
1

我想找到處理來自Oracle調度程序作業鏈(11gR2)的異常(任何步驟失敗)的最佳方法。dbms_scheduler作業鏈例外

說我有一個包含20個步驟的鏈。如果在任何時候鏈條都以失敗告終,我想要採取一系列行動。這些行爲是特定於該鏈的,而不是單個步驟(每個步驟的過程可能在調度程序之外或其他鏈中使用)。

感謝11gR2,我現在可以設置一個電子郵件通知FAILURE鏈,但這只是我需要做的幾個動作中的一個,所以它只是我的一個部分解決方案。

我唯一能想到的是有另一個輪詢作業每隔x分鐘檢查我的鏈條的狀態,並在看到鏈條的最新作業以FAILURE狀態退出時啓動失敗操作。但是,這是一個最好的imo黑客。

處理給定工作鏈的異常情況的最佳方法是什麼?

感謝

回答

1

最靈活的方式來處理一般工作的例外是使用工作異常監控程序,並定義作業後產生的工作狀態改變的事件。工作例外監測程序應該在循環中觀察scheduler event queue,並以您定義的方式對事件做出反應。

這樣做會消除必須爲鏈中的每個工作步驟創建失敗步驟的負擔。這是一個非常強大的機制。

由於缺少時間:in the book is a complete scenario基於事件的調度。以後會挖一個。

+0

謝謝。所以我會使用Oracle AQ並從鏈中引發失敗事件,然後使用該隊列設置單獨的基於事件的作業?沒有太多的AQ經驗,你能舉一個簡單的例子嗎?再次感謝 – tbone 2011-12-15 12:06:39