SELECT JOB_NAME, AUTHORIZATION_NAME, SUBSYSTEM,
ELAPSED_CPU_PERCENTAGE, CPU_TIME, FUNCTION
FROM TABLE(QSYS2.ACTIVE_JOB_INFO(RESET_STATISTICS => 'YES'))
WHERE JOB_TYPE <> 'SYS'
ORDER BY ELAPSED_CPU_PERCENTAGE DESC
FETCH FIRST 15 ROWS ONLY
Per guardare un solo sottosistema:
SELECT JOB_NAME, ELAPSED_CPU_PERCENTAGE, FUNCTION
FROM TABLE(QSYS2.ACTIVE_JOB_INFO(SUBSYSTEM_LIST_FILTER => 'QBATCH'))
ORDER BY ELAPSED_CPU_PERCENTAGE DESC
Esempio: «ieri alle tre era lentissimo»
È la segnalazione che arriva sempre il giorno dopo, quando non c'è più niente da guardare.
WRKACTJOB mostra adesso; il problema era ieri.
Un job schedulato ogni cinque minuti che scrive i primi cinque consumatori risolve la categoria intera. La tabella si crea dalla query stessa, così nomi e tipi delle colonne li decide il servizio e non vanno indovinati:
CREATE TABLE MIALIB/STORCPU AS (
SELECT CURRENT TIMESTAMP AS RILEVATO, JOB_NAME,
AUTHORIZATION_NAME, ELAPSED_CPU_PERCENTAGE, FUNCTION
FROM TABLE(QSYS2.ACTIVE_JOB_INFO())
) WITH NO DATA
Poi il CL da schedulare:
RUNSQL SQL('INSERT INTO MIALIB/STORCPU +
SELECT CURRENT TIMESTAMP AS RILEVATO, JOB_NAME, +
AUTHORIZATION_NAME, ELAPSED_CPU_PERCENTAGE, FUNCTION +
FROM TABLE(QSYS2.ACTIVE_JOB_INFO()) +
WHERE JOB_TYPE <> ''SYS'' +
ORDER BY ELAPSED_CPU_PERCENTAGE DESC +
FETCH FIRST 5 ROWS ONLY') COMMIT(*NONE)
Il giorno dopo la domanda ha una risposta:
SELECT * FROM MIALIB/STORCPU
WHERE RILEVATO BETWEEN '2026-08-25 14:30:00' AND '2026-08-25 15:30:00'
ORDER BY RILEVATO, ELAPSED_CPU_PERCENTAGE DESC
Una riga ogni cinque minuti per cinque job occupa pochissimo, e trasforma una lamentela in un nome di programma.
Nota
ELAPSED_CPU_PERCENTAGE è la percentuale nell'intervallo trascorso dall'ultimo
azzeramento, non da quando il job è partito. Con RESET_STATISTICS => 'YES' si azzera e si
riesegue la query dopo qualche secondo: è così che si vede chi sta consumando adesso,
invece di chi ha consumato in totale.
Suggerimento
la colonna FUNCTION dice a che punto è il job; quale programma o quale
comando sta eseguendo. Su un job fermo è spesso l'unica informazione che serve.
Rilasci. QSYS2.ACTIVE_JOB_INFO è disponibile dal 7.1, ma i parametri con nome sono
stati aggiunti nel tempo: RESET_STATISTICS e SUBSYSTEM_LIST_FILTER non ci sono sui
rilasci più vecchi. Se la chiamata viene rifiutata, si esegue la funzione senza parametri
(TABLE(QSYS2.ACTIVE_JOB_INFO())) e si filtra nel WHERE.
Commenti
Nessun commento ancora. Sii il primo a commentare!
Devi avere un account per commentare. Accedi · Registrati