PDA

Visualizza la versione completa : Interagire con as400


 
ciro78
20-10-2009, 20:50
Salve ragazzi,
alla mia azienda è stato chiesto di realizzare un e-commerce che si basi sui dati di un database as 400.

Siccome di as400 sono a digiuno mi servirebbe qualche guida / manuale / sito a cui attingere informazioni per risolvere questa cosa.

Leggendo qua e la in rete ho letto che molti estraggono i dati e aggiornano un database mysql sul quale lavora poi php

altri dicono che è possibile estrarre i dati direttamente dal database as400 e visualizzarli sul sito

attendo vostri consigli :)

daniele_dll
20-10-2009, 22:00
Beh, si, è possibile attingere dati e visualizzarli direttamente sul sito, ma il connettore ODBC è abbastanza lento se poi a questo aggiungi che dovresti usare una VPN tra il dedicato/virtuale dell'ecommerce e il server as400 direi che la cosa diventerebbe ESTREMAMENTE lenta.

Il mio consiglio è quello di farti uno script che si occupi di "ricopiare" le informazioni dall'as400 a mysql, magari 2/3 volte al giorno, vedi tu (se lo script è scritto bene e sfrutta le funzionalità di mysql le performance sono MOLTO elevate) cosi da poter attingere.

Quasi sicuramente, ad ogni aggiornamento, ti toccherà svuotare le tabelle di destinazione per ri-riempirle quindi poi i dati aggiuntivi (che so foto, descrizioni e via dicendo) li devi mettere in una tabella a parte legata alla principale tramite un codice identificativo

ciro78
20-10-2009, 22:05
ok.

quindi la soluzione è estrarre i dati e renderli compatibile con mysql.

ma come si estraggono i dati da as400?

inoltre in che modo è possibile, qualora il cliente lo preferisca, farlo direttamente?

ci sono manuali guide studi ??

daniele_dll
20-10-2009, 22:10
ascoltami, farlo direttamente non è una soluzione fattibile per un sito web, indipendentemente da quello che vuole il cliente ... vorrebbe dire che a ogni apertura di pagina dovrebbe partire una connessione tramite una vpn verso l'as400 utilizzando il client odbc (quello db2 costa un pozzo e non so se funziona correttamente con le varie release dell'as400) il che vuol dire che una pagina, per essere visualizzata, con query semplici, avrebbe bisogno dai 15 ai 20 secondi (il tutto ammesso che la rete non sia carica) senza considerare poi che se per qualsiasi motivo va già la loro adsl il sito smetterebbe di funzionare

dai un occhio qua
http://pinguinoblu.blogspot.com/2008/05/php-collegamento-allas400.html
http://www.matteomoro.net/2008/03/12/php5-e-as400-utilizzare-db2-via-odbc-con-php-22/

ciro78
21-10-2009, 20:13
ciao daniele,
grazie dei link.

in entrambi vedo odbc connect..quindi sono link che rientrano nella categoria accesso diretto ad as400?

se avevo inteso era una soluzione non adatta.

on ogni caso

nel testo viene riportato



Sulla nostra fida Debian installiamo i prerequisiti:


in questo caso intende la macchina dove risiede il web server? ergo dove risiederà il sitarello in php???

daniele_dll
21-10-2009, 21:14
ODBC non fa nessun accesso diretto, utilizza il connettore della IBM per odbc ma è lento (certo, in locale non te ne accorgi ma su internet, soprattutto tramite una vpn, decisamente si)

Si, ovviamente quelle operazioni devono essere svolte sulla macchina che effettuerà l'accesso ai dati presenti su db2, indipendentemente che si tratti del server del sito o di una macchina che si limiterà a copiare il software.

L'installare o meno php dipende da te :)

ciro78
21-10-2009, 21:25
aspetta un attimino

io mi trovo nella seguente situazione

- azienda con as400
- azienda che vuole il sito( che finirà su una macchina che chiamo server)

io normalemnte faccio il sito e lo metto sulla macchina che ho chiamato server
ora come funziona il collegamento alla macchina che ha as400?

se ho ben capito debbo installare quei software sulla macchina server?

daniele_dll
21-10-2009, 21:38
ti ripeto ... ti sconsiglio la strada di collegare direttamente il sito web al server as400 ( :stordita: ) però, se li vuoi collegare direttamente il tutto lo devi installare sul server che gestirà il sito web.

la soluzione, però, più conveniente è sicuramente quella di un software che travasi i dati periodicamente sul sito online cosi il sito web accede direttamente a se stesso e legge i dati. per quest'ultima soluzione non c'è bisogno di un server fatto ad hoc ovviamente ma basta benissimo un pc qualsiasi o volendo anche l'as400 stesso (c'è php per l'as400 con su odbc e credo il connettore ibmdb2 che puoi usare direttamente al posto di odbc) ... si imposta un cronjob che richiama uno script php via console e via ^^

ciro78
21-10-2009, 21:44
ok adottiamo la seconda soluzione :)

di che genere di software parliamo? sono forniti stesso dalla ibm?

scusa se ti rompo :) ma della cosa sono a digiuno :)

daniele_dll
21-10-2009, 22:09
beh, i software come php, apache e simili si, il software che ti "clona" i dati di potrebbe usare un mix di software per leggere i dati e poi scrivere un programmino che li reinserisca su mysql ma sarebbe troppo casinistica la cosa

devi semplicemente scrivere un software che si connetta al database dell'as400, legga i dati tramite una normale select, effettui un truncate delle tabelle di destinazione ed infine reinserisca i dati appena letti sul database mysql remoto (ovviamente la soluzione non è quella di fare un insert per volta ma di raggruppare 500/1000 insert per tabella e lanciarli in un colpo o si fa notte [su 2 milioni e mezzo di record si passa da oltre le due ore e mezza a meno di 15 minuti, anche se in realtà avevo adottato anche altre ottimizzazioni e la sorgente era informix e mysql era in locale, ma comunque la differenza nei tempi di esecuzione è abnorme])

Loading