lunes, 25 de octubre de 2010

Cambio hora verano/invierno

Como cada año el próximo fin de semana se realiza el cambio de hora al horario de invierno (-01:00 GMT)

Para que nuestros sistemas AS400 no se despisten y realicen el cambio de hora automáticamente revisar el articulo publicado el año pasado:

viernes, 22 de octubre de 2010

Averiguar quien elimino un archivo de spool

Algunas veces todos hemos tenido la necesidad de averiguar que usuario ha eliminado un archivo de spool de un trabajo. Esto lo podremos hacer si tenemos activada la auditoria del sistema (valor QAUDCTL) que debe contener *AUDLVL. También debe estar especificado *SPLFDTA, en  el  valor de sistema QAUDLVL (ver Nota2).

Una vez comprobado, y activado, lo anterior, ya podemos recuperar las entradas del diario de auditoria que se correspondan con las operaciones en el spool.
Para ello lo mas recomendable es someter el mandato DSPJRN  (suele tardar bastante) indicando día/hora  de inicio y día/hora fin, del rango de tiempo donde queremos investigar la desaparición del spool, e indicando que solo queremos volcar las entradas de diario T-SF:
SBMJOB CMD(DSPJRN JRN(QAUDJRN) RCVRNG(*CURCHAIN) FROMTIME(ddmmyy hhmmss) TOTIME(ddmmyy hhmmss) JRNCDE((T)) ENTTYP(SF) OUTPUT(*OUTFILE) OUTFILFMT(*TYPE5) OUTFILE(MyTmpLib/TmpDspJrn) ENTDTALEN(*CALC)) JOB(DSPJRN)

El trabajo DSPJRN nos generará un archivo con las entradas relacionadas, en el ejemplo MyTmpLib/TmpDspJrn. Ahora podremos ejecutar una consulta, por ejemplo con SQL, indicando el nombre del archivo de spool y el nombre del trabajo de donde ha desaparecido el spool, en el ejemplo "QSYSPRT" y "MyJob":
SELECT * FROM MyTmpLib/TmpDspJrn WHERE JOESD LIKE 'D%' AND JOESD LIKE '%QSYSPRT%' AND JOESD LIKE '%MyJob%'

Y "voila", en la columna JOB NAME y USER NAME, ya tenemos el usuario que ha eliminado el archivo de spool, así como la hora y desde que programa, si es QCMD indica que se eliminó desde la linea de mandatos, o con alguna opción de menú. Cuando eliminamos un spool, el campo JOESD empieza con el carácter D.
Nota1: El OUTFILFMT(*TYPE5) es válido para la versión V5R2 o superiores. Para versiones anteriores podemos utilizar el *TYPE4, pero entonces no podemos especificar el nombre de trabajo (MyJob), con lo cual pueden aparecer más entradas que correspondan a eliminaciones de archivo de spool, pero en varios trabajos. Si no tenemos muchos puede que no sea un problema, pero si aparecen muchos, sera difícil discernir cual es el que buscamos, aunque hay otros valores que nos pueden ayudar, como puede ser la cola de salida que también aparece en el campo JOESD.

Nota2: Para activar la seguridad del sistema leer la entrada Configurar seguridad del sistema. Para saber más sobre la auditoria del sistema, Help400 publicó , hace ya unos años, una utilidad que puede ir bien para entender mejor como funciona.

miércoles, 6 de octubre de 2010

Tabla de trabajos

El mandato DSPSYSSTS nos  muestra una pantalla con el estado del sistema.
Uno de los valores que hemos de tener en cuenta ,en sistemas con muchos trabajos, es "Jobs in system" que nos indica cuantos JobID tiene el sistema, esto incluye cualquier trabajo que este en cola de trabajos, en estado activo o en cola de salida.

Existe un valor de sistema que nos indica cual es el numero máximo de trabajos en el sistema : DSPSYSVAL SYSVAL(QMAXJOB)

El sistema usa unas tablas para controlar los trabajos que están en el sistema, cada una de ellas puede contener 16352 entradas, con los JobId de los trabajos, que están en el sistema.

Con el mandato DSPJOBTBL podemos visualizar el estado de dichas tablas.

Es importante tener activada la limpieza del sistema (ver entrada Limpiar automaticamente mensajes, joblogs, dumps, ...) para evitar llegar a llenar las tablas de trabajos y tengamos una parada anormal del sistema.