Aller au contenu

Recette SQL IBM i (AS/400) · Travaux

Combien de travaux tournent dans chaque sous-système

Le nombre de travaux actifs dans chaque sous-système, séparés entre interactifs et batch : une photo de la charge en une requête.

Le besoin

Combien de travaux tournent dans QBATCH, QINTER, QUSRWRK ? Pour un tableau de bord d'exploitation ou un suivi de charge, un comptage par sous-système suffit.

La requête

SELECT SUBSYSTEM, COUNT(*) AS TRAVAUX,
       SUM(CASE WHEN JOB_TYPE = 'INT' THEN 1 ELSE 0 END) AS INTERACTIFS,
       SUM(CASE WHEN JOB_TYPE = 'BCH' THEN 1 ELSE 0 END) AS BATCH
FROM TABLE(QSYS2.ACTIVE_JOB_INFO(DETAILED_INFO => 'NONE')) J
WHERE SUBSYSTEM IS NOT NULL
GROUP BY SUBSYSTEM
ORDER BY TRAVAUX DESC

Le GROUP BY SUBSYSTEM compte les travaux ; les SUM(CASE WHEN …) séparent les types INT (interactif) et BCH (batch). Les autres types (BCI, PJ, ASJ…) comptent dans le total.

Le résultat sur un IBM i 7.5

Ce que l'IBM i a renvoyé le 01/10/2026 (5 lignes au plus) :

SUBSYSTEM Sous-système TRAVAUX Nombre de travaux INTERACTIFS Travaux interactifs BATCH Travaux batch
QHTTPSVR 137 0 10
QUSRWRK 91 0 6
QSYSWRK 77 0 39
QSERVER 24 0 3
QINTER 19 18 0

Sur notre IBM i, c'est QHTTPSVR (les serveurs web et l'administration) qui compte le plus de travaux, devant QUSRWRK où tournent les connexions SQL et ODBC.

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

Ajoutez SUM(CPU_TIME) ou SUM(TEMPORARY_STORAGE) pour la consommation par sous-système. Insérée chaque heure dans une table, la requête donne un historique de charge.