Frage

Ich habe ein bevorstehendes Projekt, bei dem ich unsere Website verbinden muss (PHP5/Apache 1.3/OpenBSD 4.1) auf unser Backend-System, das auf einer iSeries mit OS400 V5R3 läuft, damit ich auf einige dort gespeicherte Tabellen zugreifen kann.Ich habe mich ein wenig umgesehen, bin aber auf einige Hindernisse gestoßen.

Soweit ich weiß, laufen die DB2-Erweiterungen und die DB2-Software von IBM nur unter Linux.Ich habe versucht, die Erweiterungen mit der gesamten Software von IBM zu kompilieren, und habe sogar die vorkompilierte Erweiterung ibm_db2 ausprobiert, ohne Erfolg.IBM unterstützt nur Linux, daher habe ich die Linux-Emulation im Kernel aktiviert, aber das schien nichts zu helfen.

Wenn jemand darauf gestoßen ist, alles nativ unter OpenBSD laufen zu lassen, wäre das großartig, aber ich denke, ich muss möglicherweise einen zweiten Server einrichten, auf dem CentOS mit installiertem DB2 läuft (höchstwahrscheinlich über ZendCore für IBM, da es anscheinend alles kann). Dies ist für mich) und der Treiber, damit ich einen kleinen Transaktionsserver einrichten kann, auf dem ich posten und eine JSON-Darstellung der DB2-Daten erhalten kann, die ich benötige.

Scheint die zweite Option übertrieben oder hat sonst noch jemand bessere Ideen?

War es hilfreich?

Lösung

Haben Sie sich überlegt, eine Verbindung zum Server herzustellen? unixODBC?Wenn ich mich richtig erinnere, unterstützt es IBM DB2 und lässt sich unter OpenBSD kompilieren.Kasse http://www.php.net/odbc Weitere Informationen zur PHP-Seite finden Sie hier.

Wenn das nicht funktioniert, können Sie möglicherweise nur einen Webdienst auf einem Linux-Server einrichten.

Andere Tipps

Warum schauen Sie sich nicht den PHP Connector für iSeries an, anstatt eine zweite Box einzurichten?Meine Mainframe-Leute sagten, dass die Einrichtung auf unserer iSeries hier sehr einfach sei.

Wir haben einen einfachen Server in PHP geschrieben, der Datenmodelle aus DB2-Daten lädt, sie serialisiert und an den Aufrufer zurückgibt.Dieser Ansatz bedeutet, dass nur eine andere PHP-App den Dienst nutzen kann, aber es ist auf beiden Seiten viel schneller, das Objekt einfach zu serialisieren und über die Pipe zu senden.

Hier ist ein PDF von IBM zum Thema: http://i-seriesusergroup.org/wp-content/uploads/2006/09/PHP%20for%20i5OS%20NESDND.pdf

Zweitens @John Downey: Ich habe eine Konnektivität erhalten, um mit PHP auf einem AS/400 mit unixODBC zu arbeiten.

Überprüfen Sie Ihre phpinfo(), um zu sehen, ob unixODBC darin verfügbar ist.Ich musste es nicht auf SLES 10 kompilieren.

Sieht so aus, als ob ein Webservice für mich die Antwort sein wird.Auf einer Produktionsbox möchte ich lieber nicht meine eigene spezielle Installation von PHP kompilieren und warten, da die ODBC-Unterstützung laut PHP-Dokumentation einkompiliert werden muss.

Ein Webservice ist mit ziemlicher Sicherheit der richtige Weg.Ich bin mir sicher, dass Sie bereits darüber nachgedacht haben, aber da Sie auf beiden Seiten PHP verwenden, können Sie die Dinge ein wenig abkürzen, indem Sie serialize() verwenden, um Ihre Antwortdaten zu erstellen, anstatt ein richtiges XML-Dokument zu erstellen.Auf lange Sicht ist es weniger flexibel, aber es wird Sie wahrscheinlich schneller einsatzbereit machen.

Tatsächlich scheint ein Webservice eine großartige Möglichkeit zu sein, das Problem zu lösen.Eine Möglichkeit, ein völlig separates Betriebssystem zu vermeiden, wäre, den Webservice in Java zusätzlich zu den AS400-Tools für Java zu schreiben (die übrigens ganz nett sind).Damit sollten Sie Ihre Serviceschicht zumindest auch auf der OpenBSD-Box ausführen können.

Sie können auch eine direkte Verbindung mit einem Standard-ODBC-Treiber herstellen.Die IBM-Version bietet Ihnen normalerweise mehr Funktionen wie das Aufrufen von Programmen und ähnliches.Wenn Sie nur SQL und gespeicherte Prozeduren benötigen, sollte ODBC funktionieren.

Warum nicht PDO von PHP verwenden?Ich muss hier raten, da ich keine öffentliche Liste aller für OpenBSD verfügbaren Ports finden konnte, es aber einen Port für FreeBSD, NetBSD usw. gibt.vielleicht hast du ja auch Glück.

(Ich vermute, dass, obwohl OpenBSD auf das Porter-Handbuch von FreeBSD verlinkt, Freshports ist für Ihr System nicht anwendbar?)

Wenn PDO nicht verfügbar ist und ich hoffe, dass Sie Ports verwenden, ist php5-ODBC gemäß dem folgenden Link verfügbar:

Angenommen, Sie verwalten Ihr System über Ports, dann gibt es Ihre Hinweise.

Hoffentlich hilft das!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top