0

我有一个 OEM 工作挂了几天,不幸的是没有启用日志记录,所以我想知道如何解决这个问题?

DECLARE
  CHECK DATE;
BEGIN
  CHECK := NULL;
  PROCESS_MAIL_TOTAL(
    CHECK => CHECK
  );
END;

PROCESS_MAIL_TOTAL 是 PROCESS_MAIL_JOB OEM 作业中使用的程序。

create or replace PROCEDURE PROCESS_MAIL_TOTAL
  (
    CHECK IN DATE )
AS
  M_CHECK DATE;
  M_DATE_FORMAT VARCHAR2(20);
BEGIN
  M_DATE_FORMAT := 'YYYY-MM-DD';
  IF ( CHECK IS NULL ) THEN
    M_CHECK    := to_date(TO_CHAR(sysdate - 1, M_DATE_FORMAT), M_DATE_FORMAT);
  ELSE
    M_CHECK := to_date(TO_CHAR(CHECK, M_DATE_FORMAT), M_DATE_FORMAT);
  END IF;
  DELETE
  FROM MAIL_TABLE
  WHERE mail_process_dt = M_CHECK;
  INSERT INTO MAIL_TABLE
  SELECT COUNT(*) total
  FROM MAILBOX
  WHERE MESSAGE LIKE '%Invalid%';
  COMMIT;
EXCEPTION
WHEN OTHERS THEN
  dbms_output.put_line('Its Broke!');
END PROCESS_MAIL_TOTAL;

OEM 错误:

当我尝试运行挂起的工作时:

java.sql.SQLException: ORA-27492: unable to run job "PROCESS_MAIL_JOB": scheduler unavailable Check the log/trace file for more Details
4

2 回答 2

0
    NUM                  NAME   TYPE    VALUE   DISPLAY_VALUE   ISDEFAULT   ISSES_MODIFIABLE    ISSYS_MODIFIABLE    ISINSTANCE_MODIFIABLE   ISMODIFIED  ISADJUSTED  ISDEPRECATED    ISBASIC DESCRIPTION UPDATE_COMMENT  HASH
      1     job_queue_processes 3         0                 0     FALSE              FALSE                  IMMEDIATE       TRUE                    FALSE   FALSE   FALSE   FALSE   maximum number of job queue slave processes     1663833312
于 2013-09-24T14:14:05.373 回答
0

尝试:

select * from v$parameter where upper(name) = 'JOB_QUEUE_PROCESSES';

JOB_QUEUE_PROCESSES "value" 可能设置为 0。我相信您需要一个更改系统来更改它,例如:alter system set job_queue_processes = 10;从 ORA 错误代码 27492:

如果调度程序未处于活动状态,则无法发出当前会话设置为 false 的作业。检查 job_queue_processes 参数的值,发出 dbms_ijob.set_enabled(true),数据库处于升级/迁移模式,数据库处于数据保护模式,或调度程序属性 SCHEDULER_DISABLED 设置为 TRUE

在当前会话中运行作业或激活调度程序

于 2013-09-19T15:23:01.807 回答