Aller au contenu

CHGMOD

Modifier un module

En bref

La commande CHGMOD (Modifier un module) permet de modifier les attributs d'un objet module sans recompiler le module.

CHGMOD se lit CHG (Modifier) + MOD. Sur IBM i, le nom d'une commande associe presque toujours un verbe et un objet.

Syntaxe minimale

CHGMOD MODULE(…)

Paramètres

Astuce : dans une session 5250, tapez CHGMOD puis F4 pour l'invite de saisie, et F1 sur un paramètre pour son aide.

Aide IBM i de la commande

Texte du F1, IBM i 7.5 en français (bibliothèque QSYS)

Où s'exécute : Tous les environnements (*ALL)
Compatible multitâche : Non

La commande CHGMOD (Modifier un module) permet de modifier les attributs d'un objet module sans recompiler le module.

Restrictions :

  • Vous devez disposer du droit d'utilisation (*USE) sur la bibliothèque dans laquelle se trouve le module.
  • Vous devez disposer des droits d'utilisation *USE et de gestion des objets (*OBJMGT) sur le module à modifier.
  • Vous devez disposer des droits d'utilisation *USE, d'ajout (*ADD) et de suppression (*DLT) sur la bibliothèque pour modifier l'attribut d'optimisation, l'attribut de collecte de performances ou l'attribut de données de profilage ou pour forcer la recréation du module.
  • Les modules de la bibliothèque QSYS ne peuvent pas être modifiés.

Paramètres

