Aller au contenu
Gestion des travaux · 1 / 6

Les travaux IBM i, ce qu'est un job

Sur IBM i, tout ce qui s'exécute le fait dans un travail : une session 5250, un traitement de nuit, un serveur. Voici ce qu'est un travail, la différence entre interactif et batch, et le chemin d'un travail de SBMJOB à l'imprimante, montrés sur un IBM i 7.5.

3parties dans le nom d'un travail
6chiffres au numéro d'un travail
174travaux actifs sur notre IBM i 7.5, sans aucune session
20/50priorité d'exécution interactif / batch

En une phrase

Un travail (job) est l'unité de travail d'IBM i : tout programme s'exécute dans un travail, qui a un nom, un utilisateur et un numéro, et qui tourne dans un sous-système. Un travail interactif dialogue avec un écran ; un travail batch attend son tour dans une file d'attente puis s'exécute en arrière-plan.

C'est quoi, un travail ?

Sur IBM i, aucun programme ne tourne « tout seul ». Quand vous ouvrez une session, quand un traitement de nuit démarre, quand un PC lit une table par ODBC, c'est un travail qui s'en charge. Le travail exécute les programmes les uns après les autres et leur fournit un environnement : un utilisateur, une liste de bibliothèques, une file de sortie pour les impressions, un historique des messages.

Un travail actif contient au moins une unité d'exécution (thread). Un travail Java ou un serveur en a souvent plusieurs, qui travaillent en parallèle ; un programme RPG ou CL classique se contente d'une seule.

IBM compare le système à un centre commercial. Les sous-systèmes sont les boutiques, chacune avec sa surface (sa mémoire) et ses portes d'entrée. Les travaux sont les commandes que chaque boutique traite. Ses règles de fonctionnement sont la description de sous-système. Les clients arrivent par la porte (un écran) ou font la queue (une file d'attente de travaux).

Ce qui se passe sans personne connecté est tout aussi instructif. Nous avons compté les travaux actifs de notre IBM i 7.5 le 14 octobre 2026, sans aucune session 5250 ouverte : 174 travaux, dont 43 travaux système et 45 travaux prédémarrés pour les serveurs. Un IBM i « au repos » travaille en permanence.

Le nom d'un travail : numéro, utilisateur, nom

Chaque travail a un nom qualifié en trois parties, qui l'identifie de façon unique :

PartieExempleD'où elle vient
Numéro011954Attribué par le système, toujours 6 chiffres. C'est lui qui rend le nom unique.
UtilisateurSAKADMLe profil sous lequel le travail démarre : celui de l'ouverture de session, ou celui indiqué à SBMJOB.
NomEDITIONPour un travail interactif, le nom de l'écran ou de la session (QPADEV0001). Pour un travail batch, le nom choisi dans SBMJOB. 10 caractères au plus.

On l'écrit dans l'ordre numéro/utilisateur/nom : 011954/SAKADM/EDITION. C'est ce que le système affiche quand on soumet un travail :

Travail 011954/SAKADM/EDITION soumis à la file d'attente DEMOJOBQ de JOBITRV.

Pour agir sur un travail, on peut donner le nom complet ou seulement une partie : WRKJOB JOB(011954/SAKADM/EDITION), WRKJOB JOB(SAKADM/EDITION) ou WRKJOB JOB(EDITION). Si plusieurs travaux correspondent, le système propose de choisir dans une liste. WRKJOB ouvre alors le menu du travail :

Écran 5250 Gestion d'un travail : travail QPADEV0001, utilisateur SAKADM, numéro 011959, et le menu des options
WRKJOB sur sa propre session : le nom de l'écran, le profil et le numéro forment le nom du travail.

Interactif ou batch

Les deux grandes familles de travaux n'ont ni la même entrée ni le même rythme :

Travail interactifTravail batch
Il commenceà l'ouverture de session sur un écranquand un sous-système le prend dans sa file d'attente
Il finità la fermeture de session (SIGNOFF)à la fin de son programme
Il entre parun poste écran du sous-systèmeune file d'attente de travaux (JOBQ)
Sous-système livréQINTER (la console : QCTL)QBATCH
Son nomcelui de l'écran : QPADEV0001celui donné à SBMJOB : EDITION
Priorité d'exécution relevée20 (classe QINTER)50 (classe QBATCH)
S'il pose une questionl'utilisateur répond à l'écranil attend une réponse (état MSGW)

