Scheduler Jobs Getting Dropped And Not Getting Enabled After Manual Run After Upgrade To 12.2. (Doc ID 2430704.1)
| Symptoms |
| Changes |
| Cause |
| Solution |
| References |
Applies to:
Oracle Database Backup Service - Version N/A and laterOracle Database Cloud Exadata Service - Version N/A and later
Oracle Database Cloud Service - Version N/A and later
Oracle Database - Enterprise Edition - Version 12.2.0.1 and later
Oracle Database Cloud Schema Service - Version N/A and later
Information in this document applies to any platform.
Symptoms
Dbms_scheduler jobs get dropped if auto_drop is set to true and disabled, not enabled after running the manual run using DBMS_SCHEDULER.run_job and use_current_session=FALSE
Issue is specific to RAC
SQL> set echo on;
SQL> set time on;
SQL>
SQL>
SQL> begin
dbms_scheduler.create_job (
job_name => 'SQLHC.TEST_JOB8',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN dbms_output.put_line(''Hello''); END;',
start_date => systimestamp,
end_date =>NULL,
repeat_interval=> 'FREQ=MINUTELY; INTERVAL=05',
auto_drop => FALSE,
enabled => TRUE);
commit;
end;
/
PL/SQL procedure successfully completed.
SQL>
SQL> column REQ_START_DATE Format a35
SQL> column OUTPUT Format a20
SQL> column owner Format a10
SQL> column job_name Format a15
SQL> column LAST_START_DATE Format a35
SQL> column NEXT_RUN_DATE Format a35
SQL> column repeat_interval Format a35
SQL> set pagesize 200 linesize 200
SQL>
SQL> select OWNER, JOB_NAME, ENABLED,SCHEDULE_TYPE,LAST_START_DATE, NEXT_RUN_DATE,JOB_STYLE, auto_drop, repeat_interval from dba_scheduler_jobs where JOB_NAME='TEST_JOB8';
OWNER JOB_NAME ENABL SCHEDULE_TYP LAST_START_DATE NEXT_RUN_DATE JOB_STYLE AUTO_ REPEAT_INTERVAL
------- ------------ ------- ------------ ----------------------------------- ----------------------------------- ------------- ------- -----------------------------------
SQLHC TEST_JOB8 TRUE CALENDAR 01-AUG-18 06.47.50.783978 PM +05:30 01-AUG-18 06.52.49.374076 PM +05:30 REGULAR FALSE FREQ=MINUTELY; INTERVAL=05
SQL>
SQL> select JOB_NAME,STATUS,REQ_START_DATE,output from dba_scheduler_job_run_details where job_name='TEST_JOB8' order by 3 desc;
JOB_NAME STATUS REQ_START_DATE OUTPUT
--------------- ------------------------------ ----------------------------------- --------------------
TEST_JOB8 SUCCEEDED 01-AUG-18 06.47.49.374076 PM +05:30 Hello
SQL>
SQL> begin
dbms_scheduler.disable(name => 'SQLHC.TEST_JOB8');
end;
/
PL/SQL procedure successfully completed.
SQL>
SQL> select OWNER, JOB_NAME, ENABLED,SCHEDULE_TYPE,LAST_START_DATE, NEXT_RUN_DATE,JOB_STYLE, auto_drop, repeat_interval from dba_scheduler_jobs where JOB_NAME='TEST_JOB8';
OWNER JOB_NAME ENABL SCHEDULE_TYP LAST_START_DATE NEXT_RUN_DATE JOB_STYLE AUTO_ REPEAT_INTERVAL
-------- ------------- ----- ------------ ----------------------------------- ----------------------------------- ------------- ----- -----------------------------------
SQLHC TEST_JOB8 FALSE CALENDAR 01-AUG-18 06.47.50.783978 PM +05:30 01-AUG-18 06.52.49.374076 PM +05:30 REGULAR FALSE FREQ=MINUTELY; INTERVAL=05
SQL> begin
dbms_scheduler.enable(name => 'SQLHC.TEST_JOB8');
end;
/
PL/SQL procedure successfully completed.
SQL>
SQL> select OWNER, JOB_NAME, ENABLED,SCHEDULE_TYPE,LAST_START_DATE, NEXT_RUN_DATE,JOB_STYLE, auto_drop, repeat_interval from dba_scheduler_jobs where JOB_NAME='TEST_JOB8';
OWNER JOB_NAME ENABL SCHEDULE_TYP LAST_START_DATE NEXT_RUN_DATE JOB_STYLE AUTO_ REPEAT_INTERVAL
---------- ------------ ----- ------------ ----------------------------------- ----------------------------------- -------------- ----- -----------------------------------
SQLHC TEST_JOB8 TRUE CALENDAR 01-AUG-18 06.47.50.783978 PM +05:30 01-AUG-18 06.52.49.374076 PM +05:30 REGULAR FALSE FREQ=MINUTELY; INTERVAL=05
Run the job manually:
SQL>BEGIN
DBMS_SCHEDULER.run_job(job_name => 'SQLHC.TEST_JOB8',use_current_session => FALSE);
END;
/
PL/SQL procedure successfully completed.
SQL>
SQL> select JOB_NAME,STATUS,REQ_START_DATE,output from dba_scheduler_job_run_details where job_name='TEST_JOB8' order by 3 desc;
JOB_NAME STATUS REQ_START_DATE OUTPUT
--------------- ------------------------------ ----------------------------------- --------------------
TEST_JOB8 SUCCEEDED 01-AUG-18 06.49.40.532991 PM +05:30 Hello
TEST_JOB8 SUCCEEDED 01-AUG-18 06.47.49.374076 PM +05:30 Hello
SQL> select OWNER, JOB_NAME, ENABLED,SCHEDULE_TYPE,LAST_START_DATE, NEXT_RUN_DATE,JOB_STYLE, auto_drop, repeat_interval from dba_scheduler_jobs where JOB_NAME='TEST_JOB8';
OWNER JOB_NAME ENABL SCHEDULE_TYP LAST_START_DATE NEXT_RUN_DATE JOB_STYLE AUTO_ REPEAT_INTERVAL
---------- ------------- ----- ------------ ----------------------------------- ----------------------------------- ------------- ----- -----------------------------------
SQLHC TEST_JOB8 TRUE 01-AUG-18 06.49.40.537526 PM +05:30 01-AUG-18 06.52.49.374076 PM +05:30 REGULAR FALSE FREQ=MINUTELY; INTERVAL=05
SCHEDULE_TYPE changed from CALENDAR to null.After this disable the job and try to enable multiple times with enable procedure is not make it enabled
SQL> select JOB_NAME,STATUS,REQ_START_DATE,output from dba_scheduler_job_run_details where job_name='TEST_JOB8' order by 3 desc;
JOB_NAME STATUS REQ_START_DATE OUTPUT
--------------- ------------------------------ ----------------------------------- --------------------
TEST_JOB8 SUCCEEDED 01-AUG-18 06.49.40.532991 PM +05:30 Hello
TEST_JOB8 SUCCEEDED 01-AUG-18 06.47.49.374076 PM +05:30 Hello
SQL>
SQL> select JOB_NAME,STATUS,REQ_START_DATE,output from dba_scheduler_job_run_details where job_name='TEST_JOB8' order by 3 desc;
JOB_NAME STATUS REQ_START_DATE OUTPUT
--------------- ------------------------------ ----------------------------------- --------------------
TEST_JOB8 SUCCEEDED 01-AUG-18 06.49.40.532991 PM +05:30 Hello
TEST_JOB8 SUCCEEDED 01-AUG-18 06.47.49.374076 PM +05:30 Hello
SQL>
SQL> select OWNER, JOB_NAME, ENABLED,SCHEDULE_TYPE,LAST_START_DATE, NEXT_RUN_DATE,JOB_STYLE, auto_drop, repeat_interval from dba_scheduler_jobs where JOB_NAME='TEST_JOB8';
OWNER JOB_NAME ENABL SCHEDULE_TYP LAST_START_DATE NEXT_RUN_DATE JOB_STYLE AUTO_ REPEAT_INTERVAL
----- --------- ------ ----- ----------------------------------- ----------------------------------- --------- ------ ----------- -----
SQLHC TEST_JOB8 TRUE 01-AUG-18 06.49.40.537526 PM +05:30 01-AUG-18 06.52.49.374076 PM +05:30 REGULAR FALSE FREQ=MINUTELY; INTERVAL=05
SQL>
SQL> select JOB_NAME,STATUS,REQ_START_DATE,output from dba_scheduler_job_run_details where job_name='TEST_JOB8' order by 3 desc;
JOB_NAME STATUS REQ_START_DATE OUTPUT
--------------- ------------------------------ ----------------------------------- --------------------
TEST_JOB8 SUCCEEDED 01-AUG-18 06.49.40.532991 PM +05:30 Hello
TEST_JOB8 SUCCEEDED 01-AUG-18 06.47.49.374076 PM +05:30 Hello
SQL>
SQL> begin
dbms_scheduler.disable(name => 'SQLHC.TEST_JOB8');
end;
/
PL/SQL procedure successfully completed.
SQL>
SQL> select OWNER, JOB_NAME, ENABLED,SCHEDULE_TYPE,LAST_START_DATE, NEXT_RUN_DATE,JOB_STYLE, auto_drop, repeat_interval from dba_scheduler_jobs where JOB_NAME='TEST_JOB8';
OWNER JOB_NAME ENABL SCHEDULE_TYP LAST_START_DATE NEXT_RUN_DATE JOB_STYLE AUTO_ REPEAT_INTERVAL
----- -------- ----- ------------ ----------------------------------- ----------------------------------- --------- ----- -----------------------------------
SQLHC TEST_JOB8 FALSE 01-AUG-18 06.49.40.537526 PM +05:30 01-AUG-18 06.52.49.374076 PM +05:30 REGULAR FALSE FREQ=MINUTELY; INTERVAL=05
SQL>
SQL> begin
dbms_scheduler.enable(name => 'SQLHC.TEST_JOB8');
end;
/
PL/SQL procedure successfully completed.
SQL>
SQL> select OWNER, JOB_NAME, ENABLED,SCHEDULE_TYPE,LAST_START_DATE, NEXT_RUN_DATE,JOB_STYLE, auto_drop, repeat_interval from dba_scheduler_jobs where JOB_NAME='TEST_JOB8';
OWNER JOB_NAME ENABL SCHEDULE_TYP LAST_START_DATE NEXT_RUN_DATE JOB_STYLE AUTO_ REPEAT_INTERVAL
---- -------- ----- ------------ ----------------------------------- ------------------------- --------- ---------- -----------------------------------
SQLHC TEST_JOB8 FALSE 01-AUG-18 06.50.38.983734 PM +05:30 01-AUG-18 06.47.49.374076 PM +05:30 REGULAR FALSE FREQ=MINUTELY; INTERVAL=05
SQL>
SQL>
SQL> select OWNER, JOB_NAME, ENABLED,SCHEDULE_TYPE,LAST_START_DATE, NEXT_RUN_DATE,JOB_STYLE, auto_drop, repeat_interval from dba_scheduler_jobs where JOB_NAME='TEST_JOB8';
OWNER JOB_NAME ENABL SCHEDULE_TYP LAST_START_DATE NEXT_RUN_DATE JOB_STYLE AUTO_ REPEAT_INTERVAL
---------- --------------- ----- ------------ ----------------------------------- ----------------------------------- ----------------- ----- -----------------------------------
SQLHC TEST_JOB8 FALSE 01-AUG-18 06.50.38.983734 PM +05:30 01-AUG-18 06.47.49.374076 PM +05:30 REGULAR FALSE FREQ=MINUTELY; INTERVAL=05
Changes
Upgrade to 12.2.0.1
Cause
Bug 28430089 - JOBS NOT GETTING ENABLED AFTER DISABLING ,MANUAL RUN USING RUN_JOB PROCEDURE closed as duplicate of
Bug 28402823 - 12.2.0.1 IN RAC DBMS_SCHEDULER SET SCHEDULE_TYPE TO NULL AFTER JOB RAN MANUALLY
Solution
The issue happens only in RAC database.
Download and apply the patch 28402823
Or
Use the below workaround:
Set INSTANCE_STICKINESS attribute to false as
In the above example
Comments
Post a Comment