viernes, 24 de mayo de 2013

Utilidad estadisticas espacio en disco (DSKINF)

En un articulo anterior se explicaba como activar las estadísticas de espacio en disco incluidas con el sistema operativo de nuestro AS400.

Analizando el funcionamiento de dicha función del AS400 desarrolle, hace años, la utilidad CPYDSKINF, para consolidar, periódicamente, esta información en otro archivo y así poder realizar análisis de la evolución del crecimiento de la ocupación en disco, de las bibliotecas y/o de los objetos.

La periodicidad podría ser semanal, o como mínimo mensual, aunque deberemos analizar cual es la mejor periodicidad para nuestro sistema y nuestras necesidades. Deberemos tener en cuenta que este proceso genera, acumula mucha información, y necesita mucho tiempo de ejecución,  aunque, evidentemente, dependerá del rendimiento de nuestro sistema.
Si usamos esta utilidad es recomendable no utilizar la opción de planificación de recogida de estadísticas de espacio en disco del sistema (GO DISKTASKS), ya que estaremos duplicando el proceso y podemos tener problemas si los lanzamos al mismo tiempo.

Para planificar la ejecución semanal, de esta utilidad, utilizar el siguiente mandato:
ADDJOBSCDE JOB(CPYDSKINF) CMD(CALL PGM(DSKINF/CPYDSKINF)) FRQ(*WEEKLY) SCDDATE(*NONE) SCDDAY(*SUN) SCDTIME('23:59:59') RCYACN(*SBMRLS) JOBQ(QSYS/QUSRNOMAX) 
TEXT('Statistical disk space usage')

A partir de los datos recogidos, semana a semana, podemos utilizar Query's, Consultas QM o SQL, para extraer información sobre la evolución de la ocupación del disco, bibliotecas y de los objetos  en el sistema. También nos puede servir para averiguar en que periodo se elimino un objeto, que objetos se han creado entre periodos, etc...

El programa actualiza los tres archivos DSKINF, EVODSK y EVOLIB:
  • DSKINF: Contiene la misma información que QAEZDISK, pero con 2 campos más que contienen el nombre del sistema, donde se ha recogido la información, y la fecha de recogida (en formato saammdd).
  • EVODSK: Se genera en cada ejecución y contiene un registro por cada fecha de recogida con la ocupación en disco y el total de disco cuando se recogió la información.
  • EVOLIB: Se genera en cada ejecución y contiene un registro por cada fecha de recogida y biblioteca, con el tamaño de la misma cuando se recogió la información.
En el código del programa CPYDSKINF, la variable &DLTDAT nos indica cuanto tiempo debe conservar los datos de información de espacio en disco en el sistema, de esta forma el tamaño de la biblioteca DSKINF sera, más o menos, constante. Por omisión se conservan 365 días.

Seguid las instrucciones de instalación de la utilidad en el fuente README_DSK.TXT incluido. Se recomienda instalarla en la biblioteca DSKINF, de esta forma tendremos más controlado el espacio que ocupa esta información. Podéis bajaros el código desde este enlace.

Esta utilidad consta de varios fuentes y objetos:
ADDDSKINF   RPG   Añade registros informe espacio disco
CPYDSKINF   CLP   Genera, consolida e imprime informes disco
DSKINF      PF    Informe espacio en disco
EVODSK      SQL   Evolución espacio en disco

EVODSK_CRT  SQL   Creación archivo evolución espacio en disco 
EVOLIB      SQL   Evolución ocupación bibliotecas

EVOLIB_CRT  SQL   Creación archivo evolución ocupación bibliotecas 
RMVDSKINF   RPG   Elimina registros informe espacio disco

README_DSK  TXT   Instrucciones de instalación de DSKINF 

Notas:

lunes, 13 de mayo de 2013

Visualizar los trabajos de un usuario

Cuando tenemos que controlar trabajos de varios usuarios y diferentes nombres, podemos usar los mandatos WRKJOB, WRKUSRJOB y WRKSBMJOB, además del WRKACTJOB, pero muchas veces tenemos que ir cambiando de mandato para poder usar el que más fácilmente nos muestra los trabajos que que queremos comprobar. Esto implica una perdida de tiempo navegando por varios mandatos, es por ello que creé el mandato DSPUSRJOB, basado en la tool RTVJOBCNT de Martin Rowe.
El uso del mandato es sencillo y podemos usar la tecla de función F4, para ver los parámetros disponibles, así como también F1 para visualizar la ayuda del mandato y sus parámetros.
Las opciones 2=Change job y 4=End job solo las veremos si nuestro usuario tiene el permiso especial *JOBCTL. El resto de las opciones 5=Display job,  6=Change joblog y 8=Display spools están disponibles para cualquier usuario que utilice el mandato si hemos tenido la precaución de compilar el programa con USER(*OWNER) y el propietario del programa DSPUSRJOBC sea, por ejemplo QPGMR, u otro usuario con *JOBCTL.

Con este mandato tenemos la posibilidad de dar acceso a trabajos de otros usuarios a usuarios que no tienen la autorización especial *JOBCTL en su perfil de usuario. Esto nos evita, lo que se hace a veces, de dar autorización *JOBCTL a un perfil de usuario que no debería tenerla, solo para facilitarle el acceso a un trabajo, por ejemplo para ver los spools del mismo.
Para limitar el acceso a esta potente herramienta, la habremos compilado con AUT(*EXCLUDE) para limitar el uso publico del mandato (y programa). Posteriormente podremos añadir la autorización *USE a los usuarios que nos interese que puedan utilizarla.

Podéis bajar el código de esta utilidad desde este enlace.

Tenéis más información sobre la discusión de otorgar las autorizaciones especiales *JOBCTL y/o *ALLOBJ, para solo controlar trabajos en este enlace.