Mot-clé Description Valeurs possibles Remarques
MODULE Module Nom d'objet qualifié Obligatoire, clé, positionnel 1
Qualificatif 1: Module Nom générique, nom, *ALL
Qualificatif 2: Biblio Nom, *USRLIBL, *LIBL
OPTIMIZE Optimiser module *SAME, *FULL, *BASIC, *NONE, 40, 30, 20, 10 Facultatif
RMVOBS Enlever infos observables Valeurs uniques: *SAME, *NONE, *ALL
Autres valeurs (jusqu'à 3 répétitions): *CRTDTA, *DBGDTA, *ILDTA
Facultatif
PRFDTA Données de profilage *SAME, *NOCOL, *COL Facultatif
FRCCRT Forcer recréation module *NO, *YES Facultatif
TEXT Texte 'descriptif' Valeur caractère, *SAME, *BLANK Facultatif
LICOPT Options microcode sous licence Valeurs uniques: *SAME, *NONE
Autres valeurs: Liste d'éléments
Facultatif
Élément 1: Options Valeur caractère
Élément 2: Action *REPLACE, *ADD
ENBPFRCOL Collecte performance possible Valeurs uniques: *SAME, *NONE, *PEP
Autres valeurs: Liste d'éléments
Facultatif
Élément 1: Niveau de collecte *FULL, *ENTRYEXIT
Élément 2: Procédures *ALLPRC, *NONLEAF

Module (MODULE)

Indique le module pour lequel des attributs doivent être modifiés.

Ce paramètre est obligatoire.

Qualificatif 1 : Module

*ALL
Tous les modules de la bibliothèque indiquée sur lesquels l'utilisateur détient des droits sont sélectionnés pour la modification.
nom-générique
Indiquez le nom générique des modules à modifier. Un nom générique est composé d'un ou plusieurs caractères suivis d'un astérisque (*) : ABC*, par exemple. L'astérisque remplace tout caractère admis. Un nom générique désigne tous les objets dont le nom commence par le préfixe générique sur lesquels l'utilisateur détient des droits. Si l'astérisque n'est pas inclus dans le nom (préfixe) générique, le système considère qu'il s'agit d'un nom d'objet complet. Si le nom complet de l'objet est indiqué et que plusieurs bibliothèques sont explorées, plusieurs objets peuvent être ajoutés, à condition toutefois que la valeur de bibliothèque *ALL ou *ALLUSR puisse être indiquée pour le nom.
nom
Indiquez le nom du module à modifier.

Qualificatif 2 : Biblio

*USRLIBL
La recherche porte uniquement sur les bibliothèques figurant dans la partie utilisateur de la liste des bibliothèques du travail.
*LIBL
La recherche porte sur toutes les bibliothèques de la liste des bibliothèques de l'unité d'exécution en cours jusqu'à ce que la première occurrence soit trouvée.
nom
Indiquez le nom de la bibliothèque contenant le module.

Optimiser module (OPTIMIZE)

Indique le niveau d'optimisation pour le code généré dans le module. La modification du niveau d'optimisation du module oblige le système à recréer le module avec le nouveau niveau d'optimisation.

*SAME
Le niveau d'optimisation du module n'est pas modifié.
*NONE ou 10
Aucune optimisation supplémentaire n'est apportée au code généré. Les variables peuvent être affichées et modifiées lors du débogage.
*BASIC ou 20
Le code est optimisé. Les variables peuvent être affichées mais ne peuvent pas être modifiées lors du débogage.
*FULL ou 30
Une optimisation supplémentaire est apportée au code généré, outre l'optimisation effectuée au niveau d'optimisation 20. Les variables peuvent être affichées mais ne peuvent pas être modifiées lors du débogage.

Remarque :Il se peut que la valeur de la variable affichée lors du débogage soit différente de la valeur en cours.

40
Ce niveau comprend toutes les optimisations effectuées au niveau 30. Il comprend en outre les optimisations désactivant le traçage d'appel et d'instruction. Le traçage des modules avec un niveau d'optimisation 40 ne peut pas être effectué.

Enlever infos observables (RMVOBS)

Indique si les informations observables associées aux modules doivent être enlevées.

*SAME
La valeur reste inchangée.
*ALL
Enlevez les données de débogage (*DBGDTA), les informations nécessaires à la recréation du module (*CRTDTA) à l'aide de CHGMOD et les données de langage intermédiaires (*ILDTA).

Remarque :*ALL ne peut pas être spécifié si le module est activé pour la collecte de données de profilage.

*DBGDTA
Les informations permettant le débogage du module doivent être enlevées. Le module ne peut pas être débogué lorsqu'il est inclus dans un objet programme ou programme de service.
*CRTDTA
Les informations permettant la recréation du module à l'aide de CHMOD, la modification du niveau d'optimisation, la modification de l'attribut de collecte de performances ou la modification de l'attribut de données de profilage sont enlevées.

REMARQUES :

  • *CRTDTA ne peut pas être spécifié si le module est activé pour la collecte de données de profilage.
  • Des données de création (observables ou non) sont requises pour convertir les modules en vue d'une utilisation sur des matériels différents. Par exemple, pour le passage de la technologie CISC (Complex Instruction Set Computer) à la technologie RISC (Reduced Instruction Set Computer).
  • Des modules créés pour l'édition V5R1M0 ou une édition ultérieure (paramètre TGTRLS lors de la création du module) contiendront des données de création non observables même si l'observabilité de *ALL ou *CRTDTA est enlevée.
*ILDTA
Les données de langage intermédiaires sont enlevées.
*NONE
Les informations observables associées au module ne sont pas enlevées.

Données de profilage (PRFDTA)

Indique l'attribut des données de profilage de programme pour le module. Le profilage de programme est une technique d'optimisation évoluée permettant de réorganiser les procédures et le code des procédures à partir de données statistiques (données de profilage).

*SAME
La valeur reste inchangée.
*NOCOL
Ce module n'est pas activé pour la collecte de données de profilage.
*COL
Ce module est activé pour la collecte de données de profilage.

Remarque :*COL ne peut être indiqué que lorsque le niveau d'optimisation du module est supérieur ou égal à *FULL (30).

Forcer recréation module (FRCCRT)

Indique si la recréation du module est forcée.

*NO
La recréation du module n'est pas forcée à moins que les paramètres OPTIMIZE (niveau d'optimisation), ENBPFRCOL (Collecte performance possible) ou PRFDTA (Données de profilage) ne soient modifiés. Cette option laisse au système le soin de déterminer si une modification est requise.
*YES
La recréation du module est forcée. Si des données de création observables ont été enlevées, une recréation (forcée ou non) n'est pas admise.

Texte 'descriptif' (TEXT)

Indique le texte qui décrit brièvement le module et sa fonction.

*SAME
La description n'est pas modifiée.
*BLANK
Aucun texte n'est indiqué.
'descriptif'
Indiquez, entre apostrophes, un texte de 50 caractères au maximum.

