2011-12-14 8 views
1

私は、Oracleスケジューラ・ジョブ・チェーン(11gR2の)からの例外(任意のステップの失敗)を処理するための最良の方法を見つけるしたいと思います。DBMS_SCHEDULERジョブチェーンの例外

は、私は20個のステップが含まれているチェーンを持っていると言います。チェーンがFAILUREで終了する場合は、一連の操作を行いたいと思います。これらのアクションは、個々のステップではなく、そのチェーン固有のものです(各ステップの手順は、スケジューラーの外でも他のチェーンでも使用できます)。 11gR2のに

おかげで、私はチェーンのFAILUREの設定電子メール通知をできるようになりましたが、これは1つだけ私が行う必要があり、いくつかのアクションなので、私のためにその部分的にしか解決策。

私が考えることができるのは、FAILUREステータスで終了したチェーンの最新のジョブが見つかると、別のポーリングジョブが毎分チェーンのステータスをx分確認して失敗アクションを開始することだけです。しかし、これは最高のイモでハックです。

与えられたジョブ・チェーンのための例外を処理するための最良の方法は何ですか?

おかげ

答えて

1

は、一般的には、ジョブの例外を処理するための最も柔軟な方法は、ジョブの例外監視手順を使用して、ジョブステータスの変更時にイベントを生成するジョブを定義することです。ジョブ例外監視手順では、ループ内のscheduler event queueを監視し、定義した方法でイベントに反応する必要があります。そう

は、鎖中に約一人ひとりのジョブステップのための障害ステップを作成する必要が重荷を取り去ります。これは非常に強力なメカニズムです。イベントベースのスケジューリングのin the book is a complete scenario:時間の不足によって

。後で1つを掘り起こすだろう。

+0

ありがとうございます。ですから、Oracle AQを使用してチェーンから障害イベントを発生させ、そのキューを使用して個別のイベントベースのジョブをセットアップします。あまり経験はありませんが、簡単な例がありますか?再度ありがとう – tbone

+0

こんにちは、コメントを参照してください。後で実行する必要があります! –

+0

私にとってラッキーです、彼らがこの本のために与える1つの自由な章はイベントです!私は本からの例をコピー/貼り付けません、そしておそらくまだ電子ブックを買って、よく見えます。ありがとう@ik_zelf、皆さんのための簡単な例があれば、それでも大いに感謝しています。 – tbone