Aller au contenu

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

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.