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
-
MODULEModule obligatoire -
OPTIMIZEOptimiser module -
RMVOBSEnlever infos observables -
PRFDTADonnées de profilage -
FRCCRTForcer recréation module -
TEXTTexte 'descriptif' -
LICOPTOptions microcode sous licence -
ENBPFRCOLCollecte performance possible
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.