UPDPGM
Mettre à jour un programme
En bref
La commande UPDPGM (Mettre à jour un programme) peut être utilisée pour remplacer les modules d'un programme lié ILE (Integrated Language Environment) par d'autres modules du système, sans modifier ou recompiler le programme lié.
UPDPGM se lit UPD
(Mettre à jour) + PGM.
Sur IBM i, le nom d'une commande associe presque toujours un verbe et un objet.
Syntaxe minimale
UPDPGM PGM(…) MODULE(…)
Paramètres
-
PGMProgramme obligatoire -
MODULEModule obligatoire -
RPLLIBBibliothèque de remplacement -
BNDSRVPGMLier programme de service -
SRVPGMLIBNom bibliothèque *SRVPGM lié -
BNDDIRRépertoire de liage -
ACTGRPGroupe d'activation -
OPTIONOptions de création -
DETAILDétail liste
Astuce : dans une session 5250, tapez UPDPGM 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 UPDPGM (Mettre à jour un programme) peut être utilisée pour remplacer les modules d'un programme lié ILE (Integrated Language Environment) par d'autres modules du système, sans modifier ou recompiler le programme lié. Les modules remplacés doivent être des objets modules (*MODULE) du système.
D'autres travaux qui utilisent le programme lié peuvent s'exécuter pendant la mise à jour du programme à l'aide de cette commande. Le programme lié en cours d'exécution est transféré dans la bibliothèque QRPLOBJ et une version mise à jour du programme est placée dans la bibliothèque du programme lié. Les activations en cours du programme continuent à s'exécuter avec la version du programme dans la bibliothèque QRPLOBJ.
Restrictions :
- Vous devez disposer des droits d'utilisation (*USE) et d'ajout (*ADD) sur la bibliothèque du programme lié.
- Vous devez disposer des droits d'utilisation (*USE), de gestion des objets (*OBJMGT) et d'existence sur l'objet (*OBJEXIST) pour le programme lié.
- Vous devez être propriétaire du programme lié ou membre du groupe propriétaire, ou posséder le droit spécial sur tous les objets (*ALLOBJ).
- Vous devez disposer du droit d'utilisation (*USE) sur les objets suivants :
- Objets *MODULE indiqués à l'invite Module (paramètre MODULE) et leur bibliothèque, droit *EXECUTE sur la bibliothèque dans laquelle le module réside.
- Objets *SRVPGM indiqués à l'invite Lier programme de service (paramètre BNDSRVPGM).
- Objets *BNDDIR indiqués à l'invite Répertoire de liage (paramètre BNDDIR) et leur bibliothèque, droit *EXECUTE sur la bibliothèque ainsi que tous les objets utilisés pour résoudre les symboles externes des objets *BNDDIR et leur bibliothèque.
Paramètres
| Mot-clé | Description | Valeurs possibles | Remarques |
|---|---|---|---|
| PGM | Programme | Nom d'objet qualifié | Obligatoire, positionnel 1 |
| Qualificatif 1: Programme | Nom | ||
| Qualificatif 2: Biblio | Nom, *USRLIBL, *CURLIB | ||
| MODULE | Module | Valeurs uniques: *NONE Autres valeurs (jusqu'à 300 répétitions): Nom d'objet qualifié |
Obligatoire, positionnel 2 |
| Qualificatif 1: Module | Nom générique, nom, *ALL | ||
| Qualificatif 2: Biblio | Nom, *LIBL, *CURLIB, *USRLIBL | ||
| RPLLIB | Bibliothèque de remplacement | Valeurs uniques: *ONLY, *FIRST, *MODULE Autres valeurs: Liste de qualificatifs |
Facultatif |
| Qualificatif 1: Bibliothèque de remplacement | Nom | ||
| BNDSRVPGM | Lier programme de service | Valeurs uniques: *NONE Autres valeurs (jusqu'à 300 répétitions): Liste d'éléments |
Facultatif |
| Élément 1: Programme de service | Nom d'objet qualifié | ||
| Qualificatif 1: Programme de service | Nom générique, nom, *ALL | ||
| Qualificatif 2: Biblio | Nom, *LIBL | ||
| Élément 2: Activation | *SAME, *IMMED, *DEFER | ||
| SRVPGMLIB | Nom bibliothèque *SRVPGM lié | Valeurs uniques: *SAME, *LIBL Autres valeurs: Liste de qualificatifs |
Facultatif |
| Qualificatif 1: Nom bibliothèque *SRVPGM lié | Nom | ||
| BNDDIR | Répertoire de liage | Valeurs uniques: *NONE Autres valeurs (jusqu'à 300 répétitions): Nom d'objet qualifié |
Facultatif |
| Qualificatif 1: Répertoire de liage | Nom | ||
| Qualificatif 2: Biblio | Nom, *LIBL, *CURLIB, *USRLIBL | ||
| ACTGRP | Groupe d'activation | Nom, *SAME | Facultatif |
| OPTION | Options de création | Values (jusqu'à 7 répétitions): *GEN, *NOGEN, *DUPPROC, *NODUPPROC, *DUPVAR, *NODUPVAR, *WARN, *NOWARN, *TRIM, *NOTRIM, *RSLVREF, *UNRSLVREF, *NOEVENTF, *EVENTF | Facultatif |
| DETAIL | Détail liste | *NONE, *BASIC, *EXTENDED, *FULL | Facultatif |
Programme (PGM)
Indique le programme lié à mettre à jour.
Ce paramètre est obligatoire.
Qualificatif 1 : Programme
- nom
- Indiquez le nom du programme lié à mettre à jour.
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.
- *CURLIB
- La recherche porte sur la bibliothèque en cours du travail. Si aucune bibliothèque n'est indiquée, QGPL est utilisée.
- nom
- Indiquez le nom de la bibliothèque dans laquelle se trouve le programme lié.
Module (MODULE)
Indique le nom des objets *MODULE existants qui doivent remplacer les modules de même nom dans le programme lié. Si plusieurs modules du programme lié portent le même nom, l'invite Bibliothèque de remplacement (paramètre RPLLIB) indique lequel doit être remplacé.
Si le module remplacé et le module de remplacement proviennent de deux bibliothèques différentes, une fois la mise à jour terminée, le module reste dans la bibliothèque où il se trouvait lors de la création du programme. Si le paramètre RPLLIB est requis pour déterminer quel module doit être remplacé, la valeur à indiquer pour celui-ci ne change pas après la mise à jour. Jusqu'à 300 noms peuvent être définis.
Ce paramètre est obligatoire.
Valeurs particulières
- *NONE
- Aucun module n'est indiqué.
Qualificatif 1 : Module
- *ALL
- Tous les modules portant le même nom, sur lesquels l'utilisateur détient des droits, remplacent les modules du programme lié.
- nom-générique
- Indiquez le nom générique des modules qui remplacent les modules du programme lié. Un nom générique est composé d'un ou plusieurs caractères suivis d'un astérisque (*) : ABC*, par exemple. Tous les modules dont le nom commence par le nom générique et sur lesquels l'utilisateur détient des droits remplacent les modules du programme lié.
- nom
- Indiquez le nom du module qui remplace un module du programme lié.
Qualificatif 2 : Biblio
- *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.
- *CURLIB
- La recherche porte sur la bibliothèque en cours du travail. Si aucune bibliothèque n'est indiquée, QGPL est utilisée.
- *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 sur laquelle doit porter la recherche.
Indiquez le nom du module qui remplace un module du programme lié.
Bibliothèque de remplacement (RPLLIB)
Indique la méthode utilisée pour sélectionner le module à remplacer lorsque plusieurs modules du programme lié portent le nom indiqué dans le paramètre MODULE.
- *ONLY
- Le programme lié contient un seul module portant le nom indiqué et le remplacement est effectué. Si plusieurs modules du programme lié portent le nom indiqué, une erreur est signalée et le programme lié n'est pas mis à jour.
- *FIRST
- Le premier module portant le nom indiqué dans la liste des modules du programme lié est remplacé.
- *MODULE
- Le module appartenant à la même bibliothèque que le module indiqué est remplacé. Si aucun module portant le nom indiqué ne provient de la même bibliothèque que le module de remplacement, aucun module n'est remplacé et une erreur est signalée.
- nom
- Indiquez le nom de la bibliothèque d'origine du module à remplacer. Si aucun module portant le nom indiqué ne provient de la bibliothèque précisée, aucun module n'est remplacé.
Lier programme de service (BNDSRVPGM)
Indique le programme de service dans lequel des exportations doivent être recherchées lorsque des demandes d'importation pour la résolution des symboles externes ne peuvent pas être satisfaites par les modules et les programmes de service du programme lié mis à jour. Si le programme de service indiqué peut résoudre les symboles externes, il est ajouté aux programmes de service qui sont liés au programme lié. Jusqu'à 300 noms peuvent être définis.
Vous pouvez contrôler l'activation de chaque programme de service. Vous pouvez indiquer si le programme de service référencé est activé au même moment que le programme en cours de mise à jour ou s'il est différé jusqu'à l'appel d'une procédure exportée du programme de service référencé. La mise en différé de l'activation peut améliorer les performances de votre application.
Valeurs particulières
- *NONE
- Aucun programme de service n'est examiné pendant la résolution des symboles.
Elément 1 : Programme de service
-
Qualificatif 1 : Programme de service
- *ALL
- Tous les programmes de service sont examinés pendant la résolution des symboles.
- nom-générique
- Indiquez le nom générique des programmes de service à examiner pendant la résolution des symboles. Un nom générique est composé d'un ou plusieurs caractères suivis d'un astérisque (*) : ABC*, par exemple. Tous les programmes de service dont le nom commence par le nom générique et pour lesquels l'utilisateur dispose de droits sont examinés pendant la résolution des symboles.
- nom
- Indiquez le nom du programme de service à examiner pendant la résolution des symboles.
-
Qualificatif 2 : Biblio
- *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 sur laquelle doit porter la recherche. QTEMP n'est pas un nom de bibliothèque admis pour ce paramètre.
Elément 2 : Activation
- *SAME
- L'activation du programme de service référencé reste inchangée.
- *IMMED
- L'activation du programme de service lié a lieu dès que le programme en cours de mise à jour est activé.
- *DEFER
- L'activation du programme de service lié peut être mise en différé jusqu'à ce qu'une fonction exportée par ce programme soit appelée.
Nom bibliothèque *SRVPGM lié (SRVPGMLIB)
Indique le nom de bibliothèque utilisé pour la conversion en programmes de service liés. Une valeur autre que *SAME peut être spécifiée pour ce paramètre si l'attribut de programme ALWLIBUPD a pour valeur *YES.
- *SAME
- Utilisez le nom de bibliothèque à partir duquel le programme de service (*SRVPGM) est lié.
- *LIBL
- La recherche s'effectue dans toutes les bibliothèques de la liste des bibliothèques du travail jusqu'à ce que la première correspondance soit trouvée pour chaque objet *SRVPGM lié. La première occurrence d'un objet *SRVPGM est utilisée pour la conversion en programmes de service liés et l'objet *LIBL est sauvegardé pour être utilisé lors de l'exécution. Si aucune correspondance n'est trouvée dans la liste des bibliothèques du travail, l'objet *SRVPGM lié au programme est utilisé. Vous devez disposer du droit *USE sur les objets *SRVPGM de la bibliothèque spécifiée et du droit *EXECUTE sur la bibliothèque elle-même.
Remarque :Les programmes de service provenant des répertoires de liage implicites (programmes de service fournis par le système) ne sont pas modifiés.
- nom
- Indiquez le nom de la bibliothèque à utiliser en premier pour la conversion vers tous les programmes de service liés. Si un objet *SRVPGM lié existe dans la bibliothèque spécifiée au paramètre SRVPGMLIB, cet objet *SRVPGM est utilisé à la place de l'objet *SRVPGM lié et le nom de bibliothèque spécifié au paramètre SRVPGMLIB est sauvegardé pour être utilisé lors de l'exécution. Si aucun objet *SRVPGM n'existe dans cette bibliothèque, l'objet *SRVPGM lié au programme est utilisé. Vous devez disposer du droit *USE sur les objets *SRVPGM de la bibliothèque spécifiée et du droit *EXECUTE sur la bibliothèque elle-même.
Répertoire de liage (BNDDIR)
Indique le répertoire de liage dans lequel des exportations doivent être recherchées lorsque des demandes d'importation pour la résolution des symboles externes ne peuvent pas être satisfaites par (1) les modules et les programmes de service du programme lié mis à jour ou par (2) le programme de service indiqué au paramètre BNDSRVPGM. Si un module ou un programme de service listé dans le répertoire de liage indiqué peut résoudre les symboles externes, il est ajouté aux modules ou aux programmes de service qui sont liés au programme lié. Jusqu'à 300 noms peuvent être définis.
Valeurs particulières
- *NONE
- Aucun répertoire de liage n'est indiqué.
Qualificatif 1 : Répertoire de liage
- nom
- Indiquez le nom du répertoire de liage à utiliser pendant la résolution des symboles.
Qualificatif 2 : Biblio
- *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.
- *CURLIB
- La recherche porte sur la bibliothèque en cours du travail. Si aucune bibliothèque n'est indiquée, QGPL est utilisée.
- *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 sur laquelle doit porter la recherche.
Groupe d'activation (ACTGRP)
Indique le groupe d'activation à utiliser pour le programme mis à jour.
- *SAME
- Le groupe d'activation n'est pas modifié. Indiquez cette valeur si le groupe d'activation *CALLER ou *NEW a été attribué au programme au moment de sa création.
- nom
- Indiquez le nom du groupe d'activation associé à ce programme appelé. Si un groupe d'activation nommé a été attribué au programme au moment de sa création, le nom de ce groupe d'activation peut être remplacé par un autre.
Remarque :La modification du nom du groupe d'activation peut avoir une influence sur le fonctionnement du programme (ou programme de service). Reportez-vous au manuel ILE Concepts, SC41-5606 pour obtenir des informations détaillées sur le fonctionnement des groupes d'activation nommés.
Options de création (OPTION)
Indique les options à utiliser lorsque le programme lié est mis à jour.
Vous pouvez indiquer jusqu'à 7 valeurs pour ce paramètre.
Création d'objets programme
- *GEN
- Un objet programme mis à jour est créé.
- *NOGEN
- Aucun objet programme mis à jour n'est créé.
Noms de procédure en double
- *DUPPROC
- Pendant la résolution des symboles, les noms des procédures exportées depuis les modules et les programmes de service ne doivent pas nécessairement être uniques. Pour plus de détails, reportez-vous au manuel ILE Concepts, SC41-5606.
- *NODUPPROC
- Pendant la résolution des symboles, le nom de chacune des procédures exportées depuis les modules et les programmes de service doit être unique.
Noms de variable en double
- *DUPVAR
- Pendant la résolution des symboles, les noms des variables exportées depuis les modules et les programmes de service ne doivent pas nécessairement être uniques. Pour plus de détails, reportez-vous au manuel ILE Concepts, SC41-5606.
- *NODUPVAR
- Pendant la résolution des symboles, le nom de chacune des variables exportées depuis les modules et les programmes de service doit être unique.
Génération des messages de diagnostic
- *WARN
- Les messages de diagnostic appropriés sont signalés. En outre, si vous admettez les procédures ou les variables en double (*DUPPROC ou *DUPVAR), les doublons éventuels sont signalés à l'aide d'un message de diagnostic.
- *NOWARN
- Aucun message d'information ou de diagnostic n'est généré.
Suppression d'un module obsolète
Un module obsolète est un module du programme lié mis à jour. A l'origine, ce module était lié dans le programme d'un répertoire de liage afin de résoudre une ou plusieurs importations. Les importations ne sont pas résolues pour la mise à jour de ce programme.
- *NOTRIM
- Les modules obsolètes ne sont pas enlevés du programme lié.
Remarque :Lorsque *NOTRIM est indiqué, la taille des programmes risque, avec la durée, d'augmenter de façon significative.
- *TRIM
- Les modules obsolètes sont enlevés du programme lié.
Remarque :Si les modules obsolètes sont enlevés du programme lié, les exportations que les modules contiennent ne seront pas disponibles pour la mise à jour d'autres programmes.
Résolution des références (importations)
- *RSLVREF
- Toutes les importations doivent être résolues dans des exportations pour le programme lié à mettre à jour.
- *UNRSLVREF
- Toutes les importations ne doivent pas nécessairement être résolues dans des exportations pour le programme lié à mettre à jour.
Remarque :Si cette commande contient une importation non résolue, une erreur sera signalée lors de l'exécution de la commande.
Prise en charge des fichiers événements
- *NOEVENTF
- Ne crée pas le fichier événements destiné aux outils client. Les outils clients utilisent ce fichier pour fournir le suivi intégré des erreurs. Un fichier événements est normalement créé lorsque vous mettez à jour un programme à partir des outils client.
- *EVENTF
- Crée un fichier événements destiné aux outils client. Le fichier est créé en tant que membre du fichier EVFEVENT dans la bibliothèque destinée à recevoir l'objet programme mis à jour. Si le fichier EVFEVENT n'existe pas, il est créé automatiquement. Le nom de membre du fichier événements est identique à celui de l'objet mis à jour.
Les outils clients utilisent ce fichier pour fournir le suivi intégré des erreurs. Un fichier événements est normalement créé lorsque vous mettez à jour un programme à partir des outils client.
Détail liste (DETAIL)
Indique le niveau de détail du listage d'éditeur de liens à imprimer. Le fichier imprimante *LIBL/QSYSPRT est utilisé pour créer le listage.
- *NONE
- Aucun listage d'éditeur de liens n'est imprimé.
- *BASIC
- La table récapitulative abrégée, les options transmises à cette commande et des statistiques de traitement sont imprimées.
- *EXTENDED
- La table récapitulative développée et des informations concernant le liage sont imprimées, en plus des informations fournies par le listage *BASIC (qui comprend la table récapitulative abrégée, les options transmises à cette commande et des statistiques de traitement).
- *FULL
- La liste des références croisées est imprimée, en plus des informations fournies par le listage *EXTENDED (qui comprend la table récapitulative développée, des informations concernant le liage, la table récapitulative abrégée, les options transmises à cette commande et des statistiques de traitement).
Exemples
UPDPGM PGM(STAR) MODULE(SKY/NOVA) RPLLIB(*FIRST)
Cette commande remplace le premier module nommé NOVA présent dans l'objet programme STAR par le module NOVA de la bibliothèque SKY.
Messages d'erreur
Messages *ESCAPE
- CPF223D
- Non autorisé à mettre à jour &1 de &2 type *&3.
- CPF223E
- Echec de la vérification des droits sur l'attribut d'utilisation de droits adoptés.
- CPF5CA7
- La valeur de SRVPGMLIB doit être *SAME lorsque ALWLIBUPD a pour valeur *NO.
- CPF5CE0
- Le programme &1 n'a pas été mis à jour.
- CPF5CE2
- Erreur inattendue lors de la mise à jour du programme ou du programme de service.
- CPF5D1B
- La mise à jour du programme &1 de la bibliothèque &2 n'est pas admise.
© Copyright IBM Corp. Texte d'aide reproduit à des fins de formation.