我想从Oracle调度程序作业链(11gR2)中找到处理异常(任何步骤失败)的最佳方法 .
假设我有一个包含20个步骤的链 . 如果在任何时候链条退出失败,我想做一系列的行动 . 这些操作特定于该链,而不是单个步骤(每个步骤的过程可以在调度程序之外或其他链中使用) .
感谢11gR2,我现在可以在FAILURE of chain上设置电子邮件通知,但这只是我需要做的几个动作中的一个,因此它只是我的部分解决方案 .
我唯一能想到的是让另一个轮询工作每隔x分钟检查一次我的链条状态,并在看到链条的最新作业退出FAILURE状态时启动失败动作 . 但这至少是一个黑客攻击 .
处理给定工作链的异常的最佳方法是什么?
谢谢
1 回答
一般来说,处理作业异常的最灵活方法是使用作业异常监视过程并定义作业以在作业状态更改时生成事件 . 作业异常监视过程应该在循环中观察
scheduler event queue
并以您定义的方式对事件做出反应 .这样做可以减轻必须为链中的每个工作步骤创建失败步骤的负担 . 这是一个非常强大的机制 .
由于时间不够:in the book is a complete scenario基于事件的调度 . 稍后会挖一个 .