Aller au contenu

RMVMSG

Enlever un message

En bref

La commande RMVMSG permet à un programme d'enlever un message donné, ou un ensemble de messages, d'une file d'attente de messages.

RMVMSG se lit RMV (Retirer) + MSG. Sur IBM i, le nom d'une commande associe presque toujours un verbe et un objet.

Syntaxe minimale

RMVMSG

Paramètres

  • PGMQ File msg poste liste d'appel
  • MSGQ File attente messages
  • MSGKEY Clé du message
  • CLEAR Mise à blanc
  • RMVEXCP Enlever exception non gérée
  • RJTDFTRPY Rejet réponse par défaut

Astuce : dans une session 5250, tapez RMVMSG 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 : Compiled CL program or interpreted REXX (*BPGM *IPGM *BREXX *IREXX)
Compatible multitâche : Oui

La commande RMVMSG permet à un programme d'enlever un message donné, ou un ensemble de messages, d'une file d'attente de messages. Si un message d'interrogation resté sans réponse est retiré, la réponse par défaut est envoyée avant le retrait. Si la file d'attente n'est pas allouée au travail au cours duquel cette commande est lancée, elle le sera implicitement pendant toute la durée d'exécution de la commande, à condition qu'elle ne soit pas allouée à un autre travail.

Restrictions :

  1. Cette commande n'est admise que dans un programme CL compilé.
  2. Pour enlever un message de la file d'attente de messages, vous devez disposer du droit *CHANGE sur cette file d'attente, ainsi que du droit *USE sur la bibliothèque dans laquelle elle est enregistrée.

Paramètres

Mot-clé Description Valeurs possibles Remarques
PGMQ File msg poste liste d'appel Valeurs uniques: *ALLINACT, *EXT
Autres valeurs: Liste d'éléments
Facultatif
Élément 1: Relation *SAME, *PRV
Élément 2: ID poste liste d'appel Liste d'éléments
Élément 1: Poste de liste d'appel Valeur caractère, *
Élément 2: Module Nom, *NONE
Élément 3: Programme lié Nom, *NONE
MSGQ File attente messages Valeurs uniques: *PGMQ
Autres valeurs: Nom d'objet qualifié
Facultatif
Qualificatif 1: File attente messages Nom
Qualificatif 2: Biblio Nom, *LIBL, *CURLIB
MSGKEY Clé du message Valeur caractère Facultatif
CLEAR Mise à blanc *BYKEY, *ALL, *KEEPUNANS, *OLD, *NEW Facultatif
RMVEXCP Enlever exception non gérée *YES, *NO Facultatif
RJTDFTRPY Rejet réponse par défaut *NOALWRJT, *ALWRJT Facultatif

File msg poste liste d'appel (PGMQ)

Indique la file d'attente de messages de postes de liste d'appels d'où les messages doivent être retirés. Il peut s'agir de la file d'attente externe (*EXT) ou d'une file d'attente associée à un poste de liste d'appels.

Remarques :

  1. Si la valeur CLEAR(*BYKEY) est indiquée, le paramètre PGMQ n'est pas pris en compte.
  2. Si vous renseignez ce paramètre, vous ne pouvez pas indiquer de valeur au paramètre File attente messages (MSGQ).

Valeurs uniques

*ALLINACT
Tous les messages de poste de liste d'appels inactif sont enlevés de la file d'attente de messages du travail de l'utilisateur. Si cette valeur est indiquée, *ALL doit être précisé au paramètre Mise à blanc (CLEAR).
*EXT
Le message doit être retiré de la file d'attente de messages externe du travail.

Elément 1 : Relation

Deux éléments de paramètre permettent de spécifier la file d'attente de messages de poste de liste d'appels dans laquelle le message doit être enlevé. Le premier élément indique si la file d'attente est associée au programme ou à la procédure identifié par le second élément, ou bien à l'appelant de ce programme ou de cette procédure.

*SAME
Le message doit être enlevé de la file d'attente de messages du programme ou de la procédure identifié par le second élément.
*PRV
Le message doit être retiré de la file d'attente de messages du programme ou de la procédure ayant appelé le programme ou la procédure identifié par le second élément du paramètre.

Remarque :Si la file d'attente de messages qui précède celle identifiée par la second valeur est destinée à une PEP (procédure d'entrée de programme) ILE, le message est retiré de la file d'attente de messages qui précède immédiatement la file d'attente de messages PEP. En l'occurrence, il s'agit des deux files d'attente de messages qui précèdent celle identifiée par le programme ou la procédure qualifiée.

Elément 2 : ID poste liste d'appel

Le deuxième élément de ce paramètre permet de fournir les informations nécessaires pour identifier un poste de liste d'appels. ce paramètre comporte trois éléments. L'élément 1 indique un nom de programme OPM ou de procédure ILE, ou encore une valeur spéciale. L'élément 2 précise le nom du module ILE utilisé comme qualificatif de la valeur spécifiée dans l'élément 1. L'élément 3 peut indiquer un nom de programme OPM ou ILE ou encore un nom de programme de service, suivant ce qui a été défini dans l'élément 1. L'élément 3 sert également de qualificatif de la valeur spécifiée dans l'élément 1.

