viernes, 30 de septiembre de 2016

Expirar automaticamente los archivos de spool

Para que los archivos de spool antiguos se supriman automáticamente del sistema, podemos utilizar el mandato DLTEXPSPLF (desde V5R4), que inspecciona los spools de las colas de salida y elimina los que cumplan las condiciones de expiración.
Normalmente los archivos de spool se crean según los atributos de los archivos de impresora (*PRTF); para la caducidad del spool existen 4 parámetros, que se definen cuando se crea el archivo:

Campo           Texto                                                 Long Dec 
SPEXDT          0 = *NONE, 1 = Fecha, 2 = Días                          1      
SPXDCT          Siglo de la fecha de caducidad                          1      
SPXDAT          Fecha de caducidad de archivo: AAMMDD                   6      
SPXDAY          Días desde fecha creación hasta caducidad archivo       3    0 

Para un archivo de spool, generado desde un archivo de impresora, sin caducidad, veremos:
                   Trabajar con atributos de archivo en spool                   
 Trabajo  . . . . . . :   QP0ZSPWP        Archivo  . . . . . . :   QPJOBLOG     
   Usuario  . . . . . :     QPGMR         Número . . . . . . :     000001     
   Número . . . . . . :     049334        Fecha de creación  . :   26/09/15     
 Nombre sist trabajo  :   MYAS400         Hora de creación . . :   09:17:04   
.....  
Fecha de caducidad de archivo  . . . . :                

Para el mismo archivo de spool, generado desde un archivo de impresora, con caducidad 30 días, veremos:
                   Trabajar con atributos de archivo en spool                   
 Trabajo  . . . . . . :   QP0ZSPWP        Archivo  . . . . . . :   QPJOBLOG     
   Usuario  . . . . . :     QPGMR         Número . . . . . . :     000001     
   Número . . . . . . :     049334        Fecha de creación  . :   26/09/15     
 Nombre sist trabajo  :   MYAS400         Hora de creación . . :   09:17:04   
.....  
Fecha de caducidad de archivo  . . . . :   26/10/15  

Si queremos caducar un archivo de spool, solo hemos de cambiar los parámetros del archivo de spool:
  CHGSPLFA FILE(QPJOBLOG) EXPDATE(*DAYS) DAYS(30)

Para automatizar la gestión de spools por fecha de caducidad deberemos:

  1. Para modificar los archivos de impresora para que expiren a los 30 días de haberse creado, crearemos y ejecutaremos un programa CL, el codigo lo podeis bajar el código de esta utilidad del grupo Recursos AS400 en IBM developersWorks.
  2. Modificar, manualmente, los atributos de todos los archivos de spool, que ya existen en todas las colas de salida, con los parametros EXPDATE(*DAYS) y DAYS(30). Podemos omitir las colas QEZDEBUG y QEZJOBLOG, que se limpian automáticamente con las opciones de limpieza del sistema (GO CLEANUP), si las tenemos activadas.
  3. Planificar el trabajo (en ejemplo es semanal) que ejecuta la eliminación de los archivos de spool caducados:

     ADDJOBSCDE JOB(DLTEXPSPLF) CMD(DLTEXPSPLF) FRQ(*WEEKLY) 
     SCDDATE(*NONE) SCDDAY(*MON) SCDTIME(060000) 
     TEXT('Suprimir archivos de spool caducados')         


Nota1: Este procedimiento puede sustituir a la utilidad DLTOLDSPLF (http://www-01.ibm.com/support/docview.wss?uid=nas8N1019285).
Nota2: En los ejemplos se utiliza una expiración de 30 días, pero podría ser mas o menos días, según las necesidades              
Nota3: En el programa de ejemplo se modifican TODOS los archivos de impresora del sistema, que no tengan definida fecha de caducidad, si la tienen la respetan, ya que pueden existir archivos de impresora, y por tanto de spool, con otras necesidades de conservación en las colas.

No hay comentarios: