, , Changer le groupe d’activation d’un programme

Vous voulez changer le groupe d’activation d’un programme. Contrairement à une idée reçue, on peut dans certains cas renommer le groupe d’activation d’un programme ILE

Si vous créez un programme

CRTPGM

Ou 

CRTBNDRPG

Vous allez indiquer le groupe d’activation d’exécution de votre programme

Vous ne pouvez pas changer le groupe d’activation par CHGPGM !

Mais vous pouvez le faire par la commande UPDPGM 

avant ==> DSPPGM AATSTRET

Attribut du groupe d’activation  . . . . . . . :   PLB1

UPDPGM PGM(AATSTRET) MODULE(*NONE) ACTGRP(PLB45)              
Valeurs des paramètres AUT et USRPRF ignorées.                
L’objet remplacé AATSTRET type *PGM a été déplacé dans QRPLOBJ.
Programme AATSTRET créé dans la bibliothèque GDATA.            
Programme AATSTRET mis à jour dans GDATA.   

après  ==>DSPPGM AATSTRET

Attribut du groupe d’activation  . . . . . . . :   PLB45                   

la seule limitation est que le groupe doit être nommé

Pour interdir ce changement à l’assemblage vous devez indiquer

CRTPGM …  ALWUPD(*NO) 

PS :    

Cette option n’existe pas sur le CRTBNDRPG donc modifiable par défaut 

Vous devez avoir le droit *change sur programme.

Rappel:

En batch on essaye d’avoir le premier programme qui crée le groupe d’activation et les programmes appelés s’exécuteront en *caller

Dans les autres cas, webservice, interactif, etc il peut être préférable d’avoir un groupe d’activation par programme

Pour analyser les groupes actifs, vous pouvez utiliser le service : QSYS2.ACTIVATION_GROUP_INFO

— Liste des groupes par Travail
SELECT A.JOB_NAME,
       count(*)
    FROM TABLE (
             QSYS2.ACTIVE_JOB_INFO()
         ) AS A
         LEFT JOIN TABLE (
                 QSYS2.ACTIVATION_GROUP_INFO(JOB_NAME => A.JOB_NAME)
             ) AS G
             ON 1 = 1
    group by A.JOB_NAME         
        ORDER BY count(*) desc
            ;