> Tech > Apache/PHP/ibm_db2 et la liste de bibliothèques

Apache/PHP/ibm_db2 et la liste de bibliothèques

Tech - Par Renaud ROSSET - Publié le 27 octobre 2010
email

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

Cybersécurité des collectivités : Enjeux, Perspectives & Solutions

Cybersécurité des collectivités : Enjeux, Perspectives & Solutions

Villes, intercommunalités, métropoles, départements et régions sont particulièrement exposés aux risques de cybersécurité. Ce livre blanc Stormshield présente les défis cyber que rencontrent les collectivités, les solutions et perspectives pour qu’elles puissent assurer leur mission d’utilité publique, en toute sécurité.

Tech - Par Renaud ROSSET - Publié le 27 octobre 2010