Amministrare un AS/400: come funziona il sistema Capitolo 8 di 10

Lo spool: stampe e code di uscita

Rivista il Verificata su IBM i 7.5

Accedi per salvare

Un programma che stampa non parla con una stampante. Produce un file di spool, cioè un oggetto che contiene il documento e resta sul sistema finché qualcuno non lo stampa, lo converte, o lo cancella.

Da qui discendono due cose. La prima è che il documento esiste anche se la stampante non c'è: si può guardare a schermo, rimandare, spostare, salvare in PDF. La seconda è che il documento occupa disco, e che nessuno lo cancella al posto tuo.

Come è organizzato

  • Un file di spool è il singolo documento prodotto da un job.
  • Una coda di uscita (*OUTQ) è un oggetto in una libreria, e raccoglie i file di spool. Ogni job ne ha una predefinita, che arriva dalla sua descrizione di job o dal profilo utente.
  • Un writer è il lavoro che prende i documenti da una coda e li manda a una stampante. Senza writer avviato, la coda si riempie e non stampa nulla.
WRKSPLF
WRKOUTQ OUTQ(PRODLIB/STAMPE)
STRPRTWTR DEV(PRT01)
WRKWTR

Nota

"la stampa non esce" ha tre cause possibili, e vale la pena escluderle in quest'ordine: il documento non è mai stato prodotto (guardare il job log), il documento è in coda ma il writer non è avviato (WRKWTR), oppure il documento è nella coda sbagliata — che succede tutte le volte che si cambia la descrizione di job di qualcuno senza pensare all'OUTQ.

Che cosa si può fare a un documento

Un file di spool si identifica con nome, numero e job che lo ha prodotto, perché lo stesso job può produrne molti con lo stesso nome:

CHGSPLFA FILE(QSYSPRT) JOB(123456/MROSSI/FATTURE) SPLNBR(3) OUTQ(PRODLIB/RISTAMPE)
HLDSPLF  FILE(QSYSPRT) JOB(123456/MROSSI/FATTURE) SPLNBR(3)
DLTSPLF  FILE(QSYSPRT) JOB(123456/MROSSI/FATTURE) SPLNBR(3)

Dal rilascio 7.3 il contenuto si legge anche in SQL, il che rende cercabile un documento senza doverlo scorrere:

SELECT ORDINAL_POSITION, SPOOLED_DATA
  FROM TABLE(SYSTOOLS.SPOOLED_FILE_DATA(
       JOB_NAME          => '123456/MROSSI/FATTURE',
       SPOOLED_FILE_NAME => 'QSYSPRT',
       SPOOLED_FILE_NUMBER => 3))

Perché il disco si riempie

Questo è il motivo per cui il capitolo esiste. Su un sistema in produzione da anni, lo spool è insieme all'IFS la prima causa di spazio consumato, e per una ragione banale: i documenti non scadono. Un report notturno prodotto ogni giorno e mai cancellato è un archivio che cresce di 365 documenti l'anno, senza che nessuno abbia deciso di conservarli.

Vedere la situazione:

SELECT USER_NAME, COUNT(*) AS DOCUMENTI,
       SUM(SIZE) / 1024 / 1024 AS MB
  FROM QSYS2.OUTPUT_QUEUE_ENTRIES_BASIC
 GROUP BY USER_NAME
 ORDER BY MB DESC

Le difese sono tre, in ordine di quanto reggono nel tempo:

  1. La pulizia automatica del sistema. GO CLEANUP configura la rimozione periodica di job log e code di uscita di sistema. È il minimo, e su molti sistemi non è mai stato attivato.
  2. Una scadenza sui documenti. L'attributo EXPDATE / DAYS fa scadere i file di spool, e DLTEXPSPLF cancella quelli scaduti. Così la conservazione diventa una regola scritta invece di una pulizia che qualcuno ricorda di fare.
  3. Non produrre quello che nessuno legge. Su un sistema anziano una parte dei report notturni non viene guardata da anni. Toglierli è più efficace di qualunque pulizia, e va fatto chiedendo, non deducendo.

Avvertenza

cancellare i file di spool libera lo spazio dei documenti, ma il sistema tiene comunque dei contenitori di memoria per lo spool. Il valore di sistema QRCLSPLSTG decide dopo quanti giorni quei contenitori vengono recuperati: se è alto, lo spazio si vede tornare libero molto dopo la cancellazione, e sembra che la pulizia non abbia funzionato.

Portare fuori un documento

Le tre strade che si usano davvero:

  • In PDF, con CPYSPLF ... TOSTMF(...) WSCST(*PDF) oppure dalla trasformazione di stampa, e il file finisce sull'IFS pronto per essere spedito;
  • In un file di testo, con CPYSPLF verso un file fisico o un file dell'IFS, quando il contenuto serve a un altro programma;
  • Con ACS, che permette di scaricare un documento sul PC dall'interfaccia grafica ed è la strada più semplice quando si tratta di un documento solo.

Torna all'indice della guida

← Torna al blog

Commenti

Nessun commento ancora. Sii il primo a commentare!

Devi avere un account per commentare. Accedi · Registrati