Elément 1 : Poste de liste d'appel

*
Identifie le programme OPM ou la procédure ILE exécutant cette commande.
nom
Indiquez le nom du programme OPM ou de la procédure ILE utilisé(e) pour identifier le poste de liste d'appel.

Le nom de la procédure seul ne permet pas toujours d'identifier la procédure correcte, car différentes procédures portant le même nom peuvent être exécutées dans un travail. Une procédure peut être définie plus précisément en spécifiant l'élément 2 ou les éléments 2 et 3.

Le système commence par rechercher le nom indiqué parmi les programmes ou les procédures ayant été appelés en dernier.

Si cet élément désigne un programme OPM, le nom indiqué ne peut pas dépasser 10 caractères. S'il identifie une procédure ILE, le nom ne peut pas dépasser 256 caractères.

Il est possible d'indiquer des noms de procédure imbriqués en séparant ces derniers par un signe deux-points (:). Dans ce cas, le premier nom identifié est celui de la procédure supérieure, suivi par les procédures qu'elle contient. Le nom de la procédure inférieure est identifié en dernier dans la chaîne.

Vous pouvez indiquer des noms partiels de programmes ou de procédures en tapant trois signes inférieur à (<<<) au début du nom ou trois signes supérieur à (>>>) à la fin du nom. Si vous utilisez à la fois les signes inférieur à et supérieur à, le nom du programme ou de la procédure ne peut pas dépasser 250 caractères.

Pour la recherche d'un nom partiel de programme ou de procédure :

  • Les signes inférieur à (<<<) sont tronqués lorsqu'ils sont indiqués seuls au début d'un nom de programme ou de procédure et que le reste de la chaîne de caractère est justifié à droite. Les caractères restants de la chaîne sont comparés au programme ou à la procédure en cours de la pile d'appels, en partant du dernier caractère du nom de programme ou de procédure.
  • Les signes supérieur à (>>>) sont tronqués lorsqu'ils sont indiqués seuls à la fin d'un nom de programme ou de procédure. Les caractères restants de la chaîne sont comparés au programme ou à la procédure en cours de la pile d'appels, en partant du premier caractère du nom de programme ou de procédure.
  • Les signes inférieur à (<<<) et supérieur à (>>>) sont tronqués lorsqu'ils sont utilisés ensemble pour un nom de programme ou de procédure. Les caractères restants sont utilisés pour analyser et comparer la longueur de la chaîne précisée avec le nom du programme ou de la procédure en cours dans la pile d'appels.

Elément 2 : Module

*NONE
Aucun qualificatif de module ILE n'est fourni.
nom
Indiquez le nom du module ILE à utiliser pour identifier la file d'attente de messages. Ce nom identifie le module dans lequel la procédure a été compilée.

Elément 3 : Programme

*NONE
Aucun qualificatif du programme n'est fourni.
nom
Indiquez le nom du programme à utiliser pour identifier la file d'attente de messages. Ce nom identifie le programme auquel la procédure a été liée.

File attente messages (MSGQ)

Indique la file d'attente de messages d'où un ou plusieurs messages doivent être retirés. Si vous utilisez ce paramètre, vous ne pouvez pas renseigner le paramètre File msg poste liste d'appel (PGMQ).

Valeurs uniques

*PGMQ
La file d'attente de messages indiquée au paramètre File msg poste liste d'appel (PGMQ) est la seule file d'attente d'où sont enlevés des messages. Vous ne pouvez pas indiquer simultanément CLEAR(*KEEPUNANS) et MSGQ(*PGMQ).

Qualificatif 1 : File attente messages

nom
Indiquez le nom de la file d'attente où se trouvent les messages à enlever.

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 file d'attente de messages est recherchée dans la bibliothèque en cours du travail. Si cette dernière n'est pas précisée, QGPL est prise par défaut.
nom
Indiquez le nom de la bibliothèque contenant la file d'attente de messages.

Clé du message (MSGKEY)

Indique le nom de la variable du langage de contrôle (CL) qui contient la clé de référence du message à supprimer. Ce paramètre n'est admis que si CLEAR(*BYKEY) est également précisé.

Mise à blanc (CLEAR)

Indique si un message ou plusieurs messages doivent être supprimés de la file d'attente.

*BYKEY
Le message identifié par la variable en langage de contrôle (CL) indiqué au paramètre Clé du message (MSGKEY) doit être retiré de la file d'attente de messages.
*ALL
Tous les messages doivent être retirés de la file d'attente indiquée.
*KEEPUNANS
Tous les messages, exception faite des messages d'interrogation restés sans réponse, sont supprimés de la file d'attente indiquée. Si cette valeur est indiquée, MSGQ(*PGMQ) ne peut être utilisé ; vous devez indiquer un nom de file d'attente de messages.
*OLD
Tous les anciens messages de la file d'attente indiquée sont supprimés.
*NEW
Tous les nouveaux messages de la file d'attente indiquée sont supprimés.

Enlever exception non gérée (RMVEXCP)

Indique l'action à effectuer lorsqu'un message d'exception non traitée est rencontré. Il s'agit d'un message d'arrêt programme, d'avertissement ou d'état ayant été envoyé à une procédure ILE. Lorsque cette commande est lancée, la procédure ILE n'a pas encore effectué d'action pour prévenir le système que l'exception est traitée. Cette action peut être l'appel d'un programme CL qui supprimera le message d'exception. Pour plus d'informations sur les actions susceptibles d'être prises par une procédure ILE, reportez-vous au manuel ILE Concepts, SC41-5606.

Ce paramètre est correct uniquement lorsque vous gérez une file d'attente de messages associée à un poste de liste d'appels correspondant à une procédure ILE. Il n'est pas pris en compte lorsque vous gérez une file d'attente de messages associée à un poste de liste d'appels correspondant à un programme OPM AS/400.

*YES
Le message d'exception non traitée est enlevé de la file d'attente de messages indiquée. En conséquence, l'exception est traitée.
*NO
Le message d'exception n'est pas enlevé de la file d'attente de messages indiquée. Il y est maintenu en tant que message d'exception non traitée.

Rejet réponse par défaut (RJTDFTRPY)

Le retrait d'un message d'interrogation resté sans réponse provoque l'envoi d'une réponse par défaut au message d'interrogation. Cette valeur indique si un programme d'exit de gestion de réponse pourra rejeter une réponse par défaut envoyée par suite de l'utilisation de cette commande. Un programme d'exit de gestion des réponses peut être enregistré à l'aide de la fonction d'enregistrement système pour le point d'exit QIBM_QMH_REPLY_INQ.

*NOALWRJT
Un programme d'exit de gestion de réponse ne pourra par rejeter une réponse par défaut.
*ALWRJT
Un programme d'exit de gestion de réponse pourra rejeter une réponse par défaut. Si un programme d'exit rejette la réponse, le message CPD2476 (Réponse rejetée par un programme d'exit de gestion de réponse) sera envoyé en tant que message de diagnostic au programme utilisant cette commande. Le CPD2476 sera suivi d'un message d'arrêt programme CPF2422 (Réponse incorrecte) que le programme utilisant cette commande doit intercepter pour gérer et récupérer suite à une situation d'erreur.

Exemples

Exemple 1 : Retrait d'un message

RMVMSG   MSGQ(SMITH)  MSGKEY(&KEY)

Cette commande retire de la file d'attente de messages appelée SMITH le message dont la clé de référence est indiquée dans la variable CL &KEY.

Exemple 2 : Conservation de messages restés sans réponse

RMVMSG   MSGQ(SMITH)  CLEAR(*KEEPUNANS)

Cette commande retire de la file d'attente de messages SMITH tous les messages, à l'exception des messages d'interrogation restés sans réponse.

Exemple 3 : Retrait de messages à l'aide d'un nom de procédure partielle

RMVMSG   PGMQ(*SAME 'PROCESS_ORDER>>>')  CLEAR(*ALL)

Cette commande retire tous les messages de la procédure la plus récente dont le nom commence par PROCESS_ORDER.

Messages d'erreur

Messages *ESCAPE

CPF24A6
Valeur des messages à retirer non valide. Value for messages to remove not valid.
CPF24AD
Les messages à retirer doivent être *ALL si la file d'attente de messages de programme est *ALLINACT. Messages to remove must be *ALL if program message queue is *ALLINACT.
CPF2401
Accès non autorisé à la bibliothèque &1.
CPF2403
File d'attente de messages &1 non trouvée dans &2.
CPF2407
fichier message &1 non trouvé dans &2.
CPF2408
Non autorisé à la file d'attente de messages &1.
CPF241A
L'option d'effacement &1 du programme système n'est pas valide. Clear option &1 in system program is not valid.
CPF2410
Clé du message non trouvée dans la file d'attente de messages &1.
CPF2411
Accès non autorisé au fichier message &1 dans &2.
CPF2419
Identificateur &1 non trouvé dans fichier message &2 de &3.
CPF2422
Réponse incorrecte.
CPF2450
File d'attente de msg de poste de travail &1 non allouée à ce travail.
CPF2451
File d'attente de messages &1 allouée à un autre travail.
CPF247A
Entrée de pile d'appels introuvable. Call stack entry not found.
CPF2477
File d'attente de messages &1 en cours d'utilisation.
CPF2479
Entrée de pile d'appels introuvable. Call stack entry not found.
CPF2483
fichier message en cours d'utilisation.
CPF2499
L'identificateur de message &1 n'est pas valide.
CPF8127
Dommage &8 sur file d'attente de messages &4 de &9. VLOG-&7.
CPF8176
File attente de messages pour description d'unité &4 endommagée.
CPF9830
Allocation de la bibliothèque &1 impossible.
CPF9838
Limite mémoire du profil utilisateur dépassée.

© Copyright IBM Corp. Texte d'aide reproduit à des fins de formation.