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

Ordonnancement Discussion :

Ordonnancement des traveaux


Sujet :

Ordonnancement

  1. #1
    Membre à l'essai
    Ordonnancement des traveaux
    Bonjour à tous
    je cherche à avoir comment peut on soumettre toutes une chaine de jobs qui sont lies l'un aux autres sachant que je n'ai pas d'ordonnanceur ?
    Peut on mettre des conditions entre ces jobs? sachant qui nous recommandent de faire une a deux steps par jobs??
    Merci de m'eclaircir la dessus
    aussi je suis vraiment tres interessee par la programmation en JCL serait il possible d'avoir des exemples de chaines avec le code JCL

  2. #2
    Membre régulier
    Salut !

    Au pire tu peux concaténer tes JCL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    //JCL1      EXEC PGM=PROGRAM1
    //SYSOUT    DD SYSOUT=* 
    //*
    //JCL2      EXEC PGM=PROGRAM2,COND=(4,LT)
    //SYSOUT    DD SYSOUT=*
    par exemple.

    Ici, ton JCL2 ne se lancera que si JCL1 renvoie un code retour inférieur à 4.

  3. #3
    Membre régulier
    Bonjour,

    tu peux utiliser le lanceur de jobs que j'avais décrit dans la file de discussion 'Ordonnanceur de job' du 11/04/2001.
    C'est pas trop simple à mettre en place, mais ça fonctionne bien lorsqu'on a pas d'ordonnanceur.

  4. #4
    Membre régulier
    Sinon, tu peux utiliser le lanceur suivant écrit en REXX.
    Il faut paramétrer les noms de JCL, le fichier de travail et le nom de la bib REXX.
    Il faut aussi customiser la ligne Job ci-dessous avec les bons paramètres :
    queue "//"USERID()"L JOB (TSO,E),LANCE,MSGCLASS=m,CLASS=c "

    Le REXX est exécuté en tapant EXEC devant le membre (qui doit s'appeler $LANCE dans notre exemple, sinon ça marche po).



    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    /***************************  REXX  **********************************/ 
    /*               Permet de lancer une serie de JCL                   */ 
    /*********************************************************************/ 
    /* Liste des JCLs  ( à saisir )                                      */ 
    JCL.0 = 2                               /* Nombre de JCL à exécuter  */ 
    JCL.1 = 'USER.PDS.JCL.INTEGRAT(JCLA)'   /* Premier JCL à exécuter    */ 
    JCL.2 = 'USER.PDS.JCL.INTEGRAT(JCLB)'   /* Second JCL à exécuter     */ 
    /* Fichier de travail et bib REXX ( à customiser )                   */ 
    Travail = 'USER.PDS.JCL.INTEGRAT(ZZENCHAI)' /* Fichier de travail    */ 
    BibPROC = 'USER.PDS.JCL.INTEGRAT'           /* Bibliothèque REXX     */ 
    PARSE ARG N0_JCL                                                        
    If N0_JCL = '' then do                 /* Première exécution du REXX */ 
        say  '<ENTREE> pour enclencher le processus ' ; N0_JCL = 0 ; end    
    N0_JCL = N0_JCL + 1                                                     
    if N0_JCL > JCL.0 then exit /* Si plus de JCL à passer, on arrete là */ 
    queue "//BOUCLE   EXEC PGM=IKJEFT01,       "                            
    queue "//  PARM='$LANCE " N0_JCL  "'"                                   
    queue "//SYSOUT   DD SYSOUT=*              "                            
    queue "//SYSTSPRT DD SYSOUT=*              "                 
    queue "//SYSTSIN  DD DUMMY                 "                           
    queue "//SYSPROC  DD DISP=SHR,DSN="BibPROC                             
    if bpxwdyn("alloc fi(trav) da('"Travail"') shr") <> 0 then             
          do ; say 'Pb Alloc sur ' Travail ; exit ; end                    
    "execio * diskw trav (fini"                                            
    ret = bpxwdyn("free dd(trav)")                                         
    /* On lance le JCL suivant qui soumet un second JOB constitué du JCL */
    /* sélectionné auquel on ajoute l'étape de rappel du REXX (ci-dessus)*/
    queue "//"USERID()"L JOB (TSO,E),LANCE,MSGCLASS=m,CLASS=c "            
    queue "//INTRDRS1 EXEC  PGM=IEBGENER                      "            
    queue "//SYSUT1   DD  DISP=SHR,DSN="JCL.N0_JCL                         
    queue "//         DD  DISP=SHR,DSN="Travail                            
    queue "//SYSUT2   DD  SYSOUT=(,INTRDR)                    "            
    queue "//SYSPRINT DD  SYSOUT=*                            "            
    queue "//SYSIN    DD  DUMMY                               "            
    queue "$$                                                 "            
    "SUBMIT * END($$)"                                                     
    Return

  5. #5
    Membre à l'essai
    Bonsoir;
    je tiens à vos remercier pour vos réponses
    je n'ai pas encore pu tester cela. je vous en fait un retour des que je teste.

###raw>template_hook.ano_emploi###