Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Invité de passage
    Homme Profil pro
    Inscrit en
    septembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : septembre 2012
    Messages : 3
    Points : 1
    Points
    1

    Par défaut Utilisation SBMJOB dans un CL Traitements multiples et hiérarchisés

    Bonjour,

    j'ai une problématique concernant l'utilisation de SBMJOB dans des CL.
    Contexte :
    J'utilise un cl pour réaliser un certain nombre de traitement lancé par la commande SBMJOB, ces ordres de traitements doivent être réalisés dans un ordre hiérarchique qui doit être respecté.
    Pour planifier ce traitement je valorise le paramètre SCDTIME par l'intermédiaire d'une variable, qui est renseigner lors du lancement de ce CL (car les traitements sont réalisés en dehors des heures de travail).
    En utilisant cette méthode j'ai des problèmes de respects de la hiérarchie séquentielle normalement imposée par l'ordre de lancement des traitements dans mon CL.

    Info AS400 concernant le paramètre SCDTIME : "des postes travaux dont les valeurs SCDDATE et SCDTIME sont identiques peut différer de leur ordre d'arrivée.
    De la même manière, l'ordre de départ de ces travaux de la file d'attente en vue de leur traitement peut différer de leur ordre d'arrivée. Il faut donc garder en mémoire que les travaux ne sont pas entrés ni traités de manière séquentielle lorsqu'il est prévu qu'ils démarrent simultanément. "

    Exemple concernant mon code :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SBMJOB     CMD(CALL PGM(Monprogramme) PARM(Mesparametres')) JOB(VACPRD) JOBD(&JOBD) +       
                 USER(*CURRENT) INQMSGRPY(*SYSRPYL) +   
                 SCDTIME(&HEURE)
    
     SBMJOB     CMD(CALL PGM(Monprogramme2) PARM(Mesparametres2')) JOB(VACPRD) JOBD(&JOBD) +       
                 USER(*CURRENT) INQMSGRPY(*SYSRPYL) +   
                 SCDTIME(&HEURE)  
    
    SBMJOB     CMD(CALL PGM(Monprogramme3) PARM(Mesparametres3')) JOB(VACPRD) JOBD(&JOBD) +       
                 USER(*CURRENT) INQMSGRPY(*SYSRPYL) +   
                 SCDTIME(&HEURE)
    Pour info j'ai quinzaine de traitement successif

    Pour info également j'ai essayé de faire une modification de la variable HEURE pour mettre en place un écart de traitement et mettre en place une hiérarchie qui semble fonctionner:

    Code :
    1
    2
    3
    CHGVAR     VAR(&HEUREN) VALUE(&HEURE)     
    CHGVAR     VAR(&HEUREN) VALUE(&HEUREN + 1)
    CHGVAR     VAR(&HEURE) VALUE(&HEUREN)
    Cependant je trouve que m'a méthode n'est pas très optimisée et alourdi considérablement le code vu le nombre de répétions.

    Merci de votre aide

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    septembre 2008
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : septembre 2008
    Messages : 710
    Points : 992
    Points
    992

    Par défaut

    Tu peux peut-être créer une jobq que tu rattaches à ton sous-système, en indiquant un seul travail à la fois.
    Il suffit alors de holder la jobq, de soumettre les travaux dans la jobq (sans paramètre scdtime) et à l'heure prévue de libérer la jobq.

  3. #3
    Expert Confirmé
    Homme Profil pro Hédhili Jaïdane
    Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    juin 2007
    Messages
    1 868
    Détails du profil
    Informations personnelles :
    Nom : Homme Hédhili Jaïdane
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : juin 2007
    Messages : 1 868
    Points : 3 252
    Points
    3 252

    Par défaut

    Bonjour.

    Pour éviter tout problème suite à un changement quelconque dans la description du s/système ou de la jobq par les petits malins de la production, je soumets, dans ce ce genre de cas, un seul programme CL qui va contenir tous les appels aux programmes à exécuter avec éventuellement le contrôle de la bonne exécution de chaque programme avant d'enchainer par le suivant.

  4. #4
    Invité de passage
    Homme Profil pro
    Inscrit en
    septembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : septembre 2012
    Messages : 3
    Points : 1
    Points
    1

    Par défaut

    Bonjour,

    Je vous remercie pour vos réponses.
    Les deux approches proposés sont intéressantes, notamment celle de Hédhili Jaïdane, cependant je ne suis pas une star en CL et les CL que nous avons n’ont pas été développé par moi-même et il est utilisé, un en certains nombres de variables issues d'une interface utilisateur qui permet de les lancer.

    Je vais cependant essayer de traiter le problème de cette manière, même si j'avais plutôt envisagé de seulement apporter des modifications dans le code des CL.

  5. #5
    Invité de passage
    Inscrit en
    mars 2012
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : mars 2012
    Messages : 1
    Points : 1
    Points
    1

    Par défaut

    La solution de la jobq avec lancement d'un JOB un apres l'autre est la meilleur solution pour hierarchisé _ Pour lancer un JOB a une heure precise il existe un planning que l'on gere avec la Commande WRKJOBSCDE

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •