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 时,它没有问题。

谁能帮我解释为什么工作失败了?我错过了什么吗?

4

1 回答 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专栏可能有一些,呃,附加信息。


错误代码的意思

ORA-28179:代理未提供客户端用户名
原因:代理用户未为客户端用户提供用户名。
操作:指定客户端数据库用户名、专有名称或 X.509 证书。

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

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

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

于 2011-12-14T10:27:36.613 回答