Question Connectez 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 dorsal fonctionnant sur une iSeries avec OS400 V5R3, afin de pouvoir accéder à certaines tables stockées dans cette dernière. J'ai fait quelques vérifications mais je me heurte à des barrages routiers.

D'après ce que j'ai vu, les extensions DB2 et les logiciels DB2 d'IBM ne s'exécutent 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 supporte que Linux, alors j'ai activé l'émulation Linux dans le noyau, mais cela n'a pas semblé aider.

Si quelqu'un avait déjà tout lancé en mode natif sous OpenBSD, ce serait génial, mais je pense que je devrais peut-être configurer un second serveur exécutant CentOS avec DB2 installé (probablement via ZendCore pour IBM car il semble tout faire). ceci pour moi) et le pilote pour que je puisse configurer un petit serveur de transaction sur lequel je peux poster et obtenir une représentation JSON des données DB2 dont j'ai besoin.

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


31
2017-08-03 14:03


origine


Réponses:


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

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


17
2017-08-03 14:39



Plutôt que de configurer une 2ème boîte, pourquoi ne pas regarder dans le Connecteur PHP pour iSeries? Mes gars de mainframe ont dit que c'était très facile à installer sur notre iSeries ici.

Nous avons écrit un simple serveur en PHP qui charge les modèles de données à partir des 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 juste tellement plus rapide aux deux extrémités de simplement sérialiser l’objet et de le renvoyer sur le canal.

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


4
2017-08-27 20:03



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

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


2
2017-08-24 23:10



On dirait qu'un service Web sera la solution pour moi. Sur une boîte de production, je n'aurais pas besoin de compiler et de gérer ma propre installation de PHP car le support ODBC doit être compilé, selon la documentation de PHP.


2
2017-08-03 21:31



Un service Web est presque certainement la voie à suivre. Je suis sûr que vous avez déjà pensé à cela, mais puisque vous utilisez PHP des deux côtés, vous pouvez raccourcir un peu les choses en utilisant serialize () pour générer 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 de démarrer plus rapidement.


1
2017-08-19 21:51



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, btw). Cela devrait au moins vous permettre d'exécuter également votre couche de service sur la boîte OpenBSD.


1
2017-08-25 03:20



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 d'autres choses du genre. Si vous avez uniquement besoin de SQL et de procédures stockées, ODBC devrait fonctionner.


1
2017-09-23 13:42



Pourquoi ne pas utiliser PDO de PHP? Je dois deviner ici, car je n'ai pas trouvé de liste publique de tous les ports disponibles pour OpenBSD, mais comme il existe un port pour FreeBSD, NetBSD, etc., vous avez peut-être de la chance.

(Je suppose que même si OpenBSD propose un lien vers le manuel du porteur de FreeBSD, Freshports n'est pas applicable pour votre système?)

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

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

J'espère que cela pourra aider!


1
2017-10-01 18:16