Question

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 me heurte à 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 déjà réussi à tout faire fonctionner nativement sous OpenBSD, ce serait génial, mais ce que je pense que je devrais faire, c'est configurer un deuxième serveur exécutant CentOS avec DB2 installé (très probablement via ZendCore pour IBM car il semble faire tout ceci 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 ?

Était-ce utile?

La solution

Avez-vous envisagé de vous connecter au serveur en utilisant unixODBC?Si je me souviens bien, il prend en charge IBM DB2 et compile sur OpenBSD.Vérifier http://www.php.net/odbc pour plus d'informations concernant le côté PHP.

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

Autres conseils

Plutôt que de configurer une deuxième boîte, pourquoi ne vous penchez-vous pas sur le connecteur PHP pour iSeries ?Mes gars du mainframe ont dit qu'il était très facile à configurer sur notre iSeries ici.

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

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

Pour seconder @John Downey, j'ai obtenu une 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.

On dirait qu'un service Web sera la réponse pour moi.Sur une machine de production, je préfère ne pas avoir à compiler et à maintenir ma propre installation spéciale de PHP, car le support ODBC doit être compilé, selon la documentation PHP.

Un service Web est presque certainement la voie à suivre.Je suis sûr que vous y avez déjà pensé, mais comme 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é.C'est moins flexible à long terme, mais cela vous permettra probablement d'être opérationnel plus rapidement.

En effet, un webservice 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 boîte OpenBSD.

Vous pouvez également vous connecter directement à l’aide d’un pilote ODBC standard.La version IBM vous offre 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.

Pourquoi ne pas utiliser PDO depuis PHP ?Je dois deviner ici car je n'ai pas pu trouver de liste publique de tous les ports disponibles pour OpenBSD, mais comme il existe un port pour FreeBSD, NetBSD, etc.peut-être que tu as de la chance aussi.

(Je suppose que même si OpenBSD renvoie au manuel du porteur de FreeBSD, Ports frais n'est pas applicable à votre système ?)

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

Donc, en supposant que vous gérez votre système via des ports, voici vos pointeurs.

J'espère que cela pourra aider!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top