`
anreddy
  • 浏览: 100481 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Oracle Job不能正常运行的问题解决思路

阅读更多

JobsNotExecuting Automatically

Symptoms

Jobs arenolonger executing automatically.

Ifforced(execdbms_job.run(<enter here jobnumber>);),theseexecutefine.

Cause

Tryingthemost common reasons why jobs don't execute automatically and as scheduled:

 

1) Instance in RESTRICTED SESSIONS mode?

Check if the instance is in restricted sessions mode:

select instance_name,logins from v$instance;

If logins=RESTRICTED, then:

alter system disable restricted session;

^-- Checked!

 

 

2) JOB_QUEUE_PROCESSES=0

Make sure that job_queue_processes is > 0

show parameter job_queue_processes

^-- Checked!

 

 

3) _SYSTEM_TRIG_ENABLED=FALSE

Check if _system_enabled_trigger=false

col parameter format a25

col value format a15

select a.ksppinm parameter,b.ksppstvl value from x$ksppi a,x$ksppcv b

Where a.indx=b.indx and ksppinm=’_system_trig_enabled’;

^-- Checked!

 

 

4) Is the job BROKEN?

select job,broken from dba_jobs where job=<job_number>;

If broken, then check the alert log and trace files to diagnose the issue.

^-- Checked! The job is not broken.

 

 

5) Is the job COMMITted?

Make sure a commit is issued after submitting the job:

DECLARE X NUMBER;

BEGIN

SYS.DBMS_JOB.SUBMIT

(

job => X

,what => 'dbms_utility.analyze_schema

(''SCOTT'',''COMPUTE'',NULL,NULL,NULL);'

,next_date => to_date('08/06/200509:35:00','dd/mm/yyyy hh24:mi:ss')

,no_parse => FALSE

);

COMMIT;

END;

/

If the job executes fine if forced (i.e., exec dbms_jobs.run(<job_no>);), then likely a commit

is missing.

^-- Checked! The job is committed after submission.

 

 

6) UPTIME > 497 days

Check if the server (machine) has been up for more than 497 days:

For SUN , use 'uptime' OS command.

If uptime>497 and the jobs do not execute automatically, then you are hitting bug 3427424

(Jobs may stop running after 497 days uptime) which is fixed in 9206 and A102

^-- Checked! The server in this case has been up 126 days only

 

 

7) DBA_JOBS_RUNNING

Check dba_jobs_running to see if the job is still running:

select * from dba_jobs_running;

if the job is running,check the next two view v$access and v$locked_object to

find out what resources which the job is using are locking by other process.

^-- Checked! The job is not running.

 

 

8) LAST_DATE and NEXT_DATE

Check if the last_date and next_date for the job are proper:

select Job,Next_date,Last_date from dba_jobs where job=<job_number>;

^-- NEXT_DATE is porper, however LAST_DATE is null since the job never executes automatically.

 

 

9) NEXT_DATE and INTERVAL

Check if the Next_date is changing properly as per the interval set in dba_jobs:

select Job,Interval,Next_date,Last_date from dba_jobs where job=<job_number>;

^-- This is not possible since the job never gets executed automatically.

 

 

10) Toggle value for JOB_QUEUE_PROCESSES

Set job_queue_processes=0, wait some time and then and set it back to the original value:

alter system set job_queue_processes=0 ;

--<Wait for some time>

alter system set job_queue_processes=4 ;

Ref: Bug 2649244 (fixed by: 9015,9203,A000)

^-- Done but did not help

 

11) DBMS_IJOB(Non-documented):

Last ditch effort.

Either restart the database or try the following:

exec dbms_ijob.set_enabled(true);

Ref: Bug 3505718 (Closed, Not a Bug)

@Note 90989.1 (Using DBMS_IJOB) INTERNAL NOTE

 

 

Done but did not help

 

These are the most common causes for this behavior.

 

Solution

The solution ended up to be the server (machine) uptime.

Even though it was up for only 126 days, after the server was rebooted all jobs were able to execute automatically.

 

 To implement the solution, please execute the following steps:

 

1. Shutdown all applications, including databases.

2. Shutdown the server (machine)

3. Restart all applications, including databases.

4. Check that jobs are executing automatically.

 

原文出自:http://space.itpub.net/7813229/viewspace-610829

 

分享到:
评论

相关推荐

    Oracle 外包设定及操作.docx

    #### 解决思路 针对上述需求,可以采用以下步骤在Oracle EBS系统中实现: 1. **创建OSPITEM**:用于标识经过外协加工后的半成品。此外,外协费用可以通过这种方式直接计入到半成品的成本中。 2. **虚拟仓库的设立**...

    kettle转换、作业日志自动添加进资源库配置解决方案

    解决方案的思路是:首先,打开 Kettle 软件,连接到 Oracle 数据库,创建一个新的资源库,然后设置转换的属性,包括日志、步骤日志、运行日志、日志通道等。接着,设置作业的属性,包括作业日志、作业项日志、作业...

    Java人事管理系统数据库系统应用课程设计报告.pdf

    3. **程序消息响应模块**:这一模块实现了程序与数据库的连接,处理各种操作请求,如数据的增删改查,保证程序的正常运行和数据的实时更新。 在开发环境中,硬件要求最低配置为256MB内存和i5 M4605 CPU,软件环境...

    informatica lookup 组件使用案例

    - DBMS: Oracle 10.2.0 - ConnectString: GSMHKSG - UserID: SCOTT - Password: SCOTT 2. **源表(Source Tables)**: - `EMP`: - EMPNO (NUMBER(4)) - ENAME (VARCHAR2(10 BYTE)) - JOB (VARCHAR2(9 BYTE)...

Global site tag (gtag.js) - Google Analytics