IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

[DBMS_SCHEDULER] Job qui ne veut pas s'exécuter.


Sujet :

PL/SQL Oracle

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 41
    Points : 30
    Points
    30
    Par défaut [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 : 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 :

    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;
    => 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
    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?????

    Merci d'avance

  2. #2
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 077
    Points
    8 077
    Par défaut
    Vu de 1000 mètres, je dirais que c'est à cause du nom de service ; on ne peut pas choisir n'importe quoi.
    Il faut que ce nom de service soit défini dans la base, et visible dans DBA_SERVICES, ou par SHOW PARAMETER SERVICE_NAMES.
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 41
    Points : 30
    Points
    30
    Par défaut
    En fait le service existe bien (d'ailleurs, il est impossible de créer une classe avec un service inexistant).

    Par contre, la différence était sur la casse du service. J'ai tout mis en minuscule, alors que dans DBA_SERVICES, la casse est différente. Je viens de retester avec la bonne casse, et le job s'exécute cette fois. Par contre, l'exécution a "failed" (alors qu'exactement le même job sans la "job_class" s'exécute normalement...

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 41
    Points : 30
    Points
    30
    Par défaut
    Bon voilà, j'ai drop le job, j'ai tout recréé avec la bonne casse, et tout fonctionne bien avec le service désiré!

    Merci!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/08/2010, 17h50
  2. [JScrollPane] qui ne veut pas se mettre en haut a gauche
    Par Cyber@l dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 24/11/2006, 10h41
  3. requetes qui ne veut pas passer
    Par suya95 dans le forum Requêtes
    Réponses: 14
    Dernier message: 04/07/2006, 14h17
  4. JOptionPane qui ne veut pas se fermer!
    Par benthebest dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 29/12/2005, 22h05
  5. un fichier qui ne veut pas être supprimé!!!!
    Par en_stage dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 22/10/2005, 01h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo