Aller au contenu

Service SQL IBM i (AS/400) · Procédure

SYSTOOLS.END_JOBS

Arrêter des travaux par filtre

Recherche les travaux actifs selon un nom, un utilisateur ou un sous-système et les termine : l'automatisation de ENDJOB en SQL.

À quoi ça sert

Cette procédure trouve les travaux actifs correspondant aux filtres JOB_NAME_FILTER, CURRENT_USER_LIST_FILTER et SUBSYSTEM_LIST_FILTER (liste séparée par des virgules), puis les termine un par un avec l'option END_OPTION (CONTROLLED par défaut) et un délai de fin contrôlée END_CONTROLLED_DELAY.

On peut supprimer les fichiers spoule du travail (DELETE_SPOOLED_FILES) et limiter la taille de son historique (MAXIMUM_JOBLOG_ENTRIES, 0 pour ne pas en produire). Les paramètres JOB_END_MAXIMUM, JOB_END_ITERATION_COUNT et JOB_END_ITERATION_DELAY règlent l'attente de la fin effective des travaux.

Elle est utile avant une sauvegarde ou une maintenance, pour arrêter proprement tous les travaux d'un lot ou d'un sous-système.

Résultat réel sur un IBM i 7.5

Procédure non exécutée sur notre IBM i de test : elle agit sur la configuration du système ou sur d'autres travaux.

L'exemple d'IBM

Trouver et terminer tous les travaux actifs nommés BATCHTEST, en fin contrôlée, en conservant les fichiers spoule et sans produire d'historique du travail.

-- Description: Find and end all the active jobs with a job name of BATCHTEST. 
    -- For every job, end using the controlled option, save any spooled files, and do 
    -- not generate a job log. 
  CALL SYSTOOLS.END_JOBS(JOB_NAME_FILTER          => 'BATCHTEST',  
                       END_OPTION               => 'CONTROLLED', 
                       DELETE_SPOOLED_FILES     => 'NO', 
                       MAXIMUM_JOBLOG_ENTRIES   => 0);

Bon à savoir

Un filtre trop large, ou *ALL par défaut sur le nom, peut viser bien plus de travaux que prévu. Contrôler d'abord la liste avec QSYS2.ACTIVE_JOB_INFO et le même critère. Les droits requis sont ceux de ENDJOB (*JOBCTL).

Paramètres

ParamètreTypePar défautSignification
JOB_NAME_FILTER VARCHAR(10) '*ALL' Filtre sur le nom du travail
CURRENT_USER_LIST_FILTER VARCHAR(109) NULL Filtre sur la liste des profils utilisateur courants
SUBSYSTEM_LIST_FILTER VARCHAR(274) NULL Filtre sur le sous-système (liste séparée par des virgules)
END_OPTION VARCHAR(10) 'CONTROLLED' Option de fin
END_CONTROLLED_DELAY INTEGER 30 Délai de fin contrôlée
DELETE_SPOOLED_FILES VARCHAR(3) 'NO' Supprimer les fichiers spoule
MAXIMUM_JOBLOG_ENTRIES VARCHAR(10) '*SAME' Nombre maximal d'écritures de l'historique du travail
JOB_END_MAXIMUM INTEGER 970000 Maximum pour la fin des travaux
JOB_END_ITERATION_COUNT INTEGER 100 Nombre d'itérations de la fin des travaux
JOB_END_ITERATION_DELAY INTEGER 60 Délai entre les itérations de la fin des travaux