CHGSRVPGM
Modifier programme de service
En bref
La commande CHGSRVPGM permet de modifier les attributs d'un programme sans recompiler ce dernier.
CHGSRVPGM se lit CHG
(Modifier) + SRVPGM.
Sur IBM i, le nom d'une commande associe presque toujours un verbe et un objet.
Syntaxe minimale
CHGSRVPGM SRVPGM(…)
Paramètres
-
SRVPGMProgramme de service obligatoire -
OPTIMIZEOptimiser programme de service -
USRPRFProfil utilisateur -
USEADPAUTUtiliser droits adoptés -
RMVOBSEnlever infos observables -
PRFDTADonnées de profilage -
FRCCRTForcer recréation -
TEXTTexte 'descriptif' -
LICOPTOptions microcode sous licence -
NBRTHDNombre d'unités d'exécution Number of threads -
ENBPFRCOLCollecte performance possible -
TERASPACEEspace mémoire à téraoctets -
STGMDLModèle d'espace mémoire
Astuce : dans une session 5250, tapez CHGSRVPGM 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 CHGSRVPGM permet de modifier les attributs d'un programme sans recompiler ce dernier. Les attributs qui peuvent être modifiés sont l'attribut d'optimisation, l'attribut de profil utilisateur, l'attribut d'utilisation des droits adoptés, l'attribut de collecte de performances, l'attribut de données de profilage et le texte du programme de service. L'utilisateur peut forcer la recréation d'un programme de service même si les attributs indiqués sont les mêmes que les attributs en cours.
Restrictions :
- Vous devez disposer du droit d'utilisation (*USE) sur la bibliothèque pour le programme de service faisant l'objet de la modification.
- Vous devez disposer des droits d'utilisation *USE et de gestion des objets (*OBJMGT) pour le programme de service faisant l'objet de la modification.
- Vous devez disposer du droit d'utilisation (*USE), du droit de suppression (*DLT) et du droit d'ajout (*ADD) sur la bibliothèque pour pouvoir soit modifier l'attribut d'optimisation (OPTIMIZE), l'attribut de collecte de performances (ENBPFRCOL), l'attribut de données de profilage (PRFDTA) ou les options de microcode sous licence (LICOPT), soit activer l'espace mémoire à téraoctets (TERASPACE), soit forcer la recréation du programme de service en indiquant FRCCRT(*YES).
- Pour pouvoir modifier l'attribut de profil utilisateur (paramètre USRPRF) ou l'attribut d'utilisation des droits adoptés (paramètre USEADPAUT), vous-même ou l'un de vos profils de groupe devez être soit propriétaire du programme de service, soit détenteur des droits spéciaux sur tous les objets (*ALLOBJ) ainsi que des droits spéciaux de l'administrateur de la sécurité (*SECADM).
- Les programmes de service contenus dans les bibliothèques QSYS, QGDDM et QTEMP ne peuvent pas être modifiés à moins que la seule modification indiquée soit une suppression d'informations observables.
Paramètres
| Mot-clé | Description | Valeurs possibles | Remarques |
|---|---|---|---|
| SRVPGM | Programme de service | Nom d'objet qualifié | Obligatoire, clé, positionnel 1 |
| Qualificatif 1: Programme de service | Nom générique, nom, *ALL | ||
| Qualificatif 2: Biblio | Nom, *USRLIBL | ||
| OPTIMIZE | Optimiser programme de service | *SAME, *FULL, *BASIC, *NONE, 40, 30, 20, 10 | Facultatif |
| USRPRF | Profil utilisateur | *SAME, *USER, *OWNER | Facultatif |
| USEADPAUT | Utiliser droits adoptés | *SAME, *YES, *NO | Facultatif |
| RMVOBS | Enlever infos observables | Valeurs uniques: *SAME, *ALL, *NONE Autres valeurs (jusqu'à 4 répétitions): *CRTDTA, *DBGDTA, *BLKORD, *PRCORD |
Facultatif |
| PRFDTA | Données de profilage | *SAME, *NOCOL, *COL, *CLR, *APYBLKORD, *APYPRCORD, *APYALL | Facultatif |
| FRCCRT | Forcer recréation | *NO, *YES, *NOCRT | 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 | ||
| NBRTHD | Nombre d'unités d'exécutionNumber of threads | 1-256, 1, *CALC | Facultatif |
| 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 | ||
| TERASPACE | Espace mémoire à téraoctets | *SAME, *YES, *NO | Facultatif |
| STGMDL | Modèle d'espace mémoire | *SAME, *INHERIT | Facultatif |
Programme de service (SRVPGM)
Indique les programmes de service dont les attributs sont modifiés. Si le nom du programme de service contient un nom générique ou *ALL, il ne peut pas être qualifié, explicitement ou par défaut, par la valeur de bibliothèque *USRLIBL.
Ce paramètre est obligatoire.
Qualificatif 1 : Programme de service
- *ALL
- Tous les programmes de service contenus dans la bibliothèque indiquée, sur laquelle l'utilisateur détient certains droits (droit d'utilisation *USE, par exemple), sont sélectionnés pour la modification.
- nom-générique
- Indiquez le nom générique du programme de service. 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 a 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 des programmes de service dont les attributs sont modifiés.
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.
- nom
- Indiquez le nom de la bibliothèque contenant le programme.
Optimiser programme de service (OPTIMIZE)
Indique si le programme de service est optimisé. Ce paramètre permet d'enlever les instructions redondantes des programmes indiqués. La modification du niveau d'optimisation en cours d'un programme de service oblige le système à recréer ce dernier avec le nouveau niveau d'optimisation.
- *SAME
- La valeur reste inchangée.
- *NONE ou 10
- Le programme de service n'est pas optimisé. Lorsque les programmes de service ILE sont débogués à ce niveau, les variables peuvent être affichées et modifiées.
- *BASIC ou 20
- Le code est optimisé. Lorsque les programmes de service ILE sont débogués à ce niveau, les variables peuvent être affichées, mais pas modifiées.
- *FULL ou 30
- Une optimisation supplémentaire est effectuée, outre celle effectuée au niveau 20. Les variables ne peuvent pas être modifiées, mais peuvent être affichées lors du débogage du programme. Toutefois, la valeur de la variable qui s'affiche au cours du débogage peut être 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 créés à ce niveau d'optimisation ne peut donc pas être effectué.
Profil utilisateur (USRPRF)
Indique si la vérification des droits effectuée pendant l'exécution du programme de service concerne uniquement l'utilisateur de ce programme de service (*USER) ou si elle porte aussi sur le propriétaire du programme de service (*OWNER). Le profil de l'utilisateur et, éventuellement, celui du propriétaire sont utilisés pour déterminer les objets qui peuvent être utilisés par le programme de service, ainsi que les droits détenus sur chaque objet.
Remarque :Pour pouvoir modifier l'attribut de profil utilisateur, vous-même ou l'un de vos profils de groupe devez être soit propriétaire du programme de service, soit détenteur des droits spéciaux sur tous les objets (*ALLOBJ) ainsi que des droits spéciaux de l'administrateur de la sécurité (*SECADM).
- *SAME
- La valeur reste inchangée.
- *USER
- Le programme de service s'exécute sous le profil de l'utilisateur du programme de service.
- *OWNER
- Les profils utilisateur du propriétaire et de l'utilisateur du programme de service sont utilisés pour le traitement du programme. L'ensemble des droits sur les objets associés à ces profils sont pris en compte pour rechercher les objets et y accéder lors du traitement du programme de service. Les droits associés au profil de groupe du propriétaire ne sont pas inclus dans les droits du programme de service en cours d'exécution.
Utiliser droits adoptés (USEADPAUT)
Indique si les droits adoptés des programmes ou des programmes de service précédents figurant dans la liste d'appel sont pris en compte lorsque ce programme de service est exécuté.
Remarque :Pour pouvoir modifier l'attribut d'utilisation des droits adoptés, vous-même ou l'un de vos profils de groupe devez être soit propriétaire du programme de service, soit détenteur des droits spéciaux sur tous les objets (*ALLOBJ) ainsi que des droits spéciaux de l'administrateur de la sécurité (*SECADM).
- *SAME
- La valeur reste inchangée.
- *YES
- Les droits adoptés de programmes ou de programmes de service provenant de niveaux de récursivité précédents sont utilisés lorsque ce programme de service est exécuté.
- *NO
- Les droits adoptés de programmes ou de programmes de service provenant de niveaux de récursivité précédents ne sont pas utilisés lorsque ce programme de service est exécuté.
Enlever infos observables (RMVOBS)
Indique si les informations observables associées aux programmes de service sont enlevées.
- *SAME
- La valeur reste inchangée.
- *ALL
- Toutes les informations observables associées au programme de service sont enlevées, sauf si elles sont nécessaires au bon fonctionnement du programme de service.
REMARQUES :
- Si des données de profilage d'ordre de bloc ont précédemment été appliquées à ce programme de service ILE, le fait de spécifier *ALL au paramètre RMVOBS enlève également l'observabilité *BLKORD.
- *ALL ne peut pas être spécifié si le programme de service ILE est activé pour la collecte de données de profilage.
Voir aussi les remarques concernant la valeur spéciale *CRTDTA.
- *NONE
- Aucune des informations observables associées au programme de service n'est enlevée.
- *DBGDTA
- Toutes les informations observables permettant au programme de service d'être débogué sont enlevées.
- *CRTDTA
- Toutes les données de création observables sont enlevées. Les données de création observables sont nécessaires pour recréer le programme de service à l'aide de la commande CHGSRVPGM ou pour modifier les attributs de programme de service via l'un quelconque des paramètres de commande OPTIMIZE, USRPRF, USEADPAUT, ENBPFRCOL, PRFDTA, LICOPT, TERASPACE ou STGMDL.
REMARQUES :
- *CRTDTA ne peut pas être spécifié si le programme de service ILE est activé pour la collecte de données de profilage.
- Des données de création (observables ou non) sont requises pour convertir les programmes de service 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 de *CRTDTA est enlevée.
- Si le programme de service a été créé pour une édition antérieure à V5R1M0 ou si ce programme contient des modules liés créés pour une édition antérieure à V5R1M0, l'observabilité de *ALL ou de *CRTDTA ne peut pas être enlevée.
- Dans le cas de programmes contenant des modules CL liés créés avec ALWRTVSRC(*YES), le source CL correspondant peut être extrait à l'aide de la commande RTVCLSRC (Extraire un source CL), même après retrait de l'observabilité de *ALL ou de *CRTDTA.
- *BLKORD
- Les données de profilage par ordre de bloc sont enlevées du programme de service.
- *PRCORD
- Les données de profilage par ordre de procédure sont enlevées du programme de service.
Données de profilage (PRFDTA)
Spécifie l'attribut des données de profilage pour les programmes de service. 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
- La collecte des données de profilage n'est pas activée et les données de profilage ne sont pas appliquées.
- *COL
- La collecte des données de profilage est activée pour les modules admissibles.
Remarque :Le fait de spécifier *COL enlève toutes les données de profilage appliquées si de telles données sont appliquées au programme de service.
- *CLR
- Toutes les données de profilage collectées précédemment sont supprimées. Le programme de service reste activé pour la collecte de données de profilage.
- *APYBLKORD
- Les données de profilage d'ordre de bloc sont appliquées à chaque module lié à ce programme de service précédemment activé pour la collecte de données de profilage. La collecte de données de profilage n'est plus activée.
- *APYPRCORD
- Les données de profilage d'ordre de bloc et d'ordre des procédures sont appliquées. La collecte de données de profilage n'est plus activée.
- *APYALL
- Les données de profilage d'ordre de bloc et d'ordre des procédures sont appliquées. La collecte de données de profilage n'est plus activée.
Forcer recréation (FRCCRT)
Indique si la recréation du programme de service est forcée.
- *NO
- La recréation du programme de service n'est pas forcée, excepté si l'un des paramètres suivants à été modifié : Optimiser programme de service (OPTIMIZE), Utiliser droits adoptés (USEADPAUT), Collecte performance possible (ENBPFRCOL), Données de profilage (PRFDTA), Profil utilisateur (USRPRF), Options microcode sous licence (LICOPT), Espace mémoire à téraoctets (TERASPACE) ou Modèle d'espace mémoire (STGMDL). Cette option laisse au système le soin de déterminer si une modification est requise.
- *YES
- La recréation du programme de service est forcée.
- *NOCRT
- Aucune recréation de programme de service n'est effectuée. Si vous tentez de modifier un attribut d'un programme de service nécessitant implicitement la recréation de ce dernier, un message d'erreur est émis et aucun attribut du programme de service n'est modifié. La modification de l'un des paramètres suivants peut entraîner la recréation du programme de service : OPTIMIZE, USEADPAUT, ENBPFRCOL, PRFDTA, USRPRF, LICOPT, TERASPACE ou STGMDL.
Texte 'descriptif' (TEXT)
Indique le texte qui décrit brièvement le programme de service.
- *SAME
- La valeur reste inchangée.
- *BLANK
- Aucun texte n'est indiqué.
- valeur-caractère
- 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 programme de service 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 programme de service 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 programme de service est forcée et aucune option LICOPT n'est utilisée pour tous les modules liés.
- 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 programme de service 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 les modules liés 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 chaque module lié. 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.
Nombre d'unités d'exécution (NBRTHD)Number of threads (NBRTHD)
Indique le nombre maximal d'unités d'exécution à utiliser lors de la recréation des modules liés. La spécification d'un nombre supérieur à 1 permet à la commande de tirer parti des cycles processeur disponibles, notamment dans un système multiprocesseur.
- 1
- Une unité d'exécution unique est utilisée lors de la création de modules liés.
- *CALC
- Le système calcule un nombre maximal raisonnable d'unités d'exécution utilisables qui ne solliciteront pas trop de ressources. En général, il s'agit d'une ou de deux unités d'exécution pour chaque processeur disponible.
- 1 à 256
- Indiquez le nombre maximal d'unités d'exécution à utiliser.
Collecte performance possible (ENBPFRCOL)
Ce paramètre est obsolète.
Espace mémoire à téraoctets (TERASPACE)
Indique si l'objet de programme de service est activé pour gérer l'espace mémoire à téraoctets. Ceci inclut l'espace mémoire à téraoctets alloué par l'objet de module ainsi que les paramètres transmis à partir d'autres objets de programme ou de programme de service autorisant l'espace mémoire à téraoctets.
Si le programme de service modifié a été créé pour TGTRLS (V6R1M0) ou version ultérieure, le programme de service sera activé pour l'espace mémoire à téraoctets, indépendamment de la valeur précisée pour ce paramètre. Si le programme de service modifié a été créé pour une édition antérieure à V6R1M0, la valeur de TERASPACE indiquée sera stockée dans le programme de service et utilisée lorsque le programme de service adoptera une édition antérieure à V6R1M0. Toutefois, si le programme de service existe sur V6R1M0 et éditions ultérieures, il est activé pour l'espace mémoire à téraoctets.
Si le programme de service modifié contient une valeur d'édition cible (TGTRLS) antérieure à V6R1M0, la spécification d'une valeur différente de la valeur d'attribut TERASPACE en cours provoque la recréation du programme de service et le stockage de la valeur indiquée dans les informations du modèle d'objet.
- *SAME
- La valeur du paramètre TERASPACE reste inchangée.
- *NO
- Si le programme de service a été créé pour une édition antérieure à V6R1M0, l'intégration de l'espace mémoire à téraoctets pour les modules liés admissibles prend la valeur No. Pour pouvoir être passé à TERASPACE(*NO), le module lié doit être un modèle d'espace adressable unique.
- *YES
- Si le programme de service a été créé pour une édition antérieure à V6R1M0, l'intégration de l'espace mémoire à téraoctets pour les modules liés admissibles prend la valeur Yes. Pour qu'un module lié puisse être passé à TERASPACE(*YES), son édition doit être égale ou supérieure à V4R4M0.
Modèle d'espace mémoire (STGMDL)
Indique l'attribut de modèle d'espace mémoire du programme de service.
- *SAME
- Le modèle d'espace mémoire du programme de service reste inchangé.
- *INHERIT
- Le programme de service peut utiliser soit un modèle d'espace adressable unique, soit un espace mémoire à téraoctets. Le type de mémoire utilisé dépend du type de mémoire requis par l'appelant.
Restrictions :
- L'attribut de groupe d'activation du programme de service doit être *CALLER.
- Le modèle d'espace mémoire en cours pour le programme de service ne peut pas être *TERASPACE.
- L'édition cible du programme de service doit être V5R1M0 ou une édition ultérieure.
- L'édition cible de tous les modules liés au sein du programme de service doit être V5R1M0 ou une édition ultérieure.
Exemples
Exemple 1 : optimisation d'un programme de service
CHGSRVPGM SRVPGM(PROG1/SERVICE) OPTIMIZE(*FULL)
USRPRF(*OWNER)
Le programme de service SERVICE dans la bibliothèque PROG1 est optimisé et le profil utilisateur sous lequel il est traité est modifié pour inclure le profil utilisateur du propriétaire du programme de service. Le programme de service est recréé uniquement si les attributs indiqués diffèrent de ceux du programme de service en cours.
Exemple 2 : modification du texte d'un programme de service
CHGSRVPGM PGM(*USRLIBL/KNUTE)
TEXT('Description du programme de service')
Cette commande modifie le texte d'un programme de service KNUTE. La partie utilisateur de la liste des bibliothèques permet de trouver le programme de service.
Exemple 3 : optimisation de plusieurs programmes de service
CHGSRVPGM SRVPGM(PROG1/ACE*) OPTIMIZE(40)
Tous les programmes de service dans la bibliothèque PROG1 dont les noms commencent par ACE sont optimisés au niveau 40 ou à leur niveau d'optimisation maximal.
Exemple 4 : modification du texte de plusieurs programmes de service
CHGSRVPGM SRVPGM(PROG2/*ALL) TEXT('Texte générique')
Cette commande modifie le texte de tous les programmes de service dans la bibliothèque PROG2 en texte générique.
Exemple 5 : activation de la collecte de données de profilage
CHGSRVPGM SRVPGM(PROG1/PROFPGM) PRFDTA(*COL)
Cette commande permet la collecte de données de profilage pour le programme de service PROFPGM dans la bibliothèque PROG1. Si des données de profilage sont appliquées pour PROFPGM dans la bibliothèque PROG1 avant l'émission de cette commande, toutes les données de profilage appliquées seront enlevées.
Exemple 6 : application des données de profilage
CHGSRVPGM SRVPGM(PROG1/PROFPGM) PRFDTA(*APYALL)
Cette commande applique les données de profilage par ordre de bloc et de procédure au programme de service PROFPGM dans la bibliothèque PROG1. La collecte de données de profilage n'est plus activée pour le programme de service PROFPGM dans la bibliothèque PROG1.
Messages d'erreur
Messages *ESCAPE
- CPF223C
- Non autorisé à modifier attribut USEADPAUT pour &1 de &2 type *&3.
- CPF223E
- Echec de la vérification des droits sur l'attribut d'utilisation de droits adoptés.
- CPF5CEB
- Programme de service &1 introuvable dans bibliothèque &2.
- CPF5CEC
- &1 modifiés. &2 ne nécessitaient pas de modification. &3 non modifiés.
- CPF5CED
- Aucun programme de service n'a été modifié.
- CPF5CEE
- Les programmes de service des bibliothèques QSYS et QGDDM ne peuvent pas être modifiés.
- CPF5CEF
- Valeur *USRLIBL non admise avec nom générique ou *ALL.
- CPF5CF0
- Utilisateur &3 non autorisé à modifier &1.
- CPF5CF1
- Impossible de supprimer les informations observables.
- CPF5CF2
- Utilisateur &3 non autorisé à modifier &1.
- CPF5CF3
- Programme de service &1 de la bibliothèque &2 non modifié.
- CPF5CF4
- Programme de service &1 de &2 non modifié.
- CPF5D04
- Non autorisé au programme de service &1 de la bibliothèque &2.
- CPF5D0A
- Impossible de supprimer l'observabilité de l'objet &1, type *&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.
- CPF9830
- Allocation de la bibliothèque &1 impossible.
© Copyright IBM Corp. Texte d'aide reproduit à des fins de formation.