L'interactif : un travail par session

Un travail interactif naît quand un utilisateur ouvre une session sur un écran 5250 (un émulateur comme IBM i Access Client Solutions) et meurt quand il la ferme. Entre les deux, le système attend l'utilisateur, traite sa demande, affiche la réponse, et recommence. L'écran d'ouverture de session le dit d'ailleurs : il appartient déjà au sous-système QINTER.

Écran 5250 d'ouverture de session : système DECHET, sous-système QINTER, écran QPADEV0001
L'écran d'ouverture de session : avant même la connexion, il appartient au sous-système QINTER.

Une fois connecté, la première page de WRKJOB (option 1) confirme le type INTER, le sous-système QINTER et le pool 2 de ce sous-système, celui de la mémoire interactive :

Écran 5250 Etat d'un travail : travail actif, sous-système QINTER, ID pool 2, type de travail INTER
État de la session : sous-système QINTER, pool 2, type INTER.

Le batch : soumettre, attendre, exécuter

Un travail batch est un traitement qui n'a pas besoin de dialoguer : une édition, une mise à jour de fichiers, une sauvegarde. On le soumet avec SBMJOB, et l'utilisateur récupère tout de suite la main. Le travail attend dans une file d'attente de travaux, puis un sous-système l'exécute en arrière-plan. Plusieurs travaux batch peuvent tourner en même temps. S'il rencontre une erreur, personne n'est là pour répondre : avec la réponse aux messages par défaut (INQMSGRPY(*RQD)), le travail s'arrête en état MSGW et attend qu'un opérateur réponde au message.

Le système donne aussi la priorité aux humains. La classe de QINTER donne une priorité d'exécution de 20 aux sessions, celle de QBATCH 50 aux traitements : plus le nombre est petit, plus le travail passe en premier sur le processeur. Une saisie reste fluide même pendant un gros traitement.

Le chemin d'un travail batch

IBM décrit la vie d'un travail batch en cinq étapes, des étapes que l'on retrouve dans toutes les pages de cette rubrique. Cliquez sur une étape pour l'ouvrir.

Le chemin d'un travail batch SBMJOB soumet le travail, qui reçoit ses attributs de la description de travail, attend dans la file d'attente de travaux, s'exécute dans le sous-système, dépose ses spools dans la file d'attente de sortie, puis un éditeur les imprime. SBMJOBon soumet le travail, on garde la main le travail reçoit ses attributs JOBD : description de travailfile, priorité, OUTQ, bibliothèques… il entre dans la file JOBQ : file d'attente de travauxil attend son tour, par priorité le sous-système le sélectionne Sous-système : QBATCHroutage, classe, mémoire : il s'exécute ses impressions deviennent des spools OUTQ : file d'attente de sortieles spools attendent, le travail est fini un éditeur les prend Éditeur → imprimanteou conversion en PDF, envoi par mail…
D'après la documentation IBM « Work management » (A job's life). Les couleurs reprennent les types d'objets : description de travail, file d'attente de travaux, sous-système, file de sortie.
  1. On soumet le travail. SBMJOB crée le travail et lui donne ses attributs, pris dans la commande, dans la description de travail (JOBD), dans le profil utilisateur et dans le travail qui soumet.
  2. Il attend dans une file d'attente de travaux (JOBQ), la salle d'attente d'un sous-système, rangé par priorité puis par heure d'arrivée.
  3. Le sous-système le prend quand il a de la place. Ses données de routage désignent un poste de routage, qui donne le programme à lancer, la classe (priorité, tranche de temps) et le pool de mémoire.
  4. Il s'exécute dans la mémoire du pool, et ses impressions deviennent des spools.
  5. Les spools attendent dans une file d'attente de sortie (OUTQ), qu'un éditeur les envoie à l'imprimante.

