J’ai choisi ibm.db2 pour servir de modèle au projet Acme, parce qu’il est toujours plus performant que les autres extensions PHP. Avant de continuer avec l’application Acme, intéressons- nous à la liste de bibliothèques utilisées par les applications écran vert i5/OS traditionnelles et voyons comment procéder en présence d’Apache/PHP/ibm_db2.
Apache/PHP/ibm_db2 et la liste de bibliothèques
/>
Il n’existe pas d’API ibm_db2 directe pour définir la liste de bibliothèques. D’ailleurs, le fait de changer cette liste dans un processus Apache/ PHP déjà actif est illogique au mieux (comme le fait de changer des chemins de répertoires sur d’autres plates-formes), et nous ne pouvons jamais vraiment prévoir l’impact d’un possible reliquat du changement de la liste de bibliothèques sur la prochaine application PHP étrangère à celle-ci, qui réutilise le processus Apache.
Beaucoup d’applications i5/OS existantes sont tributaires de la liste de bibliothèques. Par conséquent, si nous ne pouvons pas changer le code existant (RPG), nous devons assouplir les règles stateless Apache pour autoriser d’anciens codes i5/OS. Heureusement, IBM offre de nombreux moyens de travailler avec les listes de bibliothèques, que nous pouvons utiliser pour notre frontal Apache/PHP/ibm_db2 avec l’application Acme.
J’ai testé toutes les options de listes de bibliothèques avec succès sur Acme, mais j’ai opté pour l’option 3 : changer la liste de bibliothèques avec une procédure stockée. Le module help.php de l’application Acme PHP a la variable globale $INSTALL="yes" pour créer l’interface « cmdcall » de procédure stockée avec QSYS/QCM SEXC dans la bibliothèque héritée Acme (spécifiée dans config.php) quand vous cliquez sur le bouton Help du premier écran de commandes.
L’application Acme PHP appelle la procédure stockée « cmdcall » avec « addlible acmelib » avant d’utiliser le modèle de procédure stockée db2 pour éviter les erreurs dans l’application Acme existante. Inversement, l’application Acme PHP appelle la procédure stockée « cmdcall » avec « rmvlible acmelib » pour défaire le changement d’état dans le job Apache sur le trajet de sortie du serveur.
Pour activer la liste de bibliothèques, l’application Acme PHP utilise l’option system naming sur la connexion db2 (array("i5_ naming"=>DB2_I5_ NAMING_ON)) pour éviter le nommage SQL par défaut ibm_db2, qui ne fonctionnera pas bien avec notre code Acme actuel sensible à la liste de bibliothèques.
Remarque : Si le bouton Help ne peut pas créer la procédure stockée « cmdcall », il vous faudra changer manuellement GRTOBJAUT *RWX en *PUBLIC et/ou *NOBODY vis-à-vis de la bibliothèque héritée Acme, puis réessayer le bouton Help.
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
- Baromètre channel IT : fin du cuivre, essor de UCaaS et premiers pas vers l’IA
- Fraude par identité synthétique : comment l’IA peut redonner confiance aux entreprises et à leurs clients
- VirtualBrowser protège la navigation web à la source
- Innovation et performance : le rôle clé du consulting dans la transformation numérique
Articles les + lus
Moderniser le développement logiciel : de la fragmentation à l’intégration
Analyse Patch Tuesday Mars 2026
Une nouvelle ère de la modernisation du mainframe
Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
DevX Summit EMEA : les développeurs au cœur de la révolution de l’IA
À la une de la chaîne Tech
- Moderniser le développement logiciel : de la fragmentation à l’intégration
- Analyse Patch Tuesday Mars 2026
- Une nouvelle ère de la modernisation du mainframe
- Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
- DevX Summit EMEA : les développeurs au cœur de la révolution de l’IA
