Vra

Ek het 'n komende projek waarin ek ons ​​webwerf sal moet koppel (PHP5/Apache 1.3/OpenBSD 4.1) na ons agterkantstelsel wat op 'n iSeries met OS400 V5R3 loop sodat ek toegang tot sommige tabelle kan kry wat daar gestoor is.Ek het 'n bietjie nagegaan, maar ek loop 'n paar padblokkades teë.

Van wat ek gesien het, loop die DB2-uitbreidings en DB2-sagteware van IBM net onder Linux.Ek het probeer om die uitbreidings saam te stel met al die sagteware van IBM en het selfs hul vooraf saamgestelde ibm_db2-uitbreiding sonder sukses probeer.IBM ondersteun net Linux, so ek het die Linux-emulasie in die kern aangeskakel, maar dit het blykbaar niks gehelp nie.

As iemand al teëgekom het om alles inheems onder OpenBSD te laat loop, sal dit wonderlik wees, maar wat ek dink ek moet doen, is om 'n tweede bediener op te stel met CentOS met DB2 geïnstalleer (heel waarskynlik via ZendCore vir IBM, aangesien dit blykbaar alles doen dit vir my) en die drywer sodat ek 'n klein transaksiebediener kan opstel waarteen ek kan plaas en 'n JSON-voorstelling kan kry van die DB2-data wat ek benodig.

Lyk die tweede opsie oordrewe of het iemand anders enige beter idees?

Was dit nuttig?

Oplossing

Het jy gekyk na die verbinding met die bediener met behulp van unixODBC?As ek reg onthou het dit ondersteuning vir IBM DB2 en kompileer op OpenBSD.Uitteken http://www.php.net/odbc vir meer inligting oor die PHP-kant.

As jy dit nie kan laat werk nie, is die opsie om 'n webdiens op 'n Linux-bediener op te stel dalk al wat jy kan doen.

Ander wenke

Eerder as om 'n 2de boks op te stel, hoekom kyk jy nie na die PHP Connector vir iSeries nie?My hoofraam ouens het gesê dit was baie maklik om op ons iSeries hier op te stel.

Ons het 'n eenvoudige bediener in PHP geskryf wat datamodelle vanaf DB2-data laai, dit serialiseer en na die oproeper terugstuur.Hierdie benadering beteken dat slegs 'n ander PHP-toepassing die diens kan gebruik, maar dit is net soveel vinniger aan albei kante om net die voorwerp te serialiseer en dit in die pyp te stuur.

Hier is 'n PDF van IBM oor die onderwerp: http://i-seriesusergroup.org/wp-content/uploads/2006/09/PHP%20for%20i5OS%20NESDND.pdf

Om @John Downey te sekondeer, het ek konnektiwiteit gekry om met PHP op 'n AS/400 met unixODBC te werk.

Gaan jou phpinfo() na om te sien of unixODBC daarin beskikbaar is.Ek hoef dit nie op SLES 10 saam te stel nie.

Dit lyk of 'n webdiens vir my die antwoord gaan wees.Op 'n produksieboks sal ek liewer nie deur die samestelling en instandhouding van my eie spesiale installasie van PHP hoef te gaan nie, aangesien ODBC-ondersteuning saamgestel moet word, volgens die PHP-dokumentasie.

'n Webdiens is byna seker die pad om te gaan.Ek is seker jy het al hieraan gedink, maar aangesien jy PHP aan beide kante doen, kan jy dinge 'n bietjie kortpad maak deur serialize() te gebruik om jou reaksiedata te bou in plaas van om 'n behoorlike XML-dokument te bou.Dit is minder buigsaam oor die lang termyn, maar dit sal jou waarskynlik vinniger aan die gang kry.

Inderdaad, 'n webdiens lyk na 'n goeie manier om die probleem op te los.Een manier om te vermy om 'n heeltemal aparte bedryfstelsel daarvoor te hê, sou wees om die webdiens in Java bo-op die AS400-nutsgoed vir Java te skryf (wat nogal lekker is, btw).Dit behoort u ten minste ook u dienslaag op die OpenBSD-boks te laat loop.

U kan ook direk met 'n standaard ODBC-bestuurder koppel.Die IBM-weergawe gee jou gewoonlik meer funksies soos om programme te kan bel en sulke dinge.As jy net SQL en gestoorde prosedures benodig, behoort ODBC te werk.

Hoekom nie PDO van PHP gebruik nie?Ek moet hier raai aangesien ek nie 'n publieke lys van alle poorte beskikbaar vir OpenBSD kon vind nie, maar aangesien daar 'n poort is vir FreeBSD, NetBSD ens.dalk is jy ook gelukkig.

(Ek dink dat alhoewel OpenBSD na FreeBSD se portierhandboek skakel, Freshports is nie van toepassing op jou stelsel nie?)

As PDO nie beskikbaar is nie en aangesien ek hoop jy gebruik poorte en volgens die volgende skakel is daar php5-ODBC beskikbaar:

As u dus aanvaar dat u u stelsel deur poorte bestuur, is daar u wenke.

Hoop dit help!

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top