Nous avons suivi ce chemin sur un IBM i 7.5, avec une bibliothèque de démonstration, JOBITRV, qui contient son propre sous-système, sa file d'attente, sa description de travail et sa file de sortie. Le travail EDITION y a été soumis par SBMJOB CMD(DSPLIB LIB(JOBITRV) OUTPUT(*PRINT)) JOB(EDITION) JOBD(JOBITRV/DEMOJOBD) OUTQ(*JOBD). Son historique raconte tout le voyage, de la file d'attente au code de fin :

CPF1124  Travail 011954/SAKADM/EDITION démarré le 14/10/26 à
         15:53:59 dans le sous-système DEMOSBS de JOBITRV ; soumis le 14/10/26 à
         15:53:59.
CPI1125  Travail 011954/SAKADM/EDITION soumis.
         Le travail 011954/SAKADM/EDITION a été soumis en file
         d'attente de travaux DEMOJOBQ de JOBITRV à partir du travail
         011953/SAKADM/QPADEV0001. Le travail 011954/SAKADM/EDITION a été démarré par
         la commande SBMJOB (Soumettre un travail) avec les attributs : JOBPTY(5)
         OUTPTY(5) PRTTXT() RTGDTA(QCMDB) SYSLIBL(QSYS       QSYS2      QHLPSYS
         QUSRSYS) CURLIB(*CRTDFT) INLLIBL(QGPL       QTEMP) INLASPGRP(*NONE) LOG(4 00
         *SECLVL) LOGCLPGM(*NO) LOGOUTPUT(*JOBEND) OUTQ(JOBITRV/DEMOOUTQ)
         PRTDEV(PRT01) INQMSGRPY(*RQD) HOLD(*NO) DATE(*SYSVAL) […]
*NONE    -DSPLIB LIB(JOBITRV) OUTPUT(*PRINT)
CPF1164  Travail 011954/SAKADM/EDITION arrêté le 14/10/26 à
         15:53:59; temps UC 0,007; code fin 0 .

On y lit la file d'attente (DEMOJOBQ), le sous-système (DEMOSBS), les attributs reçus (dont la file de sortie JOBITRV/DEMOOUTQ), la commande exécutée, puis CPF1164 et le code de fin 0 : le travail s'est terminé normalement. Ses deux spools, la liste de la bibliothèque et l'historique lui-même, attendent maintenant dans la file de sortie.

Les types de travaux

Interactif et batch ne sont pas les seuls. WRKACTJOB et le service SQL QSYS2.ACTIVE_JOB_INFO affichent le type de chaque travail sous forme d'un code. Voici les principaux, avec le nombre relevé sur notre IBM i 7.5 au repos :

CodeTypeCe que c'estSur notre système
INT Interactif Une session sur un écran 5250 : il commence à l'ouverture de session et finit à la fermeture. 0
BCH Batch Un traitement soumis par SBMJOB : il attend dans une file d'attente de travaux, puis s'exécute sans écran. 50
BCI Batch immédiat Un travail batch lancé par un autre travail avec l'API spawn (QShell, PASE…) : il hérite des attributs de son parent, ne passe pas par une file d'attente et démarre plus vite. 17
ASJ Autostart Démarré automatiquement avec son sous-système. Celui de QCTL démarre les autres sous-systèmes. 8
PJ Prédémarré Démarré à l'avance pour attendre une demande : les serveurs d'IBM i (ODBC, fichiers…) en utilisent beaucoup. 45
SBS Moniteur de sous-système Le travail qui pilote un sous-système : il démarre, contrôle et arrête les travaux qui y tournent. 11
SYS Système Créé par le système d'exploitation pour gérer ses ressources. Il ne tourne dans aucun sous-système. 43
WTR Éditeur (writer) Prend les spools d'une file d'attente de sortie et les envoie à une imprimante. Il tourne dans QSPL. 0
RDR Lecteur (reader) Lit des flots de travaux dans un fichier et les place en file d'attente. 0

Aucun travail interactif ni éditeur sur notre relevé : personne n'était connecté, et la partition n'a pas d'imprimante. Les travaux batch ne sont pas des traitements soumis par des utilisateurs : presque tous tournent dans QSYSWRK, le sous-système des fonctions système démarrées automatiquement avec IBM i.

