| |||||||||
| |||||||||
|
1. Come familiarizzarsi 2. Dimostrazioni di base 3. Comandi di approntamento 4. Servizi disponibili tramite il service program di CGIDEV2 5. Consigli per il debug dei CGI 6. Significato dei codici di errore 7. Consigli per la migrazione da Versione 1 8. Consigli per avere prestazioni ottimali 9. A proposito dei CGI persistenti 1. Come familiarizzarsiSe non hai ancora familiarità con la programmazione CGI tramite il service program di CGIDEV2, incomincia con il leggere questo materiale:
2. Dimostrazioni di baseLe nostre dimostrazioni di base sono forse il modo più pratico per imparare a sviluppare programmi CGI in RPG-ILE. Dopo aver letto i "Servizi disponibili tramite il service program di CGIDEV2", ti raccomandiamo di andare ad analizzare queste dimostrazioni.3. Comandi di approntamentoTi suggeriamo di non sviluppare i tuoi CGI in una delle librerie (per es. CGIDEV2) scaricate dal nostro sito. Al primo aggiornamento perderesti tutto.La cosa giusta da fare è quella di creare delle proprie librerie (libreria sorgenti e libreria esecutiva), ed effettuare lì gli sviluppi. Noi abbiamo dei comandi che ti consentono di aggiungere alle tue librerie tutta la strumentazione necessaria:
4. Servizi disponibili tramite il service program di CGIDEV2Per una panoramica completa sul service program di CGIDEV2 cgidev2/cgisrvpgm2 puoi andare alla pagina del Readme. Consigliamo comunque di utilizzare il seguente schema di apprendimento, che rende la comprensione molto più facile.
5. Consigli per il debug dei CGIIn campo didattico, il debug viene sempre per ultimo, anche se l'argomento di per sè è ai primi posti nell'interesse di un programmatore. Questo è un buon motivo per dedicare una pagina speciale a questo argomento.6. Significato dei codici di erroreIn certi casi alcune delle procedure del service program possono restituire dei "return code" diversi da zero. Solitamente tali codici di errore vengono anche riportati nel file CGIDEBUG. Ma quale è il significato di questi codici? Si può tentare di decifrarli attraverso le pagine dell' iSeries Information Center. Per esempio:
7. Consigli per la migrazione da Versione 1Se avevi già sviluppato dei CGI con la Versione 1, mi immagino che, dopo aver saputo dell'enorme miglioramento di prestazioni apportato dalla Versione 2, non starai più nella pelle dalla voglia di provare.Il lavoro di migrazione è facile, ma per renderlo ancora più facile abbiamo preparato una pagina ad hoc:
leggila.
8. Consigli per avere prestazioni ottimaliSeguendo questi consigli riuscirai ad avere il meglio, in termini di prestazioni, dai tuoi CGI:
9. A proposito dei CGI persistentiSin qui, sottacendo la cosa, abbiamo sempre indirettamente parlato di CGI non persistenti. Tradizionalmemnte i programmi CGI sono non persistenti, nel senso che un CGI, la prossima volta che viene invocato non si ricorda (o meglio, è opportuno che non si ricordi- dato che chi lo chiama può benissimo essere un client diverso da precedente) quali valori erano stati lasciati nelle variabili e quale era il posizionamento dei file.Naturalmente questo fatto ha importanza notevole nella progettazione dei programmi, in quanto le variabili che sono importanti per le ri-esecuzione del programma vanno salvate nascostamente nello script html inviato al client, dimodochè il client le ritrasmetta nella chiamata successiva (in altre parole. il client funziona da "memoria" per il server). Va detto però che dalla V43R3 sull'HTTP è stato fornito supporto per i CGI persistenti. I CGI persistenti effettuano anch'essi return senza accendare l'indicatore LR , ma godono della proprietà di poter essere richiamati solo dallo stesso client che li aveva chiamati in precedenza. Pertanto un CGI persistente, una volta richiamato, sa che le variabili contengono valori appropriati e che i file sono posizionati al punto giusto. Un CGI persistente, per fare in modo da poter essere richiamato solo dal client originale, stacca -per così dire- uno scontrino in duplice copia: una copia la consegna al servente http (che funge da magazziniere), l'altra copia la consegna al client (il cliente). In definitiva, quando il client deciderà di ricontattare quel CGI, lo farà presentando al magazziniere (l'http) lo scontrino assegnatogli. L'http provvederà quindi a richiamare quella copia di programma ferma in memoria, che aveva emesso quello scontrino. In termini tecnici, anzichè di scontrino, si parla di "identificativo di sessione" o "handle" (manico della valigia). L'altro problema è che un CGI in attesa di chiamata tiene fermo un job http servente. Questo comporta due aspetti:
Dato tuttavia che utilizzare i CGI persistenti è legittimo, abbiamo preparato una pagina che aiuta nel compito. | |||||||||