iSeries DB2 live data from external PHP server
Scenario1: DB2 as400 + webserver esterno
Scenario2: DB2 as400 + ambiente di sviluppo esterno
Entrambi i casi hanno i dati di test e di produzione caricati sull'iSeries; bene leggendo diversi forum, consultando la Zend, la IBM etc. sembrava chiaro che fosse difficile ottenere questo risulato, in tutti i casi la soluzione c'è ed è molto semplice e veloce.
- Per gli sviluppatori è necessario scaricare il software: "DB2 Connect Developer Edition" dal sito ufficiale di IBM; per i siti in produzione invece è necessario acquistare "DB2 Connect PE (personal edition)" o versioni superiori.
- Installare il software "DB2 Connect" ed annotare l'istanza che verrà creata (es.: DB2_01)
- Una volta scaricato il software, avviate il "Configuration Assistant" (db2ca) e configurate la vostra connessione con l'AS400. Durante la configurazione mi raccomando di creare un alia ODBC.
- Configuriamo ora il file php.ini aggiungendo le seguenti righe nella sezione ibm_db2 oppure alla fine del file
ibm_db2.instance_name=DB2_01 ibm_db2.instance_home="C:\Programmi\IBM\SQLLIB"
- Restart del webserver
A questo punto siamo pronti a scrivere codice PHP utilizzando il comando db2_connect. Il vantaggio di usare questa tecnica sta nel fatto che si può sviluppare velocemente su una macchina esterna, leggendo i dati live dall'iSeries e quindi portare poi il codice sul sistema principale senza cambiare una virgola.
Connessione catalogata all'as400:
$database = 'MIODB';
$user = 'MIOUSERNAME';
$password = 'MIAPASSWORD';
$conn = db2_connect($database, $user, $password);
Connessione non catalogata:
$database = 'MIODB';
$user = 'MIOUSERNAME';
$password = 'MIAPASSWORD';
$port = '446';
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;".
"HOSTNAME=$hostname;PORT=$port;PROTOCOL=TCPIP;UID=$user;
PWD=$password;";
$conn = db2_connect($conn_string, 'MIOUSERNAME', 'MIAPASSWORD');
Connessione ad un DB2 di tipo diverso (es.: DB2 Express-C)
$database = 'MYLOCALDB';
$user = 'MIOUSERNAME';
$password = 'MIAPASSWORD';
$hostname = 'localhost';
$port = '50000';
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;" .
"HOSTNAME=$hostname;PORT=$port;PROTOCOL=TCPIP;UID=$user;
PWD=$password;";
$conn = db2_connect($conn_string, 'MIOUSERNAME', 'MIAPASSWORD');
Come vedete il codice per la connessione cambia di poco ma ilr esto del vostro lavoro potrà essere sfruttato in qualsiasi ambiente e collegarloa molteplici fonti di dati.
Commenti
Log in o crea un account utente per inviare un commento.