Voir les travaux : WRKACTJOB et WRKSBMJOB

WRKACTJOB liste les travaux actifs, rangés sous leur sous-système. Ici, nous l'avons limitée à cinq sous-systèmes pendant la démonstration :

Écran 5250 Gestion des travaux actifs : sous-systèmes DEMOSBS, QBATCH, QCTL, QINTER et QSPL, un travail batch CALCUL1 en DLYW et une session QPADEV0001 en RUN
WRKACTJOB SBS(QCTL QINTER QBATCH QSPL DEMOSBS) : sous chaque sous-système (type SBS), ses travaux. CALCUL1 est un travail batch (BCH), la session un travail interactif (INT).

La colonne Etat dit ce que fait le travail à cet instant. Les plus courants :

RUNIl s'exécute.
DSPWIl attend une saisie à l'écran : l'état normal d'une session interactive au repos.
MSGWIl attend la réponse à un message, souvent une erreur. À traiter : option 7 de WRKACTJOB.
DEQWIl attend du travail dans une file : l'état normal d'un sous-système ou d'un serveur au repos.
DLYWIl est retardé par la commande DLYJOB.
LCKWIl attend un verrou posé par un autre travail.

WRKSBMJOB montre les travaux que vous avez soumis, y compris ceux qui ne sont pas encore actifs ou déjà terminés. On y voit les trois moments de la vie d'un travail batch :

Écran 5250 Gestion des travaux transmis : EDITION en état OUTQ, CALCUL1 ACTIF, CALCUL2 et CALCUL3 en JOBQ, CALCUL4 en JOBQ HELD
WRKSBMJOB : CALCUL2 et CALCUL3 attendent en file (JOBQ), CALCUL4 y est suspendu (HELD), CALCUL1 s'exécute, EDITION est terminé et ne vit plus que par ses spools (OUTQ).

L'historique du travail

Chaque travail tient un historique (job log) : les commandes exécutées et les messages reçus, informations comme erreurs. C'est le premier endroit où chercher quand un traitement a échoué. Pendant que le travail est actif, on le lit par DSPJOBLOG ou par l'option 10 de WRKJOB. À la fin du travail, il peut devenir un spool, QPJOBLOG.

Le paramètre LOG du travail en décide, en trois éléments : le niveau de détail (0 à 4), la gravité minimale des messages consignés, et le texte. Le troisième est le plus important : avec *NOLIST, aucun historique n'est imprimé si le travail se termine normalement, seulement en cas de fin anormale (code de fin de 20 ou plus). C'est la valeur des descriptions de travail QDFTJOBD et QBATCH sur notre IBM i 7.5 : un travail qui réussit n'y laisse aucune trace imprimée. Notre description de travail de démonstration demande LOG(4 00 *SECLVL) : tout est consigné, avec le texte d'aide des messages, et l'historique est imprimé même quand tout se passe bien.

Écran 5250 Fichier spoule QPJOBLOG : historique du travail EDITION avec les messages CPF1124 et CPI1125
L'historique du travail EDITION, ouvert depuis la file de sortie : démarrage (CPF1124), puis les attributs reçus de SBMJOB (CPI1125).

Les commandes pour gérer les travaux

WRKACTJOBLes travaux actifs, par sous-système.
WRKJOBUn travail : état, attributs, historique, spools, verrous.
WRKUSRJOBLes travaux d'un utilisateur, actifs ou non.
WRKSBMJOBLes travaux que vous avez soumis.
SBMJOBSoumettre un travail batch.
DSPJOBLOGL'historique du travail.
CHGJOBModifier un travail : priorité, file d'attente, journalisation…
HLDJOBSuspendre un travail.
RLSJOBLibérer un travail suspendu.
ENDJOBArrêter un travail.

Et en SQL, avec les services IBM i :

QSYS2.ACTIVE_JOB_INFOLes travaux actifs, comme WRKACTJOB.
QSYS2.JOB_INFOLes travaux, actifs, en file ou terminés.
QSYS2.JOBLOG_INFOL'historique d'un travail actif.

