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.
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 :
| Partie | Exemple | D'où elle vient |
|---|---|---|
| Numéro | 011954 | Attribué par le système, toujours 6 chiffres. C'est lui qui rend le nom unique. |
| Utilisateur | SAKADM | Le profil sous lequel le travail démarre : celui de l'ouverture de session, ou celui indiqué à SBMJOB. |
| Nom | EDITION | Pour 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 :

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 interactif | Travail batch | |
|---|---|---|
| Il commence | à l'ouverture de session sur un écran | quand 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 par | un poste écran du sous-système | une file d'attente de travaux (JOBQ) |
| Sous-système livré | QINTER (la console : QCTL) | QBATCH |
| Son nom | celui de l'écran : QPADEV0001 | celui donné à SBMJOB : EDITION |
| Priorité d'exécution relevée | 20 (classe QINTER) | 50 (classe QBATCH) |
| S'il pose une question | l'utilisateur répond à l'écran | il 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.

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 :

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.
- 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.
- 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.
- 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.
- Il s'exécute dans la mémoire du pool, et ses impressions deviennent des spools.
- 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 :
| Code | Type | Ce que c'est | Sur 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 :

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 :
RUN | Il s'exécute. |
|---|---|
DSPW | Il attend une saisie à l'écran : l'état normal d'une session interactive au repos. |
MSGW | Il attend la réponse à un message, souvent une erreur. À traiter : option 7 de WRKACTJOB. |
DEQW | Il attend du travail dans une file : l'état normal d'un sous-système ou d'un serveur au repos. |
DLYW | Il est retardé par la commande DLYJOB. |
LCKW | Il 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 :

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.

Les commandes pour gérer les travaux
| WRKACTJOB | Les travaux actifs, par sous-système. |
|---|---|
| WRKJOB | Un travail : état, attributs, historique, spools, verrous. |
| WRKUSRJOB | Les travaux d'un utilisateur, actifs ou non. |
| WRKSBMJOB | Les travaux que vous avez soumis. |
| SBMJOB | Soumettre un travail batch. |
| DSPJOBLOG | L'historique du travail. |
| CHGJOB | Modifier un travail : priorité, file d'attente, journalisation… |
| HLDJOB | Suspendre un travail. |
| RLSJOB | Libérer un travail suspendu. |
| ENDJOB | Arrêter un travail. |
Et en SQL, avec les services IBM i :
| QSYS2.ACTIVE_JOB_INFO | Les travaux actifs, comme WRKACTJOB. |
|---|---|
| QSYS2.JOB_INFO | Les travaux, actifs, en file ou terminés. |
| QSYS2.JOBLOG_INFO | L'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 :
- 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).
- 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.
- 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…).
- 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.