Comment arrêter des jobs qui ne veulent pas s’arrêter ? ENDJOBABN ?
Oui,ENDJOBABNest la commande qui sert justement à arrêter un job qui ne veut plus obéir à un simpleENDJOB OPTION(*IMMED). Mais c’est une arme de dernier recours, avec quelques implications.
Quand utiliser ENDJOBABN ?
IBM recommande de ne l’utiliserqu’après avoir tenté un ENDJOB avec OPTION(*IMMED), et seulement si le job reste en statutEND/ENDINGsans se terminer.
Sur IBM i V7R3+, il faut attendreau moins 10 minutesaprè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’auprochain 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 unIPLpour récupérer le système.