À retenir

  • Tout s'exécute dans un travail, nommé numéro/utilisateur/nom.
  • Interactif : une session, dans QINTER. Batch : soumis par SBMJOB, il attend en JOBQ puis s'exécute dans QBATCH.
  • Le chemin d'un batch : JOBD, JOBQ, sous-système, OUTQ.
  • En cas de souci, l'état (MSGW) et l'historique du travail disent pourquoi.

Sources

Les exemples ont été créés et relevés sur un IBM i 7.5 (voir la méthode). Les définitions et les règles viennent de ces sources, consultées le 14 octobre 2026 :

  1. IBM i 7.3 Systems management : Work management, IBM (PDF, 212 pages). La vie d'un travail batch (SBMJOB, JOBQ, sous-système, pool mémoire, OUTQ) ; nom qualifié d'un travail à 6 chiffres ; types de travaux ; démarrage d'un travail interactif et d'un travail batch ; routage, classe et priorité d'exécution (0 à 99) ; pools *MACHINE, *BASE, *INTERACT, *SPOOL ; ordre d'une JOBQ (priorité 0 à 9, MAXACT, une file par sous-système) ; QSTRUPPGM ; OUTQ, spools, éditeurs et repli sur QGPL/QPRINT ; planning des travaux (objet QDFTJOBSCD, QJOBSCD, exemples d'ADDJOBSCDE, SBMJOB à heure fixe, reprise après arrêt).
  2. Subsystems shipped with the system, IBM, documentation IBM i 7.5. Les configurations QBASE et QCTL, la valeur système QCTLSBSD, le rôle de QINTER, QBATCH, QCMN, QSPL, QSYSWRK, QUSRWRK et QSERVER.
  3. ACTIVE_JOB_INFO table function, IBM, documentation IBM i 7.5. Les codes de type de travail (ASJ, BCH, BCI, INT, PJ, SBS, SYS, WTR…) et d'état (RUN, DSPW, MSGW, DEQW, DLYW, LCKW…).
  4. L'aide en ligne des commandes citées, livrée avec IBM i 7.5 et reprise en français dans les fiches des commandes CL de ce site. Valeurs par défaut de SBMJOB, CRTJOBD, CRTPF (WAITRCD), CPYSPLF et DLTSPLF.

Questions fréquentes

Qu'est-ce qu'un travail (job) sur IBM i ?

Un travail est l'unité de travail d'IBM i : tout ce qui s'exécute le fait dans un travail, qu'il s'agisse d'une session 5250, d'un traitement de nuit ou d'un serveur. Un travail exécute des programmes, a au moins une unité d'exécution (thread), un utilisateur, une liste de bibliothèques et un historique.

Comment s'écrit le nom d'un travail ?

Le nom qualifié a trois parties : numéro/utilisateur/nom, par exemple 011954/SAKADM/EDITION. Le numéro fait toujours 6 chiffres et rend le nom unique. Un travail interactif porte le nom de l'écran ou de la session, un travail batch le nom choisi dans SBMJOB.

Quelle différence entre un travail interactif et un travail batch ?

Un travail interactif commence à l'ouverture de session sur un écran et finit à la fermeture : le système attend l'utilisateur à chaque écran. Un travail batch est soumis par SBMJOB, attend dans une file d'attente de travaux et s'exécute en arrière-plan sans écran. Par défaut, les premiers tournent dans QINTER, les seconds dans QBATCH.

Comment voir les travaux actifs ?

WRKACTJOB liste les travaux actifs par sous-système, avec leur type (INT, BCH, SBS…), leur fonction et leur état. WRKSBMJOB montre les travaux que vous avez soumis, même terminés, et en SQL, QSYS2.ACTIVE_JOB_INFO donne la même liste.

Que veulent dire DSPW, MSGW, DEQW ou RUN dans WRKACTJOB ?

C'est l'état du travail. RUN : il s'exécute. DSPW : il attend une saisie à l'écran. MSGW : il attend une réponse à un message, souvent une erreur à traiter. DEQW : il attend du travail dans une file, état normal d'un sous-système. DLYW : il est retardé par DLYJOB.