Aller au contenu

Recette SQL IBM i (AS/400) · Messages

Les messages les plus fréquents de l'historique sur 7 jours

Les identifiants de messages les plus fréquents de l'historique système sur 7 jours, avec un exemple de texte : pour voir ce qui encombre QHST.

Le besoin

Un message qui revient des milliers de fois par jour cache souvent un problème (une connexion qui échoue en boucle, une sauvegarde vide) et noie les vrais incidents.

La requête

SELECT MESSAGE_ID, COUNT(*) AS NOMBRE, MAX(SEVERITY) AS GRAVITE, MAX(MESSAGE_TEXT) AS EXEMPLE_DE_TEXTE
FROM TABLE(QSYS2.HISTORY_LOG_INFO(START_TIME => CURRENT TIMESTAMP - 7 DAYS)) H
WHERE MESSAGE_ID IS NOT NULL
GROUP BY MESSAGE_ID
ORDER BY NOMBRE DESC
FETCH FIRST 10 ROWS ONLY

Le GROUP BY MESSAGE_ID compte les occurrences sur la période. MAX(MESSAGE_TEXT) garde un exemple de texte pour savoir de quoi il s'agit.

Le résultat sur un IBM i 7.5

Ce que l'IBM i a renvoyé le 01/10/2026 (5 lignes au plus) :

MESSAGE_ID Identifiant du message NOMBRE Nombre d'occurrences GRAVITE Gravité la plus haute EXEMPLE_DE_TEXTE Exemple de texte
CPIAD09 10997 0 User UTIL257 from client 192.0.2.1 connected to job 967852/QUSER/QZRCSRVS in subsystem QUSRWRK in QSYS on 29/09/26 16:47:26.
CPIAD0B 10615 0 *SIGNON server job 970423/QUSER/QZSOSIGN processing request for user SAK on 01/10/26 14:45:36 in subsystem QUSRWRK in QSYS.
CPC3708 3829 0 Aucun objet de la bibliothèque BIBAPP003 sauvegardé. Tous les objets exclus.
CPF1124 3354 0 Travail 970431/UTIL178/LFVENTOT démarré le 01/10/26 à 14:45:18 dans le sous-système QBATCH de QSYS ; soumis le 01/10/26 à 14:45:18.
CPF1164 3347 0 Travail 970431/UTIL178/LFVENTOT arrêté le 01/10/26 à 14:45:18; temps UC 0,009; code fin 0 .

En tête chez nous : CPIAD09 et CPIAD0B, les connexions aux serveurs hôtes (ODBC, ACS, Mapepire), plus de 10 000 chacun en une semaine.

Données anonymisées : les noms de système, de profils, de bibliothèques, de postes et les adresses IP ont été remplacés.

L'adapter à votre système

Ajoutez WHERE SEVERITY > 0 pour écarter les messages d'information, ou regroupez par FROM_USER pour savoir qui les provoque.