Service SQL IBM i (AS/400) · Fonction table
QSYS2.DISPLAY_JOURNAL
Lire les entrées d'un journal
Lit les entrées d'un journal en SQL, filtrées par période, séquence, code, type, objet, utilisateur ou travail : l'équivalent de DSPJRN, interrogeable comme une table.
À quoi ça sert
La fonction de table QSYS2.DISPLAY_JOURNAL renvoie les entrées d'un journal (JOURNAL_LIBRARY, JOURNAL_NAME) et de ses récepteurs. Elle remplace DSPJRN avec une sortie directement exploitable en SQL : ENTRY_TIMESTAMP, JOURNAL_CODE, JOURNAL_ENTRY_TYPE, objet, travail, utilisateur, programme, adresse distante, etc.
Les paramètres de sélection sont nombreux : récepteur de départ et de fin, horodatage ou numéro de séquence de début et de fin, JOURNAL_CODES, JOURNAL_ENTRY_TYPES, objet (bibliothèque, nom, type, membre), USER, JOB et PROGRAM. Les valeurs par défaut des récepteurs sont *CURRENT.
Usages typiques : audit de sécurité sur QSYS/QAUDJRN, recherche de la mise à jour d'un enregistrement, analyse d'un incident. La colonne ENTRY_DATA contient les données brutes de l'entrée.
Résultat réel sur un IBM i 7.5
Ce que nous avons exécuté :
SELECT journal_code, journal_entry_type, object, object_type, X.*
FROM TABLE (
QSYS2.Display_Journal(
'QSYS', 'QAUDJRN',
Starting_Timestamp => CURRENT DATE - 1 DAY,
Journal_Codes => 'T',
Journal_Entry_Types => 'CP'
)) as x
Ce que l'IBM i a renvoyé le 01/10/2026 (5 lignes au plus) :
| JOURNAL_CODE Code journal | JOURNAL_ENTRY_TYPE Type d'écriture de journal | OBJECT Objet | OBJECT_TYPE Type de l'objet | ENTRY_TIMESTAMP Horodatage de l'entrée | SEQUENCE_NUMBER Numéro de séquence | COUNT_OR_RRN Nombre ou numéro relatif d'enregistrement | ENTRY_DATA Données de l'entrée | NULL_VALUE_INDICATORS Indicateurs de valeur null | OBJECT_TYPE_INDICATOR Indicateur du type d'objet | FILE_TYPE_INDICATOR Indicateur du type de fichier | JOURNAL_IDENTIFIER Identifiant de journal | USER_NAME Nom du profil utilisateur | JOB_NAME Nom du travail | JOB_USER Profil utilisateur du travail | JOB_NUMBER Numéro du travail | THREAD Unité d'exécution (thread) | PROGRAM_NAME Nom du programme | PROGRAM_LIBRARY Bibliothèque du programme | PROGRAM_LIBRARY_ASP_DEVICE Unité ASP de la bibliothèque du programme | PROGRAM_LIBRARY_ASP_NUMBER Numéro de l'ASP de la bibliothèque du programme | COMMIT_CYCLE Cycle de validation | NESTED_COMMIT_LEVEL Niveau de validation imbriquée | XID Identifiant de transaction (XID) | LUW Unité de travail logique | REMOTE_PORT Port distant | REMOTE_ADDRESS Adresse distante | SYSTEM_NAME Nom du système | SYSTEM_SEQUENCE_NUMBER Numéro de séquence système | REFERENTIAL_CONSTRAINT Contrainte référentielle | TRIGGER Déclencheur | IGNORE_ON_APPLY Ignorer lors de l'application | MINIMIZED_ENTRY_DATA Données de l'écriture minimisées | MINIMIZED_ON_FIELD_BOUNDARY Minimisation sur limite de zone | INDICATOR_FLAG Indicateur | RECEIVER_NAME Nom du récepteur de journal | RECEIVER_LIBRARY Bibliothèque du récepteur de journal | RECEIVER_ASP_DEVICE Unité ASP du récepteur de journal | RECEIVER_ASP_NUMBER Numéro d'ASP du récepteur de journal | ARM_NUMBER Numéro ARM | OBJECT_ASP_DEVICE Unité ASP de l'objet | OBJECT_ASP_NUMBER Numéro de l'ASP de l'objet | PARENT_FILE_ID Identifiant du fichier parent | OBJECT_FILE_ID Identifiant de fichier de l'objet | RELATIVE_DIRECTORY_FILE_ID Identifiant de fichier du répertoire relatif | OBJECT_FILE_NAME Nom du fichier de l'objet | PATH_NAME Chemin | DLO_NAME Nom de l'objet bibliothèque de documents (DLO) | FOLDER_PATH Chemin du dossier | CURRENT_USER Profil utilisateur courant | SYSLOG_EVENT Événement syslog | SYSLOG_FACILITY Origine syslog (facility) | SYSLOG_SEVERITY Gravité syslog | SYSLOG_PRIORITY Priorité syslog |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| T | CP | UTIL203 QSYS | *USRPRF | 2026-09-30 08:38:02.321904 | 3201331 | 0 | C1D7C9C5C7E4C5F0F44040D8E2E8E24040404040405CE4E2D9D7D9C640C3C8C740404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040… | NULL | NULL | NULL | QSYS | QINTER | QSYS | 801972 | 18 | QLESPI | QSYS | *SYSBAS | 1 | 0 | NULL | NULL | NULL | NULL | NULL | MONIBMI | 1.2680693743645E+19 | 0 | 0 | 0 | 0 | 0 | 0 | QAUDRC0061 | BIBAPP001 | *SYSBAS | 1 | 2 | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | QSYS | NULL | NULL | NULL | NULL | |
| T | CP | UTIL203 QSYS | *USRPRF | 2026-09-30 08:40:28.049168 | 3201411 | 0 | C1D7C9C5C7E4C5F0F44040D8E2E8E24040404040405CE4E2D9D7D9C640C3C8C740404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040… | NULL | NULL | NULL | UTIL232 | QPADEV003C | UTIL232 | 968110 | 2388 | QCMD | QSYS | *SYSBAS | 1 | 0 | NULL | NULL | NULL | 56830 | 192.0.2.1 | MONIBMI | 1.2680694340544E+19 | 0 | 0 | 0 | 0 | 0 | 0 | QAUDRC0061 | BIBAPP001 | *SYSBAS | 1 | 1 | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | UTIL232 | NULL | NULL | NULL | NULL | |
| T | CP | UTIL119 QSYS | *USRPRF | 2026-09-30 14:31:50.365168 | 3230928 | 0 | C1D2C5C2D7D9C4E4E2D940D8E2E8E24040404040405CE4E2D9D7D9C640C3D9E3E840D5404040404040404040404040404040404040404040404040404040404040405CE4E2D9D7D9C64040405CD5D6D5C540404040405CD5D6D5C5404040404040404040404040404040D4C1C9D54040404040405CD3C9C2D34040404040D2C5C2D7D9C4404040405CD5D6404040404040405CE4E2C5… | NULL | NULL | NULL | UTIL203 | QPADEV0068 | UTIL203 | 968494 | 1618 | QCMD | QSYS | *SYSBAS | 1 | 0 | NULL | NULL | NULL | 62071 | 192.0.2.1 | MONIBMI | 1.2680780693711E+19 | 0 | 0 | 0 | 0 | 0 | 0 | QAUDRC0061 | BIBAPP001 | *SYSBAS | 1 | 2 | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | UTIL203 | NULL | NULL | NULL | NULL | |
| T | CP | UTIL119 QSYS | *USRPRF | 2026-09-30 14:39:36.777312 | 3231067 | 0 | C1D2C5C2D7D9C4E4E2D940D8E2E8E24040404040405CE4E2D9D7D9C640C3C8C740404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040… | NULL | NULL | NULL | UTIL203 | QPADEV0068 | UTIL203 | 968494 | 1618 | QCMD | QSYS | *SYSBAS | 1 | 0 | NULL | NULL | NULL | 62071 | 192.0.2.1 | MONIBMI | 1.2680782604135E+19 | 0 | 0 | 0 | 0 | 0 | 0 | QAUDRC0061 | BIBAPP001 | *SYSBAS | 1 | 2 | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | UTIL203 | NULL | NULL | NULL | NULL | |
| T | CP | UTIL120 QSYS | *USRPRF | 2026-09-30 14:43:44.204576 | 3231407 | 0 | C1D2C5C2D8E4C1E4E2D940D8E2E8E24040404040405CE4E2D9D7D9C640C3D9E3E8E8D5404040404040404040404040404040404040404040404040404040404040405CE4E2D9D7D9C64040405CD5D6D5C540404040405CD5D6D5C5404040404040404040404040404040D4C1C9D54040404040405CD3C9C2D340404040405CC3D9E3C4C6E34040405CD5D6404040404040405CE4E2C5… | NULL | NULL | NULL | ROUSSEL | QPADEV005L | ROUSSEL | 968469 | 202 | QCMD | QSYS | *SYSBAS | 1 | 0 | NULL | NULL | NULL | 57620 | 192.0.2.1 | MONIBMI | 1.2680783617597E+19 | 0 | 0 | 0 | 0 | 0 | 0 | QAUDRC0061 | BIBAPP001 | *SYSBAS | 1 | 2 | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | ROUSSEL | 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
Récupérer les entrées de modification de profil (type CP) du journal d'audit sur le dernier jour.
-- Description: Retrieve the Change Profile entries over that last day
SELECT journal_code, journal_entry_type, object, object_type, X.*
FROM TABLE (
QSYS2.Display_Journal(
'QSYS', 'QAUDJRN',
Starting_Timestamp => CURRENT DATE - 1 DAY,
Journal_Codes => 'T',
Journal_Entry_Types => 'CP'
)) as x;
Bon à savoir
Toujours borner la lecture avec STARTING_TIMESTAMP ou STARTING_SEQUENCE et, si possible, JOURNAL_CODES : sur un journal volumineux, une lecture sans borne parcourt tous les récepteurs. Pour décoder ENTRY_DATA du journal d'audit, utilisez les services SYSTOOLS.AUDIT_JOURNAL_xx.
Paramètres
| Paramètre | Type | Par défaut | Signification |
|---|---|---|---|
JOURNAL_LIBRARY |
VARCHAR(10) | obligatoire | Bibliothèque du journal |
JOURNAL_NAME |
VARCHAR(10) | obligatoire | Nom du journal |
STARTING_RECEIVER_LIBRARY |
VARCHAR(10) | '*CURRENT' | Bibliothèque du récepteur de journal de départ |
STARTING_RECEIVER_NAME |
VARCHAR(10) | '*CURRENT' | Nom du récepteur de journal de départ |
STARTING_TIMESTAMP |
TIMESTAMP | NULL | Horodatage de début |
STARTING_SEQUENCE |
DECIMAL(21, 0) | NULL | Numéro de séquence de départ |
JOURNAL_CODES |
VARCHAR(48) | '' | Codes journal à sélectionner |
JOURNAL_ENTRY_TYPES |
VARCHAR(1200) | '' | Types d'écriture de journal à sélectionner |
OBJECT_LIBRARY |
VARCHAR(10) | '' | Bibliothèque de l'objet |
OBJECT_NAME |
VARCHAR(3299) | '' | Nom de l'objet |
OBJECT_OBJTYPE |
VARCHAR(10) | '' | Type de l'objet |
OBJECT_MEMBER |
VARCHAR(10) | '' | Membre de l'objet |
USER |
VARCHAR(10) | '' | Profil utilisateur |
JOB |
VARCHAR(28) | '' | Nom qualifié du travail |
PROGRAM |
VARCHAR(10) | '' | Programme |
ENDING_RECEIVER_LIBRARY |
VARCHAR(10) | '*CURRENT' | Bibliothèque du récepteur de journal de fin |
ENDING_RECEIVER_NAME |
VARCHAR(10) | '*CURRENT' | Nom du récepteur de journal de fin |
ENDING_TIMESTAMP |
TIMESTAMP | NULL | Horodatage de fin |
ENDING_SEQUENCE |
DECIMAL(21, 0) | NULL | Numéro de séquence de fin |
GENERATE_SYSLOG |
VARCHAR(7) | NULL | Générer au format syslog |
EOF_DELAY |
INTEGER | NULL | Délai de fin de fichier |
COMMIT_CYCLE |
DECIMAL(21, 0) | NULL | Cycle de validation |
INCLUDE_INTERNAL |
VARCHAR(3) | NULL | Inclure les entrées internes |
Colonnes renvoyées (54)
Afficher les 54 colonnes
| Colonne | Type | Signification |
|---|---|---|
ENTRY_TIMESTAMP |
TIMESTAMP | Horodatage de l'entrée |
SEQUENCE_NUMBER |
DECIMAL(21, 0) | Numéro de séquence |
JOURNAL_CODE |
CHAR(1) | Code journal |
JOURNAL_ENTRY_TYPE |
CHAR(2) | Type d'écriture de journal |
COUNT_OR_RRN |
BIGINT | Nombre ou numéro relatif d'enregistrement |
ENTRY_DATA |
BINARY LARGE OBJECT | Données de l'entrée |
NULL_VALUE_INDICATORS |
VARCHAR(8000) | Indicateurs de valeur null |
OBJECT |
VARCHAR(30) | Objet |
OBJECT_TYPE |
VARCHAR(10) | Type de l'objet |
OBJECT_TYPE_INDICATOR |
CHAR(1) | Indicateur du type d'objet |
FILE_TYPE_INDICATOR |
CHAR(1) | Indicateur du type de fichier |
JOURNAL_IDENTIFIER |
VARCHAR(10) | Identifiant de journal |
USER_NAME |
VARCHAR(10) | Nom du profil utilisateur |
JOB_NAME |
VARCHAR(10) | Nom du travail |
JOB_USER |
VARCHAR(10) | Profil utilisateur du travail |
JOB_NUMBER |
VARCHAR(6) | Numéro du travail |
THREAD |
BIGINT | Unité d'exécution (thread) |
PROGRAM_NAME |
VARCHAR(10) | Nom du programme |
PROGRAM_LIBRARY |
VARCHAR(10) | Bibliothèque du programme |
PROGRAM_LIBRARY_ASP_DEVICE |
VARCHAR(10) | Unité ASP de la bibliothèque du programme |
PROGRAM_LIBRARY_ASP_NUMBER |
INTEGER | Numéro de l'ASP de la bibliothèque du programme |
COMMIT_CYCLE |
DECIMAL(21, 0) | Cycle de validation |
NESTED_COMMIT_LEVEL |
BIGINT | Niveau de validation imbriquée |
XID |
VARCHAR(140) | Identifiant de transaction (XID) |
LUW |
VARCHAR(39) | Unité de travail logique |
REMOTE_PORT |
INTEGER | Port distant |
REMOTE_ADDRESS |
VARCHAR(46) | Adresse distante |
SYSTEM_NAME |
VARCHAR(8) | Nom du système |
SYSTEM_SEQUENCE_NUMBER |
DECIMAL(21, 0) | Numéro de séquence système |
REFERENTIAL_CONSTRAINT |
CHAR(1) | Contrainte référentielle |
TRIGGER |
CHAR(1) | Déclencheur |
IGNORE_ON_APPLY |
CHAR(1) | Ignorer lors de l'application |
MINIMIZED_ENTRY_DATA |
CHAR(1) | Données de l'écriture minimisées |
MINIMIZED_ON_FIELD_BOUNDARY |
CHAR(1) | Minimisation sur limite de zone |
INDICATOR_FLAG |
CHAR(1) | Indicateur |
RECEIVER_NAME |
VARCHAR(10) | Nom du récepteur de journal |
RECEIVER_LIBRARY |
VARCHAR(10) | Bibliothèque du récepteur de journal |
RECEIVER_ASP_DEVICE |
VARCHAR(10) | Unité ASP du récepteur de journal |
RECEIVER_ASP_NUMBER |
INTEGER | Numéro d'ASP du récepteur de journal |
ARM_NUMBER |
INTEGER | Numéro ARM |
OBJECT_ASP_DEVICE |
VARCHAR(10) | Unité ASP de l'objet |
OBJECT_ASP_NUMBER |
INTEGER | Numéro de l'ASP de l'objet |
PARENT_FILE_ID |
BINARY(16) | Identifiant du fichier parent |
OBJECT_FILE_ID |
BINARY(16) | Identifiant de fichier de l'objet |
RELATIVE_DIRECTORY_FILE_ID |
BINARY(16) | Identifiant de fichier du répertoire relatif |
OBJECT_FILE_NAME |
GRAPHIC VARYING | Nom du fichier de l'objet |
PATH_NAME |
DOUBLE-BYTE CHAR LARGE OBJECT | Chemin |
DLO_NAME |
VARCHAR(12) | Nom de l'objet bibliothèque de documents (DLO) |
FOLDER_PATH |
VARCHAR(63) | Chemin du dossier |
CURRENT_USER |
VARCHAR(10) | Profil utilisateur courant |
SYSLOG_EVENT |
GRAPHIC VARYING | Événement syslog |
SYSLOG_FACILITY |
INTEGER | Origine syslog (facility) |
SYSLOG_SEVERITY |
INTEGER | Gravité syslog |
SYSLOG_PRIORITY |
INTEGER | Priorité syslog |