DBMS_SCHEDULER链作业未发送失败的电子邮件

时间:2019-08-27 14:52:59

标签: oracle oracle11g oracle12c scheduler chain

这与过去的here有关。

这正在11和12中进行测试,但最终只会在12中进行。

我有一整套程序。以前,该作业是通过指向单个过程的作业将其制作为预定作业的,该过程依次调用了其余程序。现在,它已转换为链式作业。

当设置要发送失败和成功消息时,我的连锁工作只会发送成功电子邮件。当将其设计为计划作业时,由于某种原因(有很多)而失败时,将发送失败的电子邮件。

为了进行测试,我提出了以下情况以失败

DBMS_SCHEDULER.CREATE_PROGRAM (
PROGRAM_NAME    => 'FAIL_1',
PROGRAM_TYPE    => 'PLSQL_BLOCK',
PROGRAM_ACTION  => 'BEGIN
                    SELECT POSITION FROM DUAL;
                  END;',
ENABLED         => TRUE,
COMMENTS        => '');

DBMS_SCHEDULER.DEFINE_CHAIN_STEP (
CHAIN_NAME      => 'HR_LOADER_CHAIN',
STEP_NAME       => 'F_1',
PROGRAM_NAME    => 'FAIL_1');

DBMS_SCHEDULER.DEFINE_CHAIN_RULE (
CHAIN_NAME  => 'HR_LOADER_CHAIN',
CONDITION   => '"TRUE',
ACTION      => 'START "F_1"',
RULE_NAME   => 'FR_1',
COMMENTS    => 'FAIL RULE 1');  

DBMS_SCHEDULER.DEFINE_CHAIN_RULE (
CHAIN_NAME  => 'HR_LOADER_CHAIN',
CONDITION   => '"F_1" FAILED',
ACTION      => 'END',
RULE_NAME   => 'FINISH2',
COMMENTS    => '');

DBMS_SCHEDULER.DEFINE_CHAIN_RULE (
CHAIN_NAME  => 'HR_LOADER_CHAIN',
CONDITION   => '"F_1" STOPPED',
ACTION      => 'END',
RULE_NAME   => 'FINISH3',
COMMENTS    => '');

如果该步骤失败,则不会发送任何电子邮件,并且链将继续运行,直到我杀死它为止。日志确实显示该步骤已运行并且失败。

这是错误消息,因此程序代码将失败。

  

从第1行开始的错误-   开始                       从双重选择位置;                     结束;   错误报告 -   ORA-06550:第2行,第28列:   PL / SQL:ORA-00904:“位置”:无效的标识符   ORA-06550:第2行,第21列:   PL / SQL:忽略了SQL语句   06550。00000-“%s行,%s列:\ n%s”   *原因:通常是PL / SQL编译错误。   *动作:

万一它很重要,这就是我配置电子邮件的方式

Begin
    dbms_scheduler.set_scheduler_attribute('email_server','Appmail.domain');
    dbms_scheduler.set_scheduler_attribute('email_sender','my-application@email.domain');
End;

BEGIN
    DBMS_SCHEDULER.add_job_email_notification (
        job_name    => 'my_CHAIN_JOB',
        recipients  => 'Fering@email.domain',
        events  => 'job_failed, job_succeeded' );
END;

该行为似乎是当我的FAIL_1程序执行其工作(失败)时,该链中的该步骤在运行日志中被标记为失败,然后该链刚刚挂起。实际上,我必须运行代码才能停止锁定。

我尝试对失败和停止条件进行“完成”步骤,但均未响应该事件。

更新:从未解决链式电子邮件无法正常工作的问题。需求发生了变化,我们最终回到了定期安排的工作,可以根据需要处理电子邮件。

0 个答案:

没有答案
相关问题