Recette SQL IBM i (AS/400) · Travaux
Les files d'attente des travaux qui ont des travaux en attente
Les files d'attente des travaux qui contiennent des travaux en attente, ou qui sont suspendues : pour comprendre pourquoi un batch soumis ne démarre pas.
Le besoin
Un travail soumis par SBMJOB reste en JOBQ : la file est suspendue, n'est rattachée à aucun sous-système actif, ou son nombre maximal de travaux actifs est atteint. Cette requête montre les trois cas d'un coup.
La requête
SELECT JOB_QUEUE_LIBRARY, JOB_QUEUE_NAME, JOB_QUEUE_STATUS, NUMBER_OF_JOBS,
SUBSYSTEM_NAME, MAXIMUM_ACTIVE_JOBS, ACTIVE_JOBS
FROM QSYS2.JOB_QUEUE_INFO
WHERE NUMBER_OF_JOBS > 0 OR JOB_QUEUE_STATUS = 'HELD'
ORDER BY NUMBER_OF_JOBS DESC
QSYS2.JOB_QUEUE_INFO donne pour chaque file son statut (RELEASED ou HELD), le nombre de travaux en attente, le sous-système qui la sert et ses limites. Une file avec des travaux mais sans SUBSYSTEM_NAME n'est servie par personne.
Le résultat sur un IBM i 7.5
Ce que l'IBM i a renvoyé le 01/10/2026 (5 lignes au plus) :
| JOB_QUEUE_LIBRARY Bibliothèque de la file d'attente des travaux | JOB_QUEUE_NAME Nom de la file d'attente des travaux | JOB_QUEUE_STATUS Statut de la file d'attente des travaux | NUMBER_OF_JOBS Nombre de travaux | SUBSYSTEM_NAME Nom du sous-système | MAXIMUM_ACTIVE_JOBS Nombre maximal de travaux actifs | ACTIVE_JOBS Nombre de travaux actifs |
|---|---|---|---|---|---|---|
| BIBAPP073 | JOBQ1 | RELEASED | 21 | NULL | NULL | NULL |
| BIBAPP118 | J1BRU | HELD | 3 | QBATCH | -1 | 0 |
| BIBAPP073 | JOBQ3 | RELEASED | 2 | NULL | NULL | NULL |
| BIBAPP459 | J3 | RELEASED | 2 | NULL | NULL | NULL |
| LEROY | S1 | RELEASED | 1 | NULL | NULL | NULL |
Chez nous, une file contient 21 travaux sans sous-système pour la servir (ils n'ont aucune chance de démarrer), et une autre est suspendue (HELD) avec 3 travaux.
Données anonymisées : les noms de système, de profils, de bibliothèques, de postes et les adresses IP ont été remplacés.
L'adapter à votre système
Pour voir les travaux eux-mêmes, utilisez SYSTOOLS.JOB_QUEUE_ENTRIES ou QSYS2.JOB_INFO(JOB_STATUS_FILTER => '*JOBQ').