Newsgroup: it.comp.os.linux.sys
Titolo: Problemi di "asincronicita`"

Ciao,
ho questo problema:
- ricevo dei dati da IBM As400 tramite il demone lp5250d
- i dati vengono filtrati con scs2ascii = ottengo un file ascii
- apro e leggo questo file ascii con uno script php e ne ottengo un pdf
  che poi stampo, salvo su disco, invio per e-mail ad un destinatario...
in sintesi:
scs2ascii > miofile.txt
php txt2pdf.php miofile.txt
Succede questo: una volta su due lo script php accede al file
miofile.txt quando ancora questo non e` stato completamente scritto da
scs2ascii e quindi l'operazione non viene portata a termine
correttamente. Per ora ho messo una "pezza" aggiungendo nello script php
la funzione sleep(2) in testa allo script stesso, ma non mi sembra la
miglior cosa, poiche` 2 secondi potrebbero non essere sufficienti se la
macchina si trova in uno stato di carico elevato. Oppure, al contrario,
potrebbero essere troppi (come succede una volta su due) e renderebbero
il processo totale troppo lungo (supponiamo che stia facendo una stampa
di 400 fatture; 2 secondi per 400 rallentano di 13 minuti tutta
l'operazione !!).
Soluzioni ?
Grazie a tutti
fulvio

 writes:
f> Soluzioni ?
Modificare txt2pdf.php perché legga da stdin e usare
$ scs2ascii | php txt2pdf.php
Saluti,
Luca Polo.
-- 
Luca...@gest.unipd.it
 --- 
http://www.gest.unipd.it/~jake
----------------------------------------------------------
One Ping to rule them all. One Ping to find them.
One Ping to bring down them all.
And in the darkness crash them.         [The Lord of the Pings]

 php txt2pdf.php miofile.txt
Io suggerire: anche:
scs2ascii > miofile.txt
sync
php txt2pdf.php miofile.txt
Tenendo presente che, per fortuna:
| According  to the standard specification (e.g., SVID),
| sync() schedules the writes, but may return before the
| actual writing is done.  However, since  version  1.3.20 
| Linux does actually wait. 
-- 
Bye, Lem
Ceterum censeo ISLAM esse delendum
__________________________________
Combatti l'AIDS col tuo computer: 
http://fightaidsathome.scripps.edu/

 provare si puo' ... ma non credo che aiuti.
Sì, temo d'aver scritto una stupidaggine.


 $ scs2ascii | php txt2pdf.php
sembra funzionare correttamente, e` molto probabile che funzioni anche
quella proposta da Remolo, ma non l'ho provata.
Grazie ancora
fulvio

 AS400, senza emulatori in giro.
Racconto quello che devo fare, forse puo` tornare utile a qualcuno.
Un'azienda (che utilizza un gestionale in As400) mi ha chiesto se si
poteva ottenere da As400, oltre che la stampa delle fatture ed altri doc
 su stampante, anche un file PDF da archiviare in un adatta cartella (su
share Samba/Linux) ed inviare in automatico, al rispettivo destinatario,
una mail con il documento PDF allegato. Forse ci sono altre soluzioni,
io ho pensato di fare cosi`:
utilizzare il demone lp5250d e il programmino scs2ascii (che funziona
SOLO in accoppiata con lp5250d) ottenendo un file ascii che rispecchia
il contenuto del documento che deve andare in stampa.
Prendendo questo file, manipolandolo con uno script php (con la classe
fpdf), riesco ad aggiungere grafica e logo a colori, cornici, fincature
ad altri amenicoli, salvare il file in formato PDF, mandarlo in stampa
ed inviarlo per email al destinatario (con PHPMailer).
Ora, il demone lo lanciavo cosi`:
(tutto su una riga)
/usr/bin/lp5250d map=280 env.DEVNAME=PRTFT outputcommand =
'/usr/bin/scs2ascii > /tmp/miofile.txt ; /usr/bin/php /usr/bin/txt2pdf
/tmp/miofile.txt' 
192.168.20.74:23
ma in questo modo avevo (una volta su due) i problemi di asincronicita`
(che parolaccia...)
modificando lo script php e il lancio del demone in:
/usr/bin/lp5250d map=280 env.DEVNAME=PRTFT outputcommand =
'/usr/bin/scs2ascii | /usr/bin/php /usr/bin/txt2pdf' 
192.168.20.74:23
ho risolto.
grazie ancora
fulvio

 rispettivo destinatario, una mail con il documento PDF allegato.
ciao
io non lavoro in php nè in As, ma ho a che fare con entrambi
se la release dell'As non è troppo datata (diciamo dalla 5.4 in poi) puoi 
avere sull'As l'ambiente PASE nel quale girano apache, php e nel quale puoi 
installare utility come imagemagik et similia..
puoi fare tutto direttamente in As, lo stiamo sperimentando c/o alcuni 
nostri clienti: si tratta di richiamare dai prg (in rpg o altro) script php 
passando i corretti parametri
HTH
Stefano 

 script php passando i corretti parametri
aggiungo che Zend mette a disposizione dei tool estremamente potenti per il 
php su As, con funzioni native che si interfacciano direttamente con il S.O. 
e DB2
Ciao
Stefano 

 passando i corretti parametri
Grazie per le info, ma l'azienda e, soprattutto, chi gestisce As400 non
volevano assolutamente toccare nulla del sistema As400 e quindi quello
che ho fatto e` stato praticamente obbligato.
grazie
fulvio