fr en

QSYS2 - Lire une JOBLOG avec QSYS2.JOBLOG_INFO (DSPJOBLOG) ou QSYS2.HISTORY_LOG_INFO (DSPLOG)

Objectifs :

La commande CL DSPJOBLOG permet de lire la LOG d’un JOB actif et ainsi analyser les messages générés tout au long de l’exécution du traitement.
Il est possible de faire même sous SQL grâce la fonction table QSYS2.JOBLOG_INFO.

Pour les jobs inactifs, il est possible de rechercher la log en CL avec un DSPLOG.
C’est également possible sous SQL avec la fonction table QSYS2.HISTORY_LOG_INFO.

Tables :

QSYS2.JOBLOG_INFO

QSYS2.HISTORY_LOG_INFO

Ces 2 fonctions table contiennent différentes informations relatives à chaque entrée lues dans la LOG.

Les données de ces tables les plus couramment utilisées sont :

  • ORDINAL_POSITION : Numéro d’ordre d’arrivée du message
  • MESSAGE_ID : Identifiant du message
  • MESSAGE_TYPE : Type du message
  • SEVERITY : Niveau de gravité du message
  • MESSAGE_TIMESTAMP : Date et Heure d’entrée du message dans la joblog
  • FROM_PROGRAM : Programme à l’origine du message
  • FROM_USER : Utilisateur à l’origine du message
  • MESSAGE_TEXT : Texte du message
  • MESSAGE_SECOND_LEVEL_TEXT : Texte niveau 2 du message
  • MESSAGE LIBRARY : Bibliothèque du fichier de message
  • MESSAGE_FILE : Fichier message

Les donnée suivantes ne sont présentes que dans QSYS2_JOBLOG_INFO, elles ne figurent pas dans QSYS2.HISTORY_LOG_INFO.

  • FROM_LIBRARY : Bibliothèque du module/procédure/programme à l’origine du message
  • FROM_MODULE : Module à l’origine du message.
  • FROM_PROCEDURE : Procédure à l’origine du message
  • FROM_INSTRUCTION : Numéro d’instruction à l’origine du message
  • TO_PROGRAM : Programme de destination du message

Les donnée suivantes ne sont présentes que dans QSYS2.HISTORY_LOG_INFO, elles ne figurent pas dans QSYS2_JOBLOG_INFO.

  • FROM_JOB : Nom complet du job ‘numéro du job/utilisateur du job/nom du job’
  • FROM_JOB_NAME : Nom du job
  • FROM_JOB_USER : Utilisateur du job
  • FROM_JOB_NUMBER : Numéro du job

Voici les liens vers le site IBM décrivant ces fonctions table :
JOBLOG_INFO table function – IBM Documentation

HISTORY_LOG_INFO table function – IBM Documentation

 

Exemples d'utilisation

Récupérer les 10 derniers messages d'un job actif donné :

SELECT
MESSAGE_ID,
MESSAGE_TYPE,
SEVERITY,
MESSAGE_TIMESTAMP,
FROM_LIBRARY,
FROM_MODULE,
FROM_PROCEDURE,
FROM_PROGRAM,
FROM_INSTRUCTION,
FROM_USER,
TO_PROGRAM,
MESSAGE_TEXT,
MESSAGE_SECOND_LEVEL_TEXT,
MESSAGE_LIBRARY,
MESSAGE_FILE

FROM TABLE(QSYS2.JOBLOG_INFO(‘mon_JOB_NUMBER/mon_JOB_USER/mon_JOB_NAME’)) A
ORDER BY A.ORDINAL_POSITION DESC
FETCH FIRST 10 ROWS ONLY;

Lire le dernier message de la log du job en cours :

SELECT * 
FROM TABLE(QSYS2.JOBLOG_INFO(‘*’)) A
ORDER BY A.ORDINAL_POSITION DESC
FETCH FIRST 1 ROWS ONLY;

Lire la log d'un job terminé donné :

SELECT 
MESSAGE_ID, 
MESSAGE_TYPE, 
SEVERITY, 
MESSAGE_TIMESTAMP,
FROM_JOB,
FROM_JOB_NAME,
FROM_JOB_USER,
FROM_JOB_NUMBER, 
FROM_PROGRAM, 
FROM_USER,
MESSAGE_TEXT, 
MESSAGE_SECOND_LEVEL_TEXT,
MESSAGE_LIBRARY, 
MESSAGE_FILE 
FROM TABLE(QSYS2.HISTORY_LOG_INFO(START_TIME => CURRENT_TIMESTAMP – 1 HOURS,
                                 END_TIME => CURRENT_TIMESTAMP)) A
WHERE FROM_JOB = ‘mon muméro de job/mon utilisateur de job/mon nom de job’
ORDER BY A.ORDINAL_POSITION DESC;