Options microcode sous licence (LICOPT)

Indique des options de compilation individuelles. Ce paramètre est destiné au programmeur expérimenté qui est à même d'évaluer les avantages et les inconvénients de chaque option de compilateur sélectionnée. Indiquer une valeur autre que *SAME pour les options du microcode sous licence d'un module ILE entraîne la recréation de ce dernier par le système. Remarque : pour plus d'informations sur les options LICOPT, reportez-vous au manuel ILE Concepts, SC41-5606.

Elément 1 : Options

*SAME
Si l'objet module est recréé, les options de compilation LICOPT existantes sont utilisées pour cette opération. Sinon, les options de compilation LICOPT restent inchangées.
*NONE
La recréation du module est forcée et aucun option LICOPT n'est utilisée.
valeur-caractère
Indiquez une ou plusieurs options de compilation LICOPT. Le fait d'indiquer une valeur autre que *SAME pour les options du microcode sous licence d'un module ILE entraîne la recréation de ce dernier par le système.

Elément 2 : Action

*REPLACE
Les options du microcode sous licence existantes pour le module sont remplacées par les valeurs spécifiées.
*ADD
Les options du microcode sous licence spécifiées sont ajoutées à la fin de la chaîne d'options existante pour le module. En cas de conflit entre les valeurs d'option du microcode sous licence, la dernière valeur spécifiée prend la priorité sur les autres.

Collecte performance possible (ENBPFRCOL)

Ce paramètre est obsolète.

Exemples

Exemple 1 : optimisation pour des performances maximales

CHGMOD   MODULE(XYZ/PERFMOD)  OPTIMIZE(40)

Cette commande optimise le module PERFMOD dans la bibliothèque XYZ afin de garantir des performances optimales.

Exemple 2 : suppression globale de l'observabilité

CHGMOD   MODULE(XYZ/NOOBSERV)  RMVOBS(*ALL)

Cette commande enlève toute l'observabilité du module NOOBSERV dans la bibliothèque XYZ. Il ne peut pas être recréé ni débogué lorsqu'il est inclus dans un objet programme ou programme de service.

Exemple 3 : activation de la collecte de données de profilage

CHGMOD   MODULE(XYZ/PROFMOD)  OPTIMIZE(30)  PRFDTA(*COL)

Cette commande permet au module PROFMOD dans la bibliothèque XYZ de collecter des données de profilage lorsqu'il est inclus dans un objet programme ou un programme de service. Le niveau d'optimisation doit être égal ou supérieur à 30 pour permettre à un module de collecter des données de profilage.

Messages d'erreur

Messages *ESCAPE

CPF5CFA
Les modules de la bibliothèque QSYS ne peuvent pas être modifiés.
CPF5CFB
Aucun module n'a été modifié.
CPF5CFC
&1 modifiés. &2 ne nécessitaient pas de modification. &3 non modifiés.
CPF5CFE
Le module &1 de la bibliothèque &2 n'a pas été modifié.
CPF5CFF
Le module &1 de la bibliothèque &2 n'a pas été modifié.
CPF5CF7
*USRLIBL ou *LIBL non admises avec un nom de module générique ou avec *ALL.
CPF5CF8
Le module &1 de la bibliothèque &2 n'a pas été modifié.
CPF5CF9
Le module &1 de la bibliothèque &2 n'a pas été modifié.
CPF9801
Objet &2 non trouvé dans la bibliothèque &3.
CPF9803
Impossible d'allouer l'objet &2 de la bibliothèque &3.
CPF9804
Objet &2 dans bibliothèque &3 endommagé.
CPF9806
Impossible d'exécuter fonction pour objet &2 de &3.
CPF9810
Bibliothèque &1 non trouvée.
CPF9818
Objet &2 non créé dans la bibliothèque &3.
CPF9819
Objet &2 non créé dans la bibliothèque &3.
CPF9820
Non autorisé à utiliser la bibliothèque &1.
CPF9828
Non autorisé au module &1 de la bibliothèque &2.
CPF9830
Allocation de la bibliothèque &1 impossible.
CPF9899
Erreur lors du traitement de la commande.

© Copyright IBM Corp. Texte d'aide reproduit à des fins de formation.