Cómo generar un registro personalizado en el History Log del AS400
Conozca cómo generar un registro personalizado en las anotaciones históricas (History Log) del AS400.
En este tip, como ejemplo: envíe un mensaje desde un programa CL para registrar de manera permanente cuándo y quién ejecutó una aplicación determinada.
En AS400 toda comunicación entre elementos del sistema: entre programas, entre trabajos, entre usuarios y entre usuarios y programas, se produce a través de mensajes.
IBM provee varios comandos CL para envío de mensajes, que serán usados en diferentes escenarios dependiendo "desde dónde se envíe" y "a quién/qué se envíe".
Desde la interfáz "pantalla verde" y dependiendo del entorno de ejecución, es posible ejecutar los siguientes los comandos CL para el envío de mensajes: SNDMSG (Enviar mensaje), SNDBRKMSG (Enviar mensaje de interrupción), SNDUSRMSG (Enviar mensaje de usuario), SNDPGMMSG (Enviar mensaje de programa), SNDNETMSG (Enviar mensaje de red).
Una característica de los comandos SNDMSG (Enviar mensaje) y SNDPGMMSG (Enviar mensaje de programa) es la posiblidad de enviar mensajes al History Log (Anotaciones históricas) del sistema, que tiene asociada una cola de mensajes especial denominada QHST en la biblioteca QSYS.
Esto permitiría registrar explícitamente en las anotaciones históricas del sistema, mediante el envío de un mensaje personalizado, una acción determinada realizada por un usuario o una aplicación dentro del sistema.
Todos los mensajes que se envían al History Log (por el sistema o explícitamente enviados por un usuario), quedan registrados en archivos físicos de datos (objetos *FILE PF-DTA) asociados al registro histórico del sistema ubicados en la biblioteca QSYS, que son creados automáticamente por el sistema con nombres QHSTyyddda (yyddd-fecha juliana de creación, seguido de una letra), cuando se llega a un tamaño especificado, dado por el valor del sistema QHSTLOGSIZ.
El History Log, por medio de QHST, lleva el registro de todas las actividades dentro del sistema AS400, relacionadas con el arranque y finalización de jobs, cambios en el estado de los dispositivos, cambios a valores del sistema, mensajes y respuestas sobre la cola de mensajes del operador, y entre otras cosas con la actividad relacionada con las PTFs.
Teniendo en cuenta que los archivos físicos de datos en donde se guardan los mensajes del History Log, simplemente por estar ubicados en QSYS son archivos protegidos para su acceso, enviar mensajes al QHST, puede servir, por ejemplo, como un recurso para mejorar la auditoría que se realiza sobre una aplicación determinada y visualizando el History Log se podrá conocer datos sobre quién la ejecutó, cuándo y cuántas veces.
Un programa CL ejemplo que envía un mensaje a QHST
El siguiente es un código ejemplo en lenguaje CL que incluye una sentencia SNDMSG que envía un mensaje al History Log:
PGM | |
DCL VAR(&JOB) TYPE(*CHAR) LEN(10) | |
DCL VAR(&USER) TYPE(*CHAR) LEN(10) | |
DCL VAR(&NBR) TYPE(*CHAR) LEN(10) | |
DCL VAR(&FECHA) TYPE(*CHAR) LEN(6) | |
1 | RTVJOBA JOB(&JOB) USER(&USER) NBR(&NBR) |
2 | RTVSYSVAL SYSVAL(QDATE) RTNVAR(&FECHA) |
3 | SBMJOB CMD(CALL PGM(TEKTCL/PROG10)) JOB(AAUDITAR) |
4 | SNDMSG MSG('Aplicación TEKTCL/PROG10 requerida por + |
el usuario' *BCAT &USER *BCAT 'el' + | |
*BCAT &FECHA) TOMSGQ(QHST) | |
ENDPGM |
Donde:
1 Recupera los atributos del job, entre ellos el nombre del usuario (en la variable &USER) que corre el programa CL presentado en la pantalla, para incorporarlo en el mensaje enviado a QHST.
2 Recupera el valor del sistema QDATE (en la variable &FECHA) para poder concatenar la fecha al mensaje enviado al History Log.
3 Somete la ejecución de (en el ejemplo) el programa que se desea auditar (PROG10 de la biblioteca TEKTCL)
4 Se ejecuta el comando SNDMSG con el que se envía el mensaje a la cola de mensajes QHST. (En el parámetro TOMSGQ también puede especificarse *HSTLOG). El texto del mensaje a enviar contendrá: el nombre del usuario y la fecha en que se ejecutó el programa. Ambos valores recuperados con los comandos RTVJOBA (Recuperar Atributos del Trabajo) y RTVSYSVAL (Recuperar valor del sistema), mencionados en 1 y 2.
Luego de ejecutar el programa CL (que en el ejemplo somete la ejecución del programa PROG10 de la biblioteca TEKTCL), al visualizar el History Log, se podrá encontrar entre los mensajes ya registrados en las anotaciones históricas del sistema, el mensaje enviado por el programa CL que se usó como un ejemplo de envío de mensajes al History Log.
Visualizando el mensaje que se envió al History Log
Al ejecutar el comando DSPLOG (Visualizar Anotaciones), se visualizará la pantalla siguiente, donde se puede observar entre otros, el mensaje enviado por el programa CL ejemplo analizado anteriormente:
Para tener en cuenta ...
- El uso indicado en el presente tip es sólo un ejemplo de la clase de registro que se puede llevar, enviando un mensaje personalizado, además de las anotaciones (mensajes) que naturalmente registra el sistema ante determinadas acciones realizadas en el sistema AS400.
- Las anotaciones históricas constituyen un registro permanente, por lo tanto como sucede con cualquier otro mensaje enviado a QHST por el propio sistema, los mensajes enviados por un programa ejecutado por un usuario (como se mostró en el ejemplo) también quedan protegidos de ser eliminados. No ocurre lo mismo si el mensaje se enviara a una cola de mensajes de usuario, o a una cola de mensajes de dispositivo, donde el mismo es suceptible de ser eliminado.
- Sólo los usuarios con la autorización correspondiente pueden suprimir los archivos físicos de datos (con nombre genérico QHSTyyddda que se encuentran en la biblioteca QSYS), y que registran los mensajes de las anotaciones históricas.
- Especialista AS400 - Supervisor editorial Teknodatips |
Copyright 2012 - Teknoda S.A.
IMPORTANTE: “Notas técnicas de AS/400 - IBM i" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes IBM i - AS/400. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. NS iTech - Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos. |