|
Aplicación histórico de trabajos
OBJETIVO:
Tener en una base de datos todos los trabajos ejecutados
en el sistema, con estadísticas de consumo CPU
y I/O y duración de cada uno de ellos, así
como las medias.
FUNCIONAMIENTO:
1. MANTENIMIENTO DE DATOS:
El programa HST000 averigua cual es el ultimo archivo
QHST* y llama a HST005 este carga los archivos QHST*
al archivo HST010F, hasta el penultimo que guarda su
nombre en area de datos HST010D, para tratarlo en otro
proceso. se podria planificar para ejecutar diariamente
a las 05:00h con el mandato:
ADDJOBSCDE JOB(HST000) CMD(CALL PGM(MYLIB/HST000)) FRQ(*WEEKLY)
+
SCDDATE(*NONE) SCDDAY(*ALL) SCDTIME(050000) */
La carga se basa en leer el mensaje CPF1164 del archivo
historico que contiene la infomacion sobre el trabajo.
HST000 Proceso que controla la carga, copia y vaciado
de datos anteriores a 1 año, utiliza la utilidad
ADDDAT ADDDAT (2Kb)
de las TAATOOLS, y reorganiza HST010F para consumir
el menor espacio en disco posible (se puede parametrizar).
Este programa llama a los siguientes:
HST005 Carga, Salva y Elimina los archivos QHST* ya
tratados.
HST010 Realiza la carga de los datos al archivo HST010F,
tal como esta,cargara todos los tipos de trabajo, que
no hayan finalizado con codigo 40 (cancelado en cola
de trabajos) y de todos los usuarios. Para omitir trabajos
por tipo, por codigo finalizacion,
u otro condicion estudiar lineas con comentario '*Ver
Nota' en el fuente de HST030. Tambien existe la matriz
USR para omitir usuarios. Este programa utiliza los
programas auxiliares HST011, HST012 y HST021.
Nota: Para la carga inicial introducir primer QHST a
cargar:
WRKOBJ OBJ(QHST*) OBJTYPE(*FILE)
Copiar nombre 1r. archivo QHSTaajjjn a area de datos:
CHGDTAARA DTAARA(HST010D) VALUE(QHSTaajjjn)
HST080 Realiza el vaciado de registros del archivo HST010F.
PROGRAMAS AUXILIARES:
HST011 Calculo de tiempo entre dos fechas
HST012 Devuelve datos fecha
HST021 Recupera descripcion objeto sin biblioteca
2. CONSULTA DE DATOS:
Para acceder a los datos historicos utilizar el mandato
HSTJOBLOG introduciendo el nombre del trabajo o el usuario
a consultar.
Este mandato llama al programa HST030 que recupera los
datos del trabajo o usuario y los visualiza en la pantalla
HST030W en orden inverso, de mas actual a mas antiguo.
11/11/2003: Modificacion Visualizar subfile en orden
inverso.
Se añade clave de fecha de inicio trabajo en
HST010F.
Se añaden parametros a HST_LEAME para convertirlo
en programa de instalacion de la utilidad.
11/11/2003: Modificacion HST030 para incorporar sugerencia
de jperez@sucromiles.com.co para consulta por usuario,
utiliza nuevo logico HST010L por usuario y fecha .
15/01/2004: Modificacion no repetir ultimo archivo tratado.
INSTRUCCIONES para instalar la aplicacion:
Subir los fuentes al archivo de fuentes &MYSRCL/&MYSRC
y ejecutar los siguientes mandatos (se puede compilar)
para crear objetos en biblioteca &MYLIB.
PGM PARM(&MYLIB &MYSRCL &MYSRC)
DCL VAR(&MYLIB) TYPE(*CHAR) LEN(10) /* Donde se
crean los objetos */
DCL VAR(&MYSRCL) TYPE(*CHAR) LEN(10) /* Biblioteca
archivo fuente */
DCL VAR(&MYSRC) TYPE(*CHAR) LEN(10) /* Archivo fuente
*/
/* Estos DSPOBJD son solo para compilar y se pueden
eliminar despues.*/
DSPOBJD OBJ(QSYS/QHST*) OBJTYPE(*FILE) OUTPUT(*OUTFILE)
OUTFILE(QTEMP/DSPOBJD)
DSPOBJD OBJ(&MYSRCL/&MYSRC) OBJTYPE(*FILE) +
OUTPUT(*OUTFILE) OUTFILE(QTEMP/PFOBJD)
CRTPF FILE(&MYLIB/HST010F) SRCFILE(&MYSRCL/&MYSRC)
CRTLF FILE(&MYLIB/HST010L) SRCFILE(&MYSRCL/&MYSRC)
CRTDSPF FILE(&MYLIB/HST030W) SRCFILE(&MYSRCL/&MYSRC)
CRTDTAARA DTAARA(&MYLIB/HST010D) TYPE(*CHAR) LEN(10)
+
TEXT('Area datos primero a tratar por HST010')
CRTCMD CMD(&MYLIB/HSTJOBLOG) PGM(*LIBL/HST030) SRCFILE(&MYSRCL/&MYSRC)
CRTCLPGM PGM(&MYLIB/HST000) SRCFILE(&MYSRCL/&MYSRC)
CRTCLPGM PGM(&MYLIB/HST005) SRCFILE(&MYSRCL/&MYSRC)
CRTRPGPGM PGM(&MYLIB/HST010) SRCFILE(&MYSRCL/&MYSRC)
CRTRPGPGM PGM(&MYLIB/HST011) SRCFILE(&MYSRCL/&MYSRC)
CRTRPGPGM PGM(&MYLIB/HST012) SRCFILE(&MYSRCL/&MYSRC)
CRTCLPGM PGM(&MYLIB/HST021) SRCFILE(&MYSRCL/&MYSRC)
CRTRPGPGM PGM(&MYLIB/HST030) SRCFILE(&MYSRCL/&MYSRC)
CRTRPGPGM PGM(&MYLIB/HST080) SRCFILE(&MYSRCL/&MYSRC)
DLTF FILE(QTEMP/DSPOBJD)
DLTF FILE(QTEMP/PFOBJD)
RETURN
ENDPGM
Para acceder a los datos historicos utilizar el mandato
HSTJOBLOG que tiene como parametro el nombre del trabajo
a consultar.
Este mandato llama al programa HST030 que recupera los
datos del trabajo y los visualiza en la pantalla HST030W.
INSTRUCCIONES para instalar la aplicación
Subir los fuentes al archivo de fuentes MYLIB/MYSRC
y ejecutar los siguientes mandatos (se puede compilar):
DSPOBJD OBJ(QSYS/QHST*) OBJTYPE(*FILE) OUTPUT(*OUTFILE)
OUTFILE(QTEMP/DSPOBJD)
DSPOBJD OBJ(MYLIB/MYSRC) OBJTYPE(*FILE) OUTPUT(*OUTFILE)
OUTFILE(QTEMP/PFOBJD)
/* Nota: Si sometemos la compilacion cambiar OUTFILE(QTEMP
por QGPL),*/
/* estos DSPOBJD son solo para compilar y se pueden
eliminar despues.*/
CRTPF FILE(MYLIB/HST010F) SRCFILE(MYLIB/MYSRC)
CRTDSPF FILE(MYLIB/HST030W) SRCFILE(MYLIB/MYSRC)
CRTDTAARA DTAARA(ZGPL/HST010D) TYPE(*CHAR) LEN(10) +
TEXT('Area datos primero a tratar por HST010')
CRTCMD CMD(MYLIB/HSTJOBLOG) PGM(*LIBL/HST030) SRCFILE(MYLIB/MYSRC)
CRTCLPGM PGM(MYLIB/HST000) SRCFILE(MYLIB/MYSRC)
CRTCLPGM PGM(MYLIB/HST005) SRCFILE(MYLIB/MYSRC)
CRTRPGPGM PGM(MYLIB/HST010) SRCFILE(MYLIB/MYSRC)
CRTRPGPGM PGM(MYLIB/HST011) SRCFILE(MYLIB/MYSRC)
CRTRPGPGM PGM(MYLIB/HST012) SRCFILE(MYLIB/MYSRC)
CRTCLPGM PGM(MYLIB/HST021) SRCFILE(MYLIB/MYSRC)
CRTRPGPGM PGM(MYLIB/HST030) SRCFILE(MYLIB/MYSRC)
CRTRPGPGM PGM(MYLIB/HST080) SRCFILE(MYLIB/MYSRC)
3 Nuevas opciones (octubre 2004)
- Los trabajos visualizados en rojo son trabajos finalizados
anormalmente
- Arreglar un error en el cálculo de las medias
en trabajos de duraciones superiores a 100.000 segs.
(ahora soporta trabajo de hasta 41 días).
- Opción 5 Visualizar trabajo
- Opción 8 Visualizar spools del trabajo
Tienes los fuentes de la utilidad aquí
(17Kb) 
El autor es Martí Riera y agradecería
cualquier comentario y/o modificación de esta
utilidad
Septiembre 2003
Modificación y mejora Noviembre 2003 por Jorge
Pérez Y Martí Riera
Nueva modificación de Marti Riera en Enero 2004
Última actualización Octubre 2004
Corrección de BUG Enero 2005
|