Service SQL IBM i (AS/400) · Procédure
QSYS2.SEND_MESSAGE
Envoyer un message à une file de messages
Procédure qui envoie un message, décrit dans un fichier de messages, à une file de messages, par défaut QSYSOPR, pour signaler une anomalie.
À quoi ça sert
Cette procédure envoie un message à une file de messages depuis SQL, par exemple depuis un programme ou une procédure stockée qui diagnostique une erreur grave. On fournit l'identifiant (MESSAGE_ID), la longueur et le texte du message (MESSAGE_LENGTH, MESSAGE_TEXT) ainsi que le fichier de messages (MESSAGE_FILE, par défaut QSQLMSG dans QSYS).
La destination est la file de messages MESSAGE_QUEUE, par défaut QSYSOPR dans QSYS. C'est une alerte visible par l'exploitation et par les outils de supervision qui surveillent cette file, avec l'équivalent de la commande SNDMSG.
Résultat réel sur un IBM i 7.5
Procédure non exécutée sur notre IBM i de test : elle agit sur la configuration du système ou sur d'autres travaux.
L'exemple d'IBM
Envoyer un message à la file QSYSOPR lorsqu'une erreur critique est diagnostiquée.
-- Description: Send a message to the QSYSOPR message queue when a critical
-- error is diagnosed.
CALL QSYS2.SEND_MESSAGE('APP1234', 31, 'Unexpected error in MYLIB/PGM2.' ,
'APPLIB', 'MYMSGF');
Bon à savoir
L'identifiant et le texte doivent correspondre à un message existant dans le fichier de messages indiqué : créez votre propre fichier de messages pour vos alertes applicatives, comme dans l'exemple d'IBM.
Paramètres
| Paramètre | Type | Par défaut | Signification |
|---|---|---|---|
MESSAGE_ID |
VARCHAR(7) | obligatoire | Identifiant du message |
MESSAGE_LENGTH |
INTEGER | obligatoire | Longueur du message |
MESSAGE_TEXT |
VARCHAR(512) | obligatoire | Texte du message |
MESSAGE_FILE_LIBRARY |
VARCHAR(10) | 'QSYS' | Bibliothèque du fichier de messages |
MESSAGE_FILE |
VARCHAR(10) | 'QSQLMSG' | Fichier de messages |
MESSAGE_QUEUE_LIBRARY |
VARCHAR(10) | 'QSYS' | Bibliothèque de la file de messages |
MESSAGE_QUEUE |
VARCHAR(10) | 'QSYSOPR' | File de messages |