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 :

Traitement après fin exécution job


Sujet :

PL/SQL Oracle

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2008
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 139
    Points : 25
    Points
    25
    Par défaut Traitement après fin exécution job
    Bonjour,

    J ai créé un bloc PL/SQL qui permet d’exécuter un traitement après lancement des jobs.

    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
    20
    21
    22
    23
     
    Begin
    ---Traitement pl/sql (A)
     
      dbms_job.submit(job => 1, 
        what => 'my_procedure(foo1);'
        next_date => sysdate+1,
        interval => 'sysdate');
     
      dbms_job.submit(job => 2, 
        what => 'my_procedure(foo2);'
        next_date => sysdate+1,
        interval => 'sysdate');
     
      dbms_job.submit(job =>3, 
        what => 'my_procedure(foo3);'
        next_date => sysdate+1,
        interval => 'sysdate');
     
    ---Traitement pl/sql (B)
    Select count(*) into from ……..…
     
    end;
    Comment on oblige l’exécution de traitement de bloc (B) qu’après la fin de l’exécution de bloc (A) cad après la fin d’exécution de tous les jobs sachant qu’ils se lancent en parallèle.

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Qu’est ce que vous essayer d’accomplir parce que vous est en train de monter une usine à gaz !

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2008
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 139
    Points : 25
    Points
    25
    Par défaut
    Autrement dit, est ce qu'on peut faire un wait() jusqu'à la fin d’exécution de tous les jobs, puis on exécute le traitement(B).

  4. #4
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    On pourrait trouver une solution ! Mais expliquez-nous pourquoi voulez-vous monter cette usine à gaz ? Pourquoi vouloir exécuter la procédure via des jobs ; dbms_job n’existe pas pour ça! Qu’est-ce que votre procédure fait ? Qu’est-ce que vous essayer d’accomplir par cette « algorithme » ?
    La question est donc de savoir si une autre solution à votre problème existe.

    Pour répondre à votre question:
    Dbms_Lock.sleep permet d'attendre un certain temps.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Novembre 2008
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 139
    Points : 25
    Points
    25
    Par défaut
    pour la synchronisation des jobs, j ai trouvé solution de contournement en utilisant le package DBMS_ALERT.

    mais j ai rencontré un problème de ressource critique entre les jobs.

    j ai un tableau déclaré dans mon package, tous les jobs utilisent ce tableau pour les remplir par des valeurs ......

    le problème est que le tableau n'est pas rempli correctement, ils contient des zeros '0'.

  6. #6
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Chaque job s’exécute dans une session indépendante. Chaque session a son propre état d'un package.

Discussions similaires

  1. Exécuter le fichier Bat après export du job
    Par thanush dans le forum Développement de jobs
    Réponses: 10
    Dernier message: 01/04/2014, 20h44
  2. [JavaFX2] Traitement après la fin des Tasks
    Par albert55 dans le forum JavaFX
    Réponses: 3
    Dernier message: 23/07/2013, 00h16
  3. Exécuter un traitement aprés l'impression
    Par quedudev dans le forum QuickReport
    Réponses: 1
    Dernier message: 05/05/2010, 08h30
  4. Exécution d'une routine à la fin du job
    Par othmane126 dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 18/06/2009, 23h37

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