Aller au contenu

Service SQL IBM i (AS/400) · Fonction table

QSYS2.HISTORY_LOG_INFO

Lecture du journal historique QHST

Lit les messages du journal historique du système (QHST) sur une période donnée : l'équivalent SQL de DSPLOG.

À quoi ça sert

La fonction de table renvoie les messages du journal historique : identifiant, type, gravité, horodatage, utilisateur et travail d'origine, programme, bibliothèque et fichier de messages, texte du message et texte de second niveau. Les paramètres START_TIME (par défaut la veille) et END_TIME bornent la période lue, ce qui évite de parcourir tout l'historique.

Le paramètre GENERATE_SYSLOG ajoute les colonnes au format syslog (événement, origine, gravité, priorité), pratique pour envoyer ces messages à un outil de supervision. EOF_DELAY règle un délai en fin de fichier.

Le journal historique garde la trace des débuts et fins de travaux, des connexions et des événements système. L'exemple d'IBM s'appuie sur les messages CPF1124 (début de travail) et CPF1164 (fin de travail) pour calculer la durée des travaux utilisateurs : un calcul impossible à faire avec DSPLOG.

Résultat réel sur un IBM i 7.5

Ce que nous avons exécuté :

SELECT * FROM TABLE(QSYS2.HISTORY_LOG_INFO()) X

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

ORDINAL_POSITION Position ordinale MESSAGE_ID Identifiant du message MESSAGE_TYPE Type de message MESSAGE_SUBTYPE Sous-type du message SEVERITY Gravité MESSAGE_TIMESTAMP Horodatage du message FROM_USER Utilisateur d'origine FROM_JOB Travail d'origine FROM_JOB_NAME Nom du travail d'origine FROM_JOB_USER Utilisateur du travail d'origine FROM_JOB_NUMBER Numéro du travail d'origine FROM_PROGRAM Programme d'origine MESSAGE_LIBRARY Bibliothèque du message MESSAGE_FILE Fichier de messages MESSAGE_TOKENS Variables de substitution du message MESSAGE_TEXT Texte du message MESSAGE_SECOND_LEVEL_TEXT Texte de second niveau du message SYSLOG_EVENT Événement syslog SYSLOG_FACILITY Origine syslog (facility) SYSLOG_SEVERITY Gravité syslog SYSLOG_PRIORITY Priorité syslog
1 CPF1164 COMPLETION NULL 0 2026-09-30 00:00:01.073149 DUPONT 966426/DUPONT/QHTTP QHTTP DUPONT 966426 QWTMCEOJ *LIBL QCPFMSG D8C8E3E3D74040404040D8E3D4C8C8E3E3D74040F9F6F6F4F2F6F0F07AF0F07AF0F1F3F061F0F961F2F600000001000100000000000000000000032F00000000000000000000002DF0F07AF0F07AF0F2F2F961F0F961F2F6F0F07AF0F07AF0F2F2F961F0F961F2F6000000000000000000000025C2008440404040404040404040404040404040404040404040404040404040404040… Description de l'objet Description de l'objet NULL NULL NULL NULL
2 CPF1124 INFORMATIONAL NULL 0 2026-09-30 00:00:01.470223 QIJS 968012/QIJS/RMVHSTJS RMVHSTJS QIJS 968012 QWTPIIPP *LIBL QCPFMSG D9D4E5C8E2E3D1E24040D8C9D1E2404040404040F9F6F8F0F1F2F0F07AF0F07AF0F1F3F061F0F961F2F6F0F07AF0F07AF0F1F3F061F0F961F2F6D8E2E8E2E6D9D2404040D8E2E8E2404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404000000000008440404040404040404040404040404040… Description de l'objet NULL NULL NULL NULL NULL
3 CPF1124 INFORMATIONAL NULL 0 2026-09-30 00:00:01.470521 QIJS 968011/QIJS/QIJSCCC QIJSCCC QIJS 968011 QWTPIIPP *LIBL QCPFMSG D8C9D1E2C3C3C3404040D8C9D1E2404040404040F9F6F8F0F1F1F0F07AF0F07AF0F1F3F061F0F961F2F6F0F07AF0F07AF0F1F3F061F0F961F2F6D8E2E8E2E6D9D2404040D8E2E8E2404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404000000000008440404040404040404040404040404040… Description de l'objet NULL NULL NULL NULL NULL
4 CPF1124 INFORMATIONAL NULL 0 2026-09-30 00:00:01.475224 QIJS 968013/QIJS/RMVLOGEJS RMVLOGEJS QIJS 968013 QWTPIIPP *LIBL QCPFMSG D9D4E5D3D6C7C5D1E240D8C9D1E2404040404040F9F6F8F0F1F3F0F07AF0F07AF0F1F3F061F0F961F2F6F0F07AF0F07AF0F1F3F061F0F961F2F6D8E2E8E2E6D9D2404040D8E2E8E2404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404000000000008440404040404040404040404040404040… Description de l'objet NULL NULL NULL NULL NULL
5 CPF1124 INFORMATIONAL NULL 0 2026-09-30 00:00:01.477478 QIJS 968014/QIJS/QIJSCREM QIJSCREM QIJS 968014 QWTPIIPP *LIBL QCPFMSG D8C9D1E2C3D9C5D44040D8C9D1E2404040404040F9F6F8F0F1F4F0F07AF0F07AF0F1F3F061F0F961F2F6F0F07AF0F07AF0F1F3F061F0F961F2F6D8E2E8E2E6D9D2404040D8E2E8E2404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404000000000008440404040404040404040404040404040… Description de l'objet NULL NULL NULL NULL NULL

Données anonymisées : les noms de système, de profils, de bibliothèques, de postes et les adresses IP ont été remplacés. Les objets du schéma JOBISQL sont des objets de démonstration créés pour ce site.

L'exemple d'IBM

Calculer les 50 travaux utilisateur de plus longue durée, démarrés entre hier minuit et maintenant.

-- Description: Compute the 50 user jobs with the longest time span, 
     -- that started between yesterday (midnight) and now 
   WITH new_jobs(job_name, start_time) 
   AS (SELECT from_job, message_timestamp 
          FROM TABLE(qsys2.history_log_info()) x 
          WHERE message_id = 'CPF1124'), 
     ended_jobs(job_name, end_time) 
   AS (SELECT from_job, message_timestamp 
          FROM TABLE(qsys2.history_log_info()) x 
          WHERE message_id = 'CPF1164') 
   SELECT n.job_name, 
          TIMESTAMPDIFF(4, CAST(end_time - start_time AS CHAR(22))) AS execution_minutes 
          FROM new_jobs n INNER JOIN ended_jobs e ON n.job_name = e.job_name 
      WHERE n.job_name NOT LIKE '%/Q%/%' 
      ORDER BY execution_minutes DESC 
      FETCH FIRST 50 ROWS ONLY  ;

Bon à savoir

Borne toujours la période avec START_TIME et END_TIME : sur un système chargé, le journal historique est volumineux et la lecture complète est lente.

Paramètres

ParamètreTypePar défautSignification
START_TIME TIMESTAMP ( CURRENT_DATE - 1 DAY ) Heure de début
END_TIME TIMESTAMP '9999-12-30-00.00.00.000000' Heure de fin
GENERATE_SYSLOG VARCHAR(7) NULL Générer au format syslog
EOF_DELAY INTEGER NULL Délai de fin de fichier

Colonnes renvoyées (21)

Afficher les 21 colonnes
ColonneTypeSignification
ORDINAL_POSITION INTEGER Position ordinale
MESSAGE_ID VARCHAR(7) Identifiant du message
MESSAGE_TYPE VARCHAR(13) Type de message
MESSAGE_SUBTYPE VARCHAR(22) Sous-type du message
SEVERITY SMALLINT Gravité
MESSAGE_TIMESTAMP TIMESTAMP Horodatage du message
FROM_USER VARCHAR(10) Utilisateur d'origine
FROM_JOB VARCHAR(28) Travail d'origine
FROM_JOB_NAME VARCHAR(10) Nom du travail d'origine
FROM_JOB_USER VARCHAR(10) Utilisateur du travail d'origine
FROM_JOB_NUMBER VARCHAR(6) Numéro du travail d'origine
FROM_PROGRAM VARCHAR(10) Programme d'origine
MESSAGE_LIBRARY VARCHAR(10) Bibliothèque du message
MESSAGE_FILE VARCHAR(10) Fichier de messages
MESSAGE_TOKENS VARCHAR(4096) Variables de substitution du message
MESSAGE_TEXT GRAPHIC VARYING Texte du message
MESSAGE_SECOND_LEVEL_TEXT GRAPHIC VARYING Texte de second niveau du message
SYSLOG_EVENT GRAPHIC VARYING Événement syslog
SYSLOG_FACILITY INTEGER Origine syslog (facility)
SYSLOG_SEVERITY INTEGER Gravité syslog
SYSLOG_PRIORITY INTEGER Priorité syslog