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
Plan de sécurité Microsoft 365
Les attaquants savent comment prendre le contrôle de votre tenant Microsoft 365, et vous, savez-vous comment le reprendre en main ?
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Raccourcis Réseau et Navigateur : le kit de Diagnostic des Professionnels IT
- L’IA transforme la modernisation IT en enjeu stratégique d’entreprise
- D’un centre de coûts à un centre de valeur : la transformation des centres de contact
- Utilities : la résilience des réseaux devient prioritaire face à la pression énergétique
Articles les + lus
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
Guide Ultime des Raccourcis Clavier Windows 11 pour les Professionnels IT
À la une de la chaîne Tech
- 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
- Guide Ultime des Raccourcis Clavier Windows 11 pour les Professionnels IT
