Comment arrêter des jobs qui ne veulent pas s’arrêter ? ENDJOBABN ?
Oui, ENDJOBABN est la commande qui sert justement à arrêter un job qui ne veut plus obéir à un simple ENDJOB OPTION(*IMMED). Mais c’est une arme de dernier recours, avec quelques implications.
Quand utiliser ENDJOBABN ?
IBM recommande de ne l’utiliser qu’après avoir tenté un ENDJOB avec OPTION(*IMMED), et seulement si le job reste en statut END / ENDING sans se terminer.
Sur IBM i V7R3+, il faut attendre au moins 10 minutes après l’ENDJOB avant de pouvoir lancer ENDJOBABN sur le même job.
Syntaxe de base :
ENDJOBABN JOB(number/user/jobname)
Exemple :
ENDJOBABN JOB(034567/USER1/PGMJOB)
Optionnellement, sur V7R3+ tu peux lui demander un dump :
ENDJOBABN JOB(034567/USER1/PGMJOB) DUMP(*JOB)
Cela permet d’avoir des infos pour le support IBM si tu as un job coincé en boucle dans une instruction MI ou une clean‑up.
Points importants / risques
-
Nettoyage incomplet : certaines ressources (fichiers, verrous, locks SQL, etc.) peuvent ne pas être libérées proprement. Elles ne seront souvent remises à zéro qu’au prochain IPL.
-
IPL « anormal » simule : l’utilisation de ENDJOBABN peut faire considérer le prochain IPL comme anormal, ce qui peut rallonger le démarrage.
-
ENDJOBABN peut aussi échouer : si le job est coincé dans une instruction MI ou dans un moniteur de SBS bloqué, ENDJOBABN peut ne pas aboutir non plus, et tu peux finir par un IPL pour récupérer le système.