Rem drv:
Rem
Rem $Header: emcore/source/oracle/sysman/emdrep/sql/core/latest/ecm/fix_inventory_outofbox_job.sql /st_emcore_10.2.0.4.2db11.2/1 2008/10/20 21:16:39 lsatyapr Exp $
Rem
Rem fix_inventory_outofbox_job.sql
Rem
Rem Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
Rem
Rem NAME
Rem fix_inventory_outofbox_job.sql -
Rem
Rem
Rem DESCRIPTION
Rem Script to add the 'FixInventoryJob' job in the repository.
Rem
Rem
Rem NOTES
Rem
Rem
Rem MODIFIED (MM/DD/YY)
Rem lsatyapr 10/12/08 - Backport lsatyapr_bug-7425991 from main
Rem lsatyapr 10/08/08 - Use MGMT_JOB instead of MJ_ENGINE
Rem makarapu 12/22/06 - Switching EM user context to SYS
Rem makarapu 09/20/06 - Backport makarapu_bug-5511590 from main
Rem makarapu 09/04/06 - Making it system job
Rem makarapu 01/29/06 - Created
Rem
REM This script will add the 'FixInventory' job in the repository.
set define off
declare
p_job_targets MGMT_JOB_TARGET_LIST := MGMT_JOB_TARGET_LIST();
p_job_params MGMT_JOB_PARAM_LIST := MGMT_JOB_PARAM_LIST();
p_purge_criterion_list MGMT_JOB_PURGE_CRITERION_LIST;
p_mgmt_job_vector MGMT_JOB_VECTOR_PARAMS;
p_schedule MGMT_JOB_SCHEDULE_RECORD;
p_bind_var_index NUMBER;
p_execution raw(16);
p_job raw(16);
p_job_name VARCHAR2(64);
p_purge_policy_name VARCHAR2(64);
l_current_user MGMT_CREATED_USERS.user_name%TYPE := MGMT_USER.get_current_em_user;
l_job_id MGMT_JOB.job_id%TYPE;
l_job_owner MGMT_JOB.job_owner%TYPE;
BEGIN
-- Create a schedule to run the job daily.
p_schedule := mgmt_jobs.get_job_schedule_record( MGMT_JOBS.DAILY_FREQUENCY_CODE, null, null, 0, 0, 1, null, null, 1, 0, 0, null);
--p_schedule := mgmt_jobs.get_immediate_schedule_record;
p_job_name := 'FIX INVENTORY';
p_purge_policy_name := 'FixInventoryPurgePolicy';
BEGIN
SELECT job_id, job_owner
INTO l_job_id, l_job_owner
FROM MGMT_JOB
WHERE upper(job_name) = p_job_name;
MGMT_JOB_ENGINE.stop_all_executions_with_id(l_job_id, true);
-- Stopping a system job deletes it too.
-- just to be safe try to delete it again
BEGIN
MGMT_JOBS.delete_job(p_job_name, l_job_owner,1,0);
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
END;
SETEMUSERCONTEXT(MGMT_USER.GET_REPOSITORY_OWNER, MGMT_USER.OP_SET_IDENTIFIER);
BEGIN
mgmt_jobs.submit_job(p_job_name ,'Out Of The Box Job to enhance Oracle Inventory Collection Mechanisms (10.2.0.4.0)','FixInventory', p_job_targets,p_job_params,p_schedule,p_job,p_execution,null,MGMT_JOB_ENGINE.SYSTEM_JOB,null,null);
EXCEPTION WHEN OTHERS THEN
dbms_output.put_line('Unable to submit' || p_job_name );
END;
-- We are going to purge the job on job type.
p_mgmt_job_vector := MGMT_JOB_VECTOR_PARAMS('FixInventory');
-- Create a purge criteria to purge the job on Job_type
p_purge_criterion_list := MGMT_JOB_PURGE_CRITERION_LIST(MGMT_JOB_PURGE_CRITERION(2, 0, p_mgmt_job_vector, null));
-- Clean a purge policy if it exists
BEGIN
MGMT_JOBS.drop_purge_policy(p_purge_policy_name);
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
-- Register the purge policy to purge the job executions which are more than a week old and which
-- satisfy the purge criteria created above.
MGMT_JOBS.register_purge_policy(p_purge_policy_name , 7, p_purge_criterion_list);
SETEMUSERCONTEXT(l_current_user, MGMT_USER.OP_SET_IDENTIFIER);
EXCEPTION
WHEN OTHERS THEN
SETEMUSERCONTEXT(l_current_user, MGMT_USER.OP_SET_IDENTIFIER);
RAISE;
END;
/
set define on
commit;