Nous venons de voir plusieurs techniques de traitement des exceptions. Mais qu'en est-il quand une application est annulée, par la commande ENDJOB (End Job), la commande ENDSBS (End Subsystem) ou une réponse "C" (cancel) à un message d'interrogation, par exemple ? Ne serait-il pas intéressant de fermer l'application en bon
Gestionnaires d’annulation ILE
ordre dans de telles circonstances ? Bien sûr : c’est exactement ce que permet ILE avec les gestionnaires d’annulation.
Un gestionnaire d’annulation prend la main quand l’entrée de pile d’appel qui lui est associée se termine sans retour normal. A l’instar des gestionnaires de conditions, les gestionnaires d’annulation peuvent exécuter le code de votre choix. Considérons, par exemple, un long processus batch qui, en cas d’annulation, doit redémarrer du début. On pourrait écrire un gestionnaire d’annulation enregistrant des informations permettant au processus de redémarrer à son point de sortie lorsqu’il s’est terminé.
Le coding des gestionnaires d’annulation ou des gestionnaires de conditions sont deux opérations très similaires. Le programme RPG IV CnlHdlTest (figure 3) est un exemple de gestionnaire d’annulation simple, qui démontre à quel point il est facile de programmer des gestionnaires d’annulation. La procédure principale affiche simplement « Cancel me » et attend une réponse. Si on fournit une réponse (ou si on quitte), le programme se termine. Pour voir le gestionnaire d’annulation en action, vous pouvez appuyer sur la touche Appel Système quand ce message apparaît et choisir l’option 2 pour mettre fin au job. La procédure de gestionnaire d’annulation, CNLHDL, affiche « Cool, huh? » et attend une réponse avant de mettre fin au programme. Voyons comment les choses se passent.
Pour valider un gestionnaire d’annulation, enregistrez-le avec l’API ILE CEERTX (Register Call Stack Entry Termination User Exit Procedure). De même, pour le désenregistrer (invalider), utilisez l’API CEEUTX (Unegister Call Stack Entry Termination User Exit Procedure). Ces API sont expliquées dans les manuels cités plus haut. Leurs paramètres correspondent à ceux des API d’enregistrement et de désenregistrement pour les gestionnaires de conditions. L’interface avec le gestionnaire d’annulation lui-même est constituée par un pointeur sur une zone de communication comme celle qui existe dans les gestionnaires de conditions. Toutefois, notre exemple n’utilise pas de zone de communication.
Le programme commence avec les prototypes de procédure requis. Observez que dans cet exemple, j’ai prototypé et codé le gestionnaire d’annulation dans le même module que la procédure principale. Je l’ai fait pour montrer que l’on peut coder des gestionnaires de conditions et des gestionnaires d’annulation de nombreuses façons différentes.
Les cartes D qui suivent définissent une variable chargée de recevoir la réponse aux messages affichés par le programme. Comme cette définition se trouve dans la procédure principale, la variable est de portée globale.
Ensuite, le programme enregistre le gestionnaire d’annulation. Notez que j’ai omis la zone de communication et les paramètres de code retour en les codant sous la forme *Omit. Le programme affiche alors le message « Cancel me » et attend une réponse. Après votre réponse au message, le programme désenregistre le gestionnaire d’annulation et se termine.
Si vous mettez fin au job (en choisissant par exemple l’option 2 du menu Appel Système), le gestionnaire d’annulation CNLHDL (A) prend la main. Il affiche le message « Cool, huh? » et attend une réponse.
Téléchargez cette ressource
Microsoft 365 Tenant Resilience
Face aux failles de résilience des tenants M365 (configurations, privilèges, sauvegarde). Découvrez 5 piliers pour durcir, segmenter et surveiller vos environnements afin de limiter l’impact des attaques. Prioriser vos chantiers cyber et améliorer la résilience de vos tenants Microsoft 365.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Les coûts cachés des merge requests générées par l’IA
- WatchGuard lance Rai, une IA agentique taillée pour les MSP
- Mythos révèle les limites d’un Zero Trust centré sur le réseau
- Faire évoluer la souveraineté des données du statut d’ambition politique à son application opérationnelle
Articles les + lus
Analyse Patch Tuesday Mai 2026
Les coûts cachés des merge requests générées par l’IA
Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
Moderniser le développement logiciel : de la fragmentation à l’intégration
Analyse Patch Tuesday Avril 2026
À la une de la chaîne Tech
- Analyse Patch Tuesday Mai 2026
- Les coûts cachés des merge requests générées par l’IA
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
- Moderniser le développement logiciel : de la fragmentation à l’intégration
- Analyse Patch Tuesday Avril 2026
