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
SIEM & PME : Comment construire la boîte noire de votre SI ?
Passez à la cybersécurité proactive, transformez la collecte et l’analyse des logs en un bouclier dynamique contre les cybermenaces. Découvrez comment mettre en place une approche SIEM modulaire, évolutive et accessible, pour anticiper, détecter et réagir efficacement aux attaques.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- IA et cybersécurité : les entreprises françaises acceptent plus de risques qu’elles ne savent les contrôler
- Infrastructures critiques : la France redoute les attaques dopées à l’IA, mais peine à unifier sa sécurité IT/OT
- Les Assises 2026 : encore plus d’énergie pour poursuivre le chemin
- Agents IA : arrêtons de leur confier nos secrets
Articles les + lus
Continuer avec Exchange Server : quelles conséquences ?
Raccourcis Réseau et Navigateur : le kit de Diagnostic des Professionnels IT
Raccourcis PowerShell et Windows Terminal pour les Professionnels IT
Commandes Windows 11 : le Guide des Outils accessibles avec Win + R
Sécurité : une approche dans la durée avant tout
À la une de la chaîne Tech
- Continuer avec Exchange Server : quelles conséquences ?
- Raccourcis Réseau et Navigateur : le kit de Diagnostic des Professionnels IT
- Raccourcis PowerShell et Windows Terminal pour les Professionnels IT
- Commandes Windows 11 : le Guide des Outils accessibles avec Win + R
- Sécurité : une approche dans la durée avant tout
