[DBMS_SCHEDULER] Job qui ne veut pas s'exécuter.
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:
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 :
Code:
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; |
=> 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:
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; |
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????? :roll::roll:
Merci d'avance:ccool: