1.3. LA TABLE DE SELECTION -------------------------- LA TABLE DE SELECTION EST COMPOSEE DE POSTES DE SELECTION QUI SPECIFIENT LES PARAMETRES UTILISES POUR INITIALISER UN TRAVAIL. PAR EXEMPLE ILS SPECIFIENT LE PROGRAMME A EXECUTER INITIALEMENT, LA CLASSE, LE POOL MEMOIRE DU SOUS-SYSTEME UTILISE. CHAQUE POSTE DE SELECTION SERA AJOUTE AU SOUS-SYSTEME GRACE A LA COMMANDE ADDRTGE |
1.3.1. ADDRTGE -------------- FORMAT DE LA COMMANDE : ADDRTGE SBSD(nom du sous-système) SEQNBR(numéro de séquence) CMPVAL(*ANY ou valeur de comparaison et position de début) PGM(un nom de programme) CLS(*SBSD ou un nom de classe) MAXACT(*NOMAX ou maximum de jobs actifs) POOLID(identifieur de pool) |
QUELQUES PRECISIONS SUR LES PARAMETRES SEQNBR, CMPVAL, CLS MAXACT, POOLID SEQNBR Indique le numéro de séquence du poste dans la ------ table. Les postes dans la table sont recherchés dans l'ordre des numéros. Si plusieurs postes ont la même valeur de comparaison c'est le premier trouvé qui est choisi. CMPVAL Indique une valeur qui sera comparée avec la Routing ------ Data pour déterminer quel poste sera utilisé pour initialiser le travail. *ANY indique n'importe quelle Routing Data. Pour spécifier *ANY vous devez attribuer au poste le plus grand numéro de séquence (9999). |
CLS Indique le nom de la classe utilisée pour le travail. --- *SBSD indique que le nom de la classe est le même que le nom du sous-système. MAXACT nombre de jobs maximums qui peuvent être actifs à ------ partir de ce poste de sélection. POOLID indique l'identifiant du pool, défini dans la ------ description du sous-système, dans lequel le travail doit s'exécuter. |
1.3.2. LA CLASSE ---------------- LA CLASSE EST UN OBJET DE TYPE *CLS QUI DEFINIT LES PARAMETRES D'EXECUTION D'UN TRAVAIL. LA COMMANDE CRTCLS ------------------ CRTCLS CLS(nom de la classe) RUNPTY(priorité d'exécution, chiffre entre 01 et 99) TIMESLICE(10000 ou nombre de millisecondes) PURGE(*YES ou *NO) DFTWAIT(nombre de secondes par défaut 120 ou *NOMAX) |
CPUTIME(*NOMAX ou temps maximum d'utilisation de la CPU) MAXTMPSTG(*NOMAX ou maximum de mémoire auxiliaire utilisée par le job) QUELQUES PRECISIONS SUR LES PARAMETRES RUNPTY TIMESLICE PURGE ET DFTWAIT RUNPTY Indique la priorité d'exécution pour un travail ------ La plus haute étant 01 (celle du système) et la plus basse 99. Lorsque deux travaux sont en concurrence pour un niveau d'activité de la machine c'est celui qui a la plus haute priorité qui devient actif |
Prenons un exemple : écran01 écran02 écran03 écran04 -------- -------- -------- -------- ! ! ! ! ! ! ! ! /-----/ /-----/ /-----/ /-----/ ------- ------- ------- ------- ! ! ! ! ------------------------------------ ! POOL 1 ! ! NIVEAU D'ACTIVITE 2 ! ------------------------------------ ACTIF INELLIGIBLE LONGUE ATTENTE ECRAN01 ECRAN04 (20) ECRAN02 ECRAN05 ECRAN03 (10) ^ ! ! !---------------------------------------------- ECRAN05 passe en longue attente (un niveau d'activité se libère) |
écran01 écran02 écran03 écran04 -------- -------- -------- -------- ! ! ! ! ! ! ! ! /-----/ /-----/ /-----/ /-----/ ------- ------- ------- ------- ! ! ! ! ------------------------------------ ! POOL 1 ! ! NIVEAU D'ACTIVITE 2 ! ------------------------------------ ACTIF INELLIGIBLE LONGUE ATTENTE ECRAN01 ECRAN04 (20) ECRAN02 ECRAN03 <------------- ECRAN05 C'est ECRAN03 qui profite de cette place libre car il est prioritaire(10) à ECRAN04(20). |
TIMESLICE Temps maximum d'activite accordé à un travail. --------- RAPPEL. Un travail est Actif jusqu'à ce qu'une demande de Longue Attente soit effectuée. Pour les travaux batch ou les travaux semi-interactifs le timeslice va permettre de libérer un niveau d'activité au bout d'un certain nombre de millisecondes, si le travail ne passe pas de lui-même en longue attente. PURGE Indique si, quand le travail perd son niveau ----- d'activité (longue attente ou fin de time slice) le système doit transférer sur disque les informations concernant ce job (PAG). DFTWAIT Temps maximum d'attente pour le déroulement complet ------- d'une instruction du système. |
Quand un job arrive dans un sous-système (fonction de ADDJOBQE,ADDWSE,...) le système compare les postes de sélection du sous-système avec le paramètre RTGDTA, dans l'ordre des n° de séquence. Si aucun poste ne correspond, la phase d'activation se termine ANORMALEMENT! ----------------------------------------------------- ! SEQNBR CMPVAL PGM CLS MAXACT POOLID ! !---------------------------------------------------! ! 10 QCMDI QCMD QINTER *NOMAX 1 ! ! ! ! 20 QCMDB QCMD QBATCH *NOMAX 2 ! ! ! ! 30 QCMD38 QCL QBATCH *NOMAX 2 ! ! ! ! 100 TRUC CLP045 QINTER 2 1 ! ! ! ! 999 *ANY QCMD QBATCH *NOMAX 2 !<-- toujours vrai ! ! (à placer en ! ! fin de table) !---------------------------------------------------! |
Quelques commandes utiles : si votre job s'aperçoit en cours de traitement qu'il doit changer de sous-système (ou de pool système), cela est possible. TFRJOB JOBQ(__) RTGDTA(QCMDI) RQSDTA(*NONE) > pour un job interactif (il faut avoir prévu une entrée JOBQ pour le sous-système). TFRBCHJOB RTGDTA(QCMDB) RQSDTA(*NONE) > pour un job batch RRTJOB RTGDTA(QCMDI) RQSDTA(*NONE) > pour re-passer dans la table de routage du MEME sous-systèm ............................................................... : ATTENTION: commandes invalides avec des travaux de groupe. : :.............................................................: |