Domanda

Ho un progetto imminente in cui dovrò collegare il nostro sito web (PHP5/Apache 1.3/OpenBSD 4.1) al nostro sistema back-end in esecuzione su un iSeries con OS400 V5R3 in modo da poter accedere ad alcune tabelle archiviate lì.Ho fatto qualche controllo in giro ma sto riscontrando alcuni ostacoli.

Da quello che ho visto le estensioni DB2 e il software DB2 di IBM funzionano solo su Linux.Ho provato a compilare le estensioni con tutto il software IBM e ho anche provato l'estensione ibm_db2 precompilata senza fortuna.IBM supporta solo Linux, quindi ho attivato l'emulazione Linux nel kernel ma questo non sembra essere d'aiuto.

Se qualcuno fosse riuscito a far funzionare tutto in modo nativo sotto OpenBSD sarebbe fantastico, ma quello che penso che dovrei fare è configurare un secondo server che esegue CentOS con DB2 installato (molto probabilmente tramite ZendCore per IBM poiché sembra fare tutto questo per me) e il driver in modo da poter configurare un piccolo server di transazione su cui posso postare e ottenere una rappresentazione JSON dei dati DB2 di cui ho bisogno.

La seconda opzione sembra eccessiva o qualcun altro ha idee migliori?

È stato utile?

Soluzione

Hai esaminato la connessione al server utilizzando unixODBC?Se ricordo bene ha il supporto per IBM DB2 e si compila su OpenBSD.Guardare http://www.php.net/odbc per ulteriori informazioni riguardanti il ​​lato PHP.

Se non riesci a farlo funzionare, l'opzione di configurare un servizio Web su un server Linux potrebbe essere tutto ciò che puoi fare.

Altri suggerimenti

Invece di impostare una seconda casella, perché non esamini il connettore PHP per iSeries?I miei ragazzi del mainframe hanno detto che è stato molto facile configurare il nostro iSeries qui.

Abbiamo scritto un semplice server in PHP che carica modelli di dati dai dati DB2, li serializza e li restituisce al chiamante.Questo approccio significa che solo un'altra app PHP può utilizzare il servizio, ma è molto più veloce da entrambe le parti semplicemente serializzare l'oggetto e inviarlo lungo la pipe.

Ecco un PDF di IBM sull'argomento: http://i-seriesusergroup.org/wp-content/uploads/2006/09/PHP%20for%20i5OS%20NESDND.pdf

Secondo @John Downey, ho ottenuto la connettività per funzionare con PHP su un AS/400 con unixODBC.

Controlla il tuo phpinfo() per vedere se unixODBC è disponibile al suo interno.Non ho dovuto compilarlo su SLES 10.

Sembra che un servizio web sarà la risposta per me.Su un sistema di produzione preferirei non dover compilare e mantenere la mia installazione speciale di PHP poiché il supporto ODBC deve essere compilato, secondo la documentazione di PHP.

Un servizio web è quasi certamente la strada da percorrere.Sono sicuro che ci hai già pensato, ma dal momento che stai utilizzando PHP su entrambi i lati, puoi abbreviare un po' le cose utilizzando serialize() per creare i dati di risposta invece di creare un documento XML appropriato.È meno flessibile nel lungo periodo, ma probabilmente ti consentirà di essere operativo più rapidamente.

In effetti, un servizio web sembra un ottimo modo per risolvere il problema.Un modo per evitare di avere un sistema operativo completamente separato sarebbe scrivere il servizio web in Java sopra gli strumenti AS400 per Java (che sono piuttosto carini, tra l'altro).Ciò dovrebbe almeno consentirti di eseguire il tuo livello di servizio anche sulla scatola OpenBSD.

Puoi connetterti direttamente anche utilizzando un driver ODBC standard.La versione IBM di solito offre più funzionalità come la possibilità di chiamare programmi e cose del genere.Se hai bisogno solo di SQL e procedure memorizzate, ODBC dovrebbe funzionare.

Perché non utilizzare PDO da PHP?Devo indovinare qui perché non sono riuscito a trovare un elenco pubblico di tutte le porte disponibili per OpenBSD, ma poiché esiste una porta per FreeBSD, NetBSD ecc.forse anche tu sei fortunato.

(Immagino che anche se OpenBSD si collega al manuale di porting di FreeBSD, Freshport non è applicabile al tuo sistema?)

Se PDO non è disponibile e poiché spero che tu utilizzi le porte e secondo il seguente collegamento è disponibile php5-ODBC:

Quindi, supponendo che tu gestisca il tuo sistema tramite porte, ci sono i tuoi suggerimenti.

Spero che aiuti!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top