Dès lors qu'on a packagé un module dans un objet *PGM ou *SRVPGM, l'objet *MODULE a rempli son objectif. On n'a besoin de l'objet *MODULE que pour créer ces objets, pas pour les exécuter. Si l'on travaille dans un environnement de développement/production séparé, il n'est pas nécessaire de maintenir des
Gérer les modules
modules sur la
machine de production. La commande
DLTMOD (Delete Module)
supprimera les objets *MODULE du
système.
Mais vous aurez besoin des modules
s’il faut un jour recréer le
programme ou le programme de
service et si vous ne voulez pas recompiler
le code source. Chaque
module listé par la commande
CRTPGM ou CTRSRVPGM doit exister
au moment du liage : s’il en
manque un, il faudra le recompiler.
S’il est nécessaire de changer un
module dans un programme ou un
programme de service, il faut recompiler
le membre source dans un
module puis lier à nouveau ce
module dans le programme ou le
programme de service approprié.
La commande UPDPGM (Update Program) ou UPDSRVPGM (Update Service Program) liera à
nouveau un module dans un programme ou un programme
de service :
UPDPGM PGM(program-name) +
MODULE(module-name)
UPDSRVPGM SRVPGM(srvpgm-name) +
MODULE(module-name)
Ne listez que les modules modifiés, qui doivent exister
quand vous liez à nouveau l’objet. Les modules non modifiés
dans le programme ou le programme de service ne sont pas
affectés. Généralement, si vous reliez un programme de service,
vous n’avez rien à faire sur les programmes qui utilisent
le programme de service, pourvu que la signature de ce dernier
(expliquée en deuxième partie) reste intacte.
J’essaie généralement d’éviter le sujet des conventions
de nommage, parce qu’elles dégénèrent généralement en arguments
pseudo-religieux. Pourtant le nommage a une part
importante dans la gestion des modules. Généralement, un
nom de procédure (et par extension, un nom de module)
devrait refléter le nom de la valeur de renvoi de la procédure.
Ainsi, si une procédure renvoie le nom en toutes lettres d’un
jour de la semaine, on pourrait l’appeler NomJour. Quand
une procédure ne renvoie pas de valeur, on peut lui donner
un nom « verbe/objet », semblable à une commande CL.
MajCrédit, par exemple, pourrait nommer une procédure
qui met à jour une limite de crédit.
On pourrait aussi envisager une convention de nommage
de modules permettant de lister les noms génériques
sur le paramètre MODULE pour les commandes CRTPGM et
CRTSRVPGM. Par exemple
CRTPGM PGM(MYPGM) +
MODULE(MYLIB/DAY*)
lierait inconditionnellement tous les modules dans MYLIB
qui commencent par les caractères DAY. Mais cette
convention est un peu délicate : il est facile de lier par inadvertance
des modules que l’on ne veut pas forcément dans le
programme.
On peut aussi organiser les modules dans des bibliothèques
communes puis lister *ALL au lieu des modules spécifiques
:
CRTPGM PGM(MYPGM) +
MODULE(MYLIB/*ALL)
Chaque module présent dans MYLIB serait alors lié dans
le programme.
Téléchargez cette ressource
Microsoft 365 Tenant Resilience
Face aux failles de résilience des tenants M365 (configurations, privilèges, sauvegarde). Découvrez 5 piliers pour durcir, segmenter et surveiller vos environnements afin de limiter l’impact des attaques. Prioriser vos chantiers cyber et améliorer la résilience de vos tenants Microsoft 365.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- CRM et souveraineté : le choix technologique est devenu un choix politique
- France : la maturité data devient le moteur du retour sur investissement de l’IA
- Cloud et IA : une maturité en retard face à l’explosion des usages
- On ne peut pas gouverner ce qu’on ne peut pas voir : pourquoi la visibilité doit-elle passer avant la gouvernance en matière de sécurité des identités ?
Articles les + lus
Les coûts cachés des merge requests générées par l’IA
Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
Moderniser le développement logiciel : de la fragmentation à l’intégration
Analyse Patch Tuesday Mars 2026
Une nouvelle ère de la modernisation du mainframe
À la une de la chaîne Tech
- Les coûts cachés des merge requests générées par l’IA
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
- Moderniser le développement logiciel : de la fragmentation à l’intégration
- Analyse Patch Tuesday Mars 2026
- Une nouvelle ère de la modernisation du mainframe
