Bonjour à tous!
J'ai un petit problème pour faire exécuter un job via dbms_scheduler (que je suis en train de découvrir et de tester).
J'ai d'abord créé un job de test :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 BEGIN DBMS_SCHEDULER.create_job ( job_name => 'TEST_JOB', job_type => 'PLSQL_BLOCK', job_action => 'BEGIN INSERT INTO TEMP_JOB SELECT CLIENT_CODE FROM FACTURES WHERE CLIENT_TYPE IN (1,5,8) AND INVOICE_DATE BETWEEN ''01/01/2011'' and ''28/02/2011''; commit; END;', start_date => sysdate + 5/1440, repeat_interval => 'FREQ=MINUTELY; INTERVAL=10', enabled => TRUE); END;
Ce job marche parfaitement et s'exécute sans problème. Jusque là tout va bien, sauf que moi, pour des raisons de monitoring, j'ai besoins que le JOB s'exécute sur un service particulier (et non le SYS$USER comme c'est le cas par défaut).
En cherchant dans la doc, j'ai vu qu'il fallait créer une "JOB_CLASS" faisant référence à ce service, et d'utiliser cette classe pour l'éxécution du JOB.
Donc pas de problème :
=> La classe se créé bien. Et la je drop mon job initial pour le recréé avec le paramètre "Job_class" (j'aurai pu faire un set_attribute mais bon ^^) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Begin dbms_scheduler.create_job_class( job_class_name => 'MY_JOB_CLASS', service => 'MyServiceName', comments => 'Test job_class'); end;
Mon job se créé sans erreur, mais par contre, il ne s'exécute jamais... Et c'est là que j'aurai besoin de vous : Pourquoi?????
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 BEGIN DBMS_SCHEDULER.create_job ( job_name => 'TEST_JOB', job_type => 'PLSQL_BLOCK', job_class => 'MY_JOB_CLASS', job_action => 'BEGIN INSERT INTO TEMP_JOB SELECT_XXXXX FROM FACTURES WHERE CLIENT_TYPE IN (1,5,8) AND INVOICE_DATE BETWEEN ''01/01/2011'' and ''28/02/2011''; commit; END;', start_date => sysdate + 5/1440, repeat_interval => 'FREQ=MINUTELY; INTERVAL=10', enabled => TRUE); END;
Merci d'avance![]()
Partager