Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/05/2011, 10h41   #1
Membre habitué
 
Inscription : avril 2004
Messages : 363
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 363
Points : 121
Points : 121
Par défaut Pourquoi le sheduler n'exécute pas mon job DBMS_SCHEDULER.create_job

Bonjour,

Mon job n'est pas exécuter par le Scheduler.
Il est bien créer mais ne s'exécute pas après intervalle de 1 minutes -> start_date => SYSTIMESTAMP+numtodsinterval(ln_delay,'MINUTE').
Le code de création est le suivant:


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
      procedure p_schedule IS
        pragma autonomous_transaction;
        lv_job_name varchar2(50);
        ln_delay number := 1; -- default value 1 minutes
        ln_lrt_id number := NULL;
      begin
 
        DBMS_SCHEDULER.create_job (
          job_name        => lv_job_name,
          job_type        => 'PLSQL_BLOCK',
          job_action      => 'BEGIN p_calculate_intersections; commit; END; ',
          number_of_arguments => 0,
          start_date      => SYSTIMESTAMP+numtodsinterval(ln_delay,'MINUTE'),
          enabled         => TRUE,
          comments        => 'Job defined to rebuild the Geom objects impacted by the modification of the LRS'
          );
        commit;      
      exception
        when others then
           p_addlog('P_SCHEDULE','EXCEPTION systimestamp='||SYSTIMESTAMP,ln_lrt_id );
           p_addlog('P_SCHEDULE','EXCEPTION sqlerrm='||SQLERRM,ln_lrt_id );
           raise;
      end p_schedule;
Pourquoi mon job n'est-il pas exécuté ?

merci

Patrick
patmaba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2011, 11h38   #2
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 311
Points : 5 808
Points : 5 808
Creating Jobs
Citation:
Jobs are created disabled by default and they need to be enabled in order to be executed.
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2011, 11h53   #3
Rédacteur
 
Inscription : décembre 2002
Messages : 2 385
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 385
Points : 3 263
Points : 3 263
Citation:
Envoyé par mnitu Voir le message
...
Oui mais non...
La doc est assez stupide à ce sujet.
Il aurait suffi qu'ils précisent que la procédure CREATE_JOB possède un paramètre optionnel ENABLED, qui est à FALSE par défaut.
Là, notre ami a fait ce qu'il faut à ce sujet.
__________________
Consultant / formateur Oracle indépendant
Certifié OCP 10g et 11g, sécurité 11g
Pomalaix est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 20/05/2011, 11h56   #4
Rédacteur
 
Inscription : décembre 2002
Messages : 2 385
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 385
Points : 3 263
Points : 3 263
Citation:
Envoyé par patmaba Voir le message
Pourquoi mon job n'est-il pas exécuté ?
Quelle est votre version d'Oracle ??

En V11 par exemple, JOB_QUEUE_PROCESSES doit avoir une valeur supérieure à 0 (elle est à 1000 par défaut, mais j'ai rencontré des cas avec 0), alors qu'en V10 ce paramètre n'intervient pas.

En dehors de ça, tel qu'il est défini, votre job devrait bien s'exécuter, mais une seule fois car vous n'avez pas de paramètre REPEAT_INTERVAL pour une exécution récurrente.
Plus vicieux encore, comme par défaut AUTO_DROP est à TRUE, votre job disparaît immédiatement après l'exécution !
__________________
Consultant / formateur Oracle indépendant
Certifié OCP 10g et 11g, sécurité 11g
Pomalaix est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/05/2011, 13h23   #5
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 311
Points : 5 808
Points : 5 808
Citation:
...
Là, notre ami a fait ce qu'il faut à ce sujet


Citation:
Envoyé par Pomalaix Voir le message
...
Plus vicieux encore, comme par défaut AUTO_DROP est à TRUE, votre job disparaît immédiatement après l'exécution !
Mais, il devrait laisser une trace dans dba_scheduler_job_log.
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 20/05/2011, 16h35   #6
Membre habitué
 
Inscription : avril 2004
Messages : 363
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 363
Points : 121
Points : 121
c'était bien la valeur du job_queue_processes

c'est résolu.

merci à tous
patmaba est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h12.


 
 
 
 
Partenaires

Hébergement Web