Aller au contenu

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

  • SRVPGM Programme de service obligatoire
  • OPTIMIZE Optimiser programme de service
  • USRPRF Profil utilisateur
  • USEADPAUT Utiliser droits adoptés
  • RMVOBS Enlever infos observables
  • PRFDTA Données de profilage
  • FRCCRT Forcer recréation
  • TEXT Texte 'descriptif'
  • LICOPT Options microcode sous licence
  • NBRTHD Nombre d'unités d'exécution Number of threads
  • ENBPFRCOL Collecte performance possible
  • TERASPACE Espace mémoire à téraoctets
  • STGMDL Modè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 :

  1. L'attribut de groupe d'activation du programme de service doit être *CALLER.
  2. Le modèle d'espace mémoire en cours pour le programme de service ne peut pas être *TERASPACE.
  3. L'édition cible du programme de service doit être V5R1M0 ou une édition ultérieure.
  4. 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.