Service SQL IBM i (AS/400) · Fonction table
QSYS2.JOBLOG_INFO
Lire le journal d'un travail
Renvoie les messages du journal d'un travail (actif ou terminé) : l'équivalent SQL de DSPJOBLOG, avec filtre et jointure possibles.
À quoi ça sert
La fonction de table lit le journal du travail désigné par JOB_NAME (la valeur '*' désigne le travail courant). Chaque ligne est un message : identifiant, type et sous-type, gravité, horodatage, programme, module, procédure et instruction émetteurs, programme destinataire, texte du message et texte de second niveau. IGNORE_ERRORS vaut YES par défaut.
Elle sert à rechercher des erreurs dans un travail sans ouvrir le journal à l'écran ni passer par un fichier spoule : on filtre sur la gravité ou l'identifiant de message, on trie par horodatage, on garde les messages d'erreur dans une table pour un suivi. Elle fonctionne aussi pour un travail qui a laissé son journal.
L'exemple d'IBM l'associe à ACTIVE_JOB_INFO et l'applique à des travaux QSQSRVR pour étudier les plus gros consommateurs de processeur.
Résultat réel sur un IBM i 7.5
Ce que nous avons exécuté :
WITH TT(AUTHORIZATION_NAME, SERVER_MODE_JOB_NAME, CPU_TIME, TOTAL_DISK_IO_COUNT)
AS (SELECT AUTHORIZATION_NAME, JOB_NAME, CPU_TIME, TOTAL_DISK_IO_COUNT
FROM TABLE(QSYS2.ACTIVE_JOB_INFO(JOB_NAME_FILTER => 'QSQSRVR')) X)
SELECT AUTHORIZATION_NAME, SS.MESSAGE_TEXT,
SERVER_MODE_JOB_NAME, CPU_TIME, TOTAL_DISK_IO_COUNT
FROM TT, TABLE(QSYS2.JOBLOG_INFO(SERVER_MODE_JOB_NAME)) SS
WHERE MESSAGE_ID = 'CPF9898' AND FROM_PROGRAM = 'QSQSRVR'
ORDER BY CPU_TIME DESC LIMIT 25
Ce que l'IBM i a renvoyé le 01/10/2026 (5 lignes au plus) :
| AUTHORIZATION_NAME | MESSAGE_TEXT Texte du message | SERVER_MODE_JOB_NAME | CPU_TIME | TOTAL_DISK_IO_COUNT |
|---|---|---|---|---|
| QSYS | SERVER MODE CONNECTING JOB IS 968979/QSYS/QYPSPFRCOL. | 905026/QUSER/QSQSRVR | 10172 | 8729 |
| QSYS | SERVER MODE CONNECTING JOB IS 968979/QSYS/QYPSPFRCOL. | 902100/QUSER/QSQSRVR | 5153 | 6316 |
| QWEBADMIN | SERVER MODE CONNECTING JOB IS 802238/QWEBADMIN/QNAVMNSRV. | 968986/QUSER/QSQSRVR | 4486 | 3671 |
| QWEBADMIN | SERVER MODE CONNECTING JOB IS 802238/QWEBADMIN/QNAVMNSRV. | 969324/QUSER/QSQSRVR | 600 | 339 |
| QDIRSRV | SERVER MODE CONNECTING JOB IS 802036/QDIRSRV/QUSRDIR. | 802077/QUSER/QSQSRVR | 419 | 1350 |
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
Trouver les 25 plus gros consommateurs de processeur parmi les travaux QSQSRVR actifs.
-- Description: Find the top 25 consumers of CPU in active QSQSRVR jobs
WITH TT(AUTHORIZATION_NAME, SERVER_MODE_JOB_NAME, CPU_TIME, TOTAL_DISK_IO_COUNT)
AS (SELECT AUTHORIZATION_NAME, JOB_NAME, CPU_TIME, TOTAL_DISK_IO_COUNT
FROM TABLE(QSYS2.ACTIVE_JOB_INFO(JOB_NAME_FILTER => 'QSQSRVR')) X)
SELECT AUTHORIZATION_NAME, SS.MESSAGE_TEXT,
SERVER_MODE_JOB_NAME, CPU_TIME, TOTAL_DISK_IO_COUNT
FROM TT, TABLE(QSYS2.JOBLOG_INFO(SERVER_MODE_JOB_NAME)) SS
WHERE MESSAGE_ID = 'CPF9898' AND FROM_PROGRAM = 'QSQSRVR'
ORDER BY CPU_TIME DESC LIMIT 25;
Paramètres
| Paramètre | Type | Par défaut | Signification |
|---|---|---|---|
JOB_NAME |
VARCHAR(28) | obligatoire | Nom du travail |
IGNORE_ERRORS |
VARCHAR(3) | 'NO' | Ignorer les erreurs |
Colonnes renvoyées (25)
Afficher les 25 colonnes
| Colonne | Type | Signification |
|---|---|---|
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_LIBRARY |
VARCHAR(10) | Bibliothèque d'origine |
FROM_PROGRAM |
VARCHAR(256) | Programme d'origine |
FROM_MODULE |
VARCHAR(10) | Module d'origine |
FROM_PROCEDURE |
VARCHAR(4096) | Procédure d'origine |
FROM_INSTRUCTION |
VARCHAR(10) | Instruction d'origine |
TO_LIBRARY |
VARCHAR(10) | Bibliothèque de destination |
TO_PROGRAM |
VARCHAR(10) | Programme de destination |
TO_MODULE |
VARCHAR(10) | Module de destination |
TO_PROCEDURE |
VARCHAR(4096) | Procédure de destination |
TO_INSTRUCTION |
VARCHAR(10) | Instruction de destination |
FROM_USER |
VARCHAR(10) | Utilisateur d'origine |
MESSAGE_LIBRARY |
VARCHAR(10) | Bibliothèque du message |
MESSAGE_FILE |
VARCHAR(10) | Fichier de messages |
MESSAGE_TOKEN_LENGTH |
SMALLINT | Longueur des variables de substitution du message |
MESSAGE_TOKENS |
VARCHAR(12000) | Variables de substitution du message |
MESSAGE_TEXT |
GRAPHIC VARYING | Texte du message |
MESSAGE_SECOND_LEVEL_TEXT |
GRAPHIC VARYING | Texte de second niveau du message |
MESSAGE_KEY |
BINARY(4) | Clé du message |
QUALIFIED_JOB_NAME |
VARCHAR(28) | Nom qualifié du travail |