Connecter PHP à IBM i (AS/400)

J'ai un projet à venir dans lequel je devrai connecter notre site Web (PHP5/Apache 1.3/OpenBSD 4.1) à notre système back-end fonctionnant sur un iSeries avec OS400 V5R3 afin que je puisse accéder à certaines tables qui y sont stockées . J'ai fait quelques vérifications, mais je rencontre des obstacles.

D'après ce que j'ai vu, les extensions DB2 et le logiciel DB2 d'IBM ne fonctionnent que sous Linux. J'ai essayé de compiler les extensions avec tous les logiciels d'IBM et j'ai même essayé leur extension ibm_db2 précompilée sans succès. IBM ne prend en charge que Linux, j'ai donc activé l'émulation Linux dans le noyau, mais cela n'a semblé rien aider.

Si quelqu'un a rencontré tout ce qui fonctionne nativement sous OpenBSD, ce serait formidable, mais je pense que je devrais peut-être configurer un deuxième serveur exécutant CentOS avec DB2 installé (probablement via ZendCore pour IBM car il semble pour faire tout cela pour moi) et le pilote afin que je puisse configurer un petit serveur de transactions sur lequel je peux publier et obtenir une représentation JSON des données DB2 dont j'ai besoin.

La deuxième option vous semble-t-elle exagérée ou quelqu'un d'autre a-t-il de meilleures idées ?

请先 登录 后评论

5 réponses

dragonmantank

On dirait qu'un service Web va être la solution pour moi. Sur une boîte de production, je préférerais ne pas avoir à compiler et à maintenir ma propre installation spéciale de PHP, car le support ODBC doit être compilé, selon la documentation PHP.

请先 登录 后评论
J.T. Grimes

Un service Web est presque certainement la voie à suivre. Je suis sûr que vous y avez déjà pensé, mais puisque vous utilisez PHP des deux côtés, vous pouvez raccourcir un peu les choses en utilisant serialize() pour créer vos données de réponse au lieu de créer un document XML approprié. Il est moins flexible à long terme, mais il vous permettra probablement d'être opérationnel plus rapidement.

请先 登录 后评论
andyhky

Pour seconder @John Downey, j'ai obtenu la connectivité pour travailler avec PHP sur un AS/400 avec unixODBC.

Vérifiez votre phpinfo() pour voir si unixODBC y est disponible. Je n'ai pas eu à le compiler sur SLES 10.

请先 登录 后评论
jsight

En effet, un service Web semble être un excellent moyen de résoudre le problème. Une façon d'éviter d'avoir un système d'exploitation complètement séparé serait d'écrire le service Web en Java au-dessus des outils AS400 pour Java (qui sont plutôt sympas, d'ailleurs). Cela devrait au moins vous permettre d'exécuter également votre couche de service sur la machine OpenBSD.

请先 登录 后评论
Mike Wills

Vous pouvez également vous connecter directement à l'aide d'un pilote ODBC standard. La version IBM vous donne généralement plus de fonctionnalités comme la possibilité d'appeler des programmes et des choses comme ça. Si vous n'avez besoin que de SQL et de procédures stockées, ODBC devrait fonctionner.

请先 登录 后评论