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

Oracle Discussion :

[Oracle8i - dbms_job] procédure en mode background


Sujet :

Oracle

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 10
    Par défaut [Oracle8i - dbms_job] procédure en mode background
    Bonjour,
    nous souhaiterions exécuter plusieurs procédures en parallèle en utilisant dbms_job.
    Mais nous n'arrivons pas à lancer une procédure en mode background pour récupérer la main dès son lancement et pouvoir en exécuter une autre dans la foulée.

    Voici ce que nous avons fait :
    Une procédure qui écrit dans un fichier toutes les 2 secondes
    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
     
    CREATE OR REPLACE PROCEDURE test_job1 IS
      FicOut Utl_File.File_Type;
      i      NUMBER := 0;
    BEGIN
      FicOut := utl_file.fopen(spc_param.fn_get_Valeur('REPERTRV'),
                               'Job1.txt',
                               'w');
      utl_file.put_line(FicOut, to_char(SYSDATE, 'HH24:MI:SS'));
      WHILE TRUE LOOP
        i := i + 1;
        countdown(0, 0, 0, 2);
        utl_file.put_line(FicOut, i);
        IF i > 10 THEN
          EXIT;
        END IF;
      END LOOP;
      utl_file.fclose(FicOut);
    END test_job1;
    Création dun job pour la lancer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    DECLARE
    x number;
    BEGIN
    dbms_job.submit(x,'test_job1;',sysdate,'sysdate+1',FALSE, 0, TRUE);
    dbms_output.put_line(x);
    END;
    Exécution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    BEGIN
    dbms_job.run(5, TRUE);
    END;
    Que l'on mette TRUE ou FALSE comme 2ème argument l'exécution reste en foreground

    Quelqu'un a t-il une idée ?? par exemple pour forcer les exécutions en background
    Merci

  2. #2
    Membre habitué
    Inscrit en
    Janvier 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 10
    Par défaut dbms_job (suite)
    Ok nous avons trouvé comment utiliser la programmation de tâches à quelques minutes d'intervalle
    En revanche quelqu'un sait-il comment stopper un job en cours d'exécution ?

    Merci

  3. #3
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Je te renvoie au tuto de Jaouad :
    http://oracle.developpez.com/guide/d...ms_job/#LIII-D

  4. #4
    Membre habitué
    Inscrit en
    Janvier 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 10
    Par défaut dbms_job
    Citation Envoyé par plaineR


    La section avec la commande dbms_job.run et le paramètre TRUE ou FALSE indique comment lancer en background ou non
    Mais nos tests n'ont pas été concluant : que l'on mettre TRUE ou FALSE, on ne récupère pas la main afin la fin de l'exécution de chaque job !!

  5. #5
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Paut-être un problème de version ?
    d'ailleurs, vous n'avez pas indiqué la votre...

  6. #6
    Membre habitué
    Inscrit en
    Janvier 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 10
    Par défaut dbms_job
    Oracle8i Release 8.1.7.1.1

  7. #7
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Par défaut
    Bonjour ,

    Pour killer une session , il faut mettre le job_queue_processes à o et killer la session qui exécute le job , le process soit être une jxxxx

    Merci d'utiliser les balises Quote et Code

  8. #8
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    DBMS_JOB.RUN
    The FORCE parameter for DBMS_JOB.RUN defaults to FALSE. If force is TRUE, instance affinity is irrelevant for running jobs in the foreground process. If force is FALSE, the job can run in the foreground only in the specified instance. Oracle displays error ORA-23428 if force is FALSE and the connected instance is the incorrect instance.

    DBMS_JOB.RUN( JOB IN BINARY_INTEGER,
    FORCE IN BOOLEAN DEFAULT FALSE)
    peut-être faut-il spécifier une instance particulière dans la fonction SUBMIT ....

    http://download-west.oracle.com/docs/cd/A87860_01/doc/appdev.817/a76936/dbms_jo2.htm#1002911

  9. #9
    Membre habitué
    Inscrit en
    Janvier 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 10
    Par défaut dbms_job
    Merci à tous pour vos réponses
    Nous allons pouvoir avancer sur notre travail avec ce que nous avons trouvé.

  10. #10
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    n'oubliez pas le bouton en bas à gauche
    Et n'oubliez pas à l'avenir de spécifier votre version dans le titre du message merci

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

Discussions similaires

  1. activer le mode "création de formulaire" dans une procédure
    Par thierryyyyyyy dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/06/2007, 15h53
  2. [oracle8i] Questions concernant une procédure
    Par sartorius dans le forum Oracle
    Réponses: 1
    Dernier message: 26/10/2006, 17h31
  3. Réponses: 4
    Dernier message: 22/06/2006, 11h01
  4. Réponses: 8
    Dernier message: 08/11/2005, 16h43
  5. Debuger une procédure stockée en mode pas à pas
    Par Oluha dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 22/12/2004, 10h59

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