首页 文章

为什么DBMS_Scheduler作业失败?

提问于
浏览
1

我写了一个程序和一个工作 . 从工作我正在运行程序 . 以下是创建作业的脚本

DBMS_SCHEDULER.create_job  (job_name  => 'IBPROD2.RUN_FETCH_ACCT_ALERTS',
job_type        => 'STORED_PROCEDURE',
job_action      => 'FETCH_ACCT_ALERTS',
start_date      => sysdate,
repeat_interval => 'FREQ=HOURLY;INTERVAL=2;',
enabled         => TRUE,
auto_drop       => FALSE
);

创建作业后,我正在运行以下命令来获取所有者IBPROD2的作业详细信息,其中我可以看到RUN_FETCH_ACCT_ALERTS作业的failure_count列值为1 . 手动运行时,程序FETCH_ACCT_ALERTS没有问题 .

任何人都可以帮助我解决工作失败的原因吗?我错过了什么吗?

1 回答

  • 8

    查询ALL_SCHEDULER_JOB_RUN_DETAILS视图(或者DBA等效视图) .

    select *
    from all_scheduler_job_run_details
    where job_name = 'IBPROD2.RUN_FETCH_ACCT_ALERTS'
    

    你会对 error# 特别感兴趣,它会给你一个你可以查找的Oracle错误号 . 此外, additional_info 列可能还有一些其他信息 .


    错误代码表示this

    ORA-28179:代理未提供的客户端用户名原因:代理用户未为客户端用户提供用户名 . 操作:指定客户端数据库用户名,可分辨名称或X.509证书 .

    所以这与您的安全设置有关 . 身份验证失败是有原因的 . 由于我缺乏对您的架构的详细了解(而且我不是安全专家),我无法帮助您 .

    因为我已经创建了许多作业来运行与同一所有者不同的程序 . 一切都运行成功 .

    那么这个程序与其他程序有何不同?

相关问题