Connectez PHP à IBM i (AS / 400)

voix
30

J'ai un projet à venir où je besoin de connecter notre site Web ( PHP5/Apache 1.3/OpenBSD 4.1) à notre système back-end en cours d' exécution sur un iSeries avec OS400 V5R3 pour que je puisse accéder à certaines tables qui y sont stockées. Je l' ai fait quelques recherches mais je suis en cours d' exécution dans certains barrages routiers.

D'après ce que j'ai vu les extensions DB2 et le logiciel DB2 d'IBM fonctionner uniquement sous Linux. J'ai essayé de compiler les extensions avec tous les logiciels d'IBM et même essayé leur extension précompilée ibm_db2 sans chance. IBM soutient que Linux donc je mis sous tension l'émulation Linux dans le noyau, mais cela ne semble pas aider quoi que ce soit.

Si quelqu'un a courir à travers obtenir tout pour fonctionner nativement sous OpenBSD, ce serait génial, mais ce que je pense que je pourrais avoir à faire est la mise en place d'un second serveur exécutant CentOS avec DB2 installé (le plus souvent par l'intermédiaire ZendCore pour IBM car il semble faire tout pour moi) et le conducteur afin que je puisse mettre en place un petit serveur de transactions que je peux poster contre et obtenir une représentation JSON des données DB2 que j'ai besoin.

Est-ce que la deuxième option semble surpuissance ou que quelqu'un d'autre a une meilleure idée?

Créé 03/08/2008 à 15:03
source utilisateur
Dans d'autres langues...                            


8 réponses

voix
16

Avez - vous regardé la connexion au serveur en utilisant unixODBC ? Si je me souviens bien , il a un support pour IBM DB2 et compile sur OpenBSD. Consultez http://www.php.net/odbc pour plus d' informations sur le côté de PHP.

Si vous ne pouvez pas obtenir cela pour fonctionner, la possibilité de configurer un service Web sur un serveur Linux peut être tout ce que vous pouvez faire.

Créé 03/08/2008 à 15:39
source utilisateur

voix
4

Plutôt que de configurer une 2ème case, pourquoi ne pas regarder dans le connecteur PHP pour iSeries? Mes gars mainframe ont dit qu'il était très facile à installer sur nos iSeries ici.

Nous avons écrit un simple serveur en PHP qui charge les modèles de données à partir de données DB2, les sérialise et les retourne à l'appelant. Cette approche signifie que seule une autre application PHP peut consommer le service, mais il est tellement plus rapide sur les deux extrémités juste sérialiser l'objet et l'envoyer dans le tuyau.

Voici un PDF à partir d' IBM sur le sujet: http://i-seriesusergroup.org/wp-content/uploads/2006/09/PHP%20for%20i5OS%20NESDND.pdf

Créé 27/08/2008 à 21:03
source utilisateur

voix
2

Pour la deuxième Downey @John, j'ai obtenu la connectivité à travailler avec PHP sur AS / 400 avec unixODBC.

Vérifiez votre phpinfo () pour voir si unixODBC est disponible en elle. Je ne devais pas le compiler dans le SLES 10.

Créé 25/08/2008 à 00:10
source utilisateur

voix
2

On dirait un service web va être la réponse pour moi. Sur une boîte de production, je devrais plutôt de ne pas passer par la compilation et de maintenir ma propre installation spéciale de PHP depuis le support ODBC doit être compilé, selon la documentation PHP.

Créé 03/08/2008 à 22:31
source utilisateur

voix
1

Pourquoi ne pas utiliser PDO de PHP? Je dois deviner ici que je ne pouvais pas trouver une liste publique de tous les ports disponibles pour OpenBSD, mais comme il y a un port pour FreeBSD, NetBSD, etc. vous peut-être avoir de la chance aussi.

(Je suppose que même si des liens OpenBSD au manuel de portier de FreeBSD, FreshPorts est pas applicable pour votre système?)

Si AOP n'est pas disponible et que j'espère que vous utilisez des ports et selon le lien suivant il est php5-ODBC disponibles:

Donc, en supposant que vous gérez votre système à travers les ports, il y a vos pointeurs.

J'espère que cela pourra aider!

Créé 01/10/2008 à 19:16
source utilisateur

voix
1

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

Créé 23/09/2008 à 14:42
source utilisateur

voix
1

En effet, un webservice semble être une excellente façon de résoudre le problème. Une façon d'éviter d'avoir un système d'exploitation complètement séparé pour elle serait d'écrire le webservice en Java sur des outils AS400 pour Java (qui sont très bien, d'ailleurs). Cela devrait au moins vous permettre de gérer votre couche de service sur la boîte OpenBSD ainsi.

Créé 25/08/2008 à 04:20
source utilisateur

voix
1

Un service Web est presque certainement le chemin à parcourir. Je suis sûr que vous avez déjà pensé à cela, mais puisque vous faites PHP sur les deux côtés, vous pouvez raccourci les choses un peu en utilisant pour construire vos données de réponse serialize () au lieu de construire un document XML approprié. Il est moins flexible sur le long terme, mais il faudra probablement vous lever et courir plus vite.

Créé 19/08/2008 à 22:51
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more