lunes, 31 de enero de 2011

Colas de Ejecución


Dependiendo de el sistema donde nos encontremos, el acceso a las colas de ejecución será de forma distinta. Incluso puede no existir tal acceso y tener controladas las colas desde otros lugares. El cómo llegar, lo dejo en vuestras manos, pero la pantalla común en la que tenemos estar todos es ésta:



Línea de comandos (COMMAND INPUT):

Comando PRE: Por medio de esta cola podemos observar (y cotillear) lo que está haciendo cualquier usuario del sistema. El comando para filtrar usuarios es PRE.

  • PRE * Este comando nos muestra todos los usuarios del sistema siempre y cuando estén conectados.
  • PRE “nombre_usuario” Este comando nos filtra por el usuario indicado.
Lo primero que haremos será filtrar por nuestro usuario para ver nuestras ejecuciones. Para ello escribimos en la línea de comando: PRE "Mi_Usuario"

Nota: Este comando se puede usar en ésta o en todas las sucesivas pantallas que vamos a ver.

Existen diferentes Tipos de Colas:

Cola ST: Muestra el estado en el que estan la ejecuciones. Nos dice los proceso que hay en ejecución(en máquina), los procesos que están pendientes de entrar en máquina y los procesos que ya han acabado.

Algunas columnas de información interesantes son:
  1. Columna NP: Mini línea de comandos para un proceso en concreto.
    • S     Muestra toda la información (log) de la ejecución.
    • ?     Muestra toda la información de la ejecución divida en apartados
    • SE Muestra toda la información de la ejecución pero en formato para EDITAR.
    • SJ   Ver el código del jcl.
    • C    Cancela la ejecución del proceso seleccionado
    • P    Purga el proceso seleccionado de la cola.
    • // ... //P Purga varios procesos al mismo tiempo. Para seleccionar la lista de procesos que queremos purgar, ponemos “//” en el primero y “//p” en el último
  1. Columna JOBNAME: Nombre del job o del usuario
  2. Columna JobID: Clave única que asigna el host al proceso
  3. Columna Owner: Propietario del proceso
  4. Columna Queue: EXECUTION (indica que el proceso está en ejecución(color blanco) o pendiente de entrar(color azul)), PRINT (indica que el proceso ha terminado)
  5. Columna Max-RC: Resultado de la ejecución. Todo ceros bien, un 4 bueno, otro....mal asunto.. ;-)
  6. Columna Pos: Posición global que ocupa en la cola.
Entremos un poco más en detalle sobre las opciones de la columna NP:
- Si introducimos S delante de la ejecucíón veremos el log de la ejecución completo.


- Si introducimos SJ delante de una ejecución podemos ver el código del JCL que lanzó la ejecución.


Y nos muestra el job seleccionado:


Ojo!: Los cambios que aquí se realicen no se guardan en la librería original. Si submitimos la nueva versión desde las colas solo se guarda en las colas, si no submitimos perdemos todos los cambios que hayamos hecho.


Cola DA: Muestra las tareas que se están ejecutando en tiempo real del usuario o los usuarios que tengamos filtrados con el comando PRE. Si, por ejemplo, hemos filtrado por nuestro usuario nos muestra los procesos que tengamos en ejecución (todos los jcls que tengamos ejecutándose) y además nos mostrará a nuestro propio usuario que está conectado al sistema (recordemos que nuestro usuario también forma parte del host y es un recurso más que éste debe tratar). Si no tenemos ningún jcl en ejecución, únicamente veremos nuestro usuario.

Esta opción es muy útil para realizar el seguimiento de nuestros jcls en caso de que estén en máquina. Nos da mucha información del mismo:

NP JOBNAME STEPNAME PROCSTEP TYPE  CPU%  OWNER   CPU
   USUARIO PASO010  UNLOAD   JOB   60.42 USUARIO 68.96
   USUARIO IKJDESA  NVASPB23 TSU   1.12  USUARIO 3.42

  • NP Indicador de comandos. Por ejemplo: Poniendo una C nos cancela la ejecución del jcl.
  • JOBNAME Nombre del jcl o del usuario filtrado.
  • STEPNAME Nombre del paso en el que se encuentra la ejecución.
  • PROCSTEP Tipo de paso
  • TYPE Tipo de proceso que esta en ejecución. JOB (se trata de un jcl), TSU (se trata de un usuario conectado).
  • CPU% % de CPU usada del host. Tener en cuenta que a su vez es un valor del X% que se le asigna a cada entorno. Es decir, del 100% del host, supongamos que un 10% es asignado a la parte de desarrollo(a los usuarios y jcls que lanzamos que prueban los programas en un entorno de desarrollo). Pues bien, el CPU% es el % que nosotros utilizamos de ese 10% total. Si nos marca un CPU%=60.42, estaríamos utilizando aproximadamente el 0.06% del total.
  • OWNER El propietario o usuario que a lanzado el job
  • CPU TIME Tiempo de CPU que está utilizando.


    Hay más columnas de información pero no sabría explicarlas en detalle. Agradecería si alguno de vosotros las conoce que nos dejara un comentario con la explicación.

Cola H: Muestra las ejecuciones concluidas.
Cola INIT: Muestra los iniciadores( Un iniciador es donde se ejecuta una tarea, hay un número n de iniciadores, mientras no haya ninguno libre no se pueden ejecutar más tareas).
Cola I: Muestra las ejecuciones en espera.
Cola O: Muestra la cola de salida (impresión).


Cosas Curiosas:
  1. Tirar del sistema a algún usuario. No se si sirve en todas las plataformas y al menos se necesita que tu usuario tenga la misma autoridad o más que la del usuario que pretendes tirar, pero el comando es el siguiente:
    /c u=”nombre_usuario”

  2. Si escribimos en la línea de comandos la función SET DISPLAY ON nos activa la siguiente línea en la pantalla:
    PREFIX=USUARIO* DEST=(ALL) OWNER=* SYSNAME=*
Con eso podemos ampliar el filtro de procesos de las colas. 

  • En este caso PREFIX nos indica el usuario que tenemos seleccionado. Si tuvieramos PREFIX=* indicaría que tenemos seleccionados todos los usuarios y procesos. Esto se controla con el comando PRE (explicado al principio del documento).
  • DEST=(ALL). Cada proceso se ejecuta en un destino, normalmente el destino es el mismo que el que ejecuta el proceso. Si tenemos ALL significa que tenemos filtrados todos los destinos. Para habilitar este comando la sentencia es: 
DEST ALL
ó
DEST nombre_proceso_ó_usuario
  • OWNER=*. Indica el filtrado por propietario, es decir el que ejecuta el proceso.Para habilitar este comando la sentencia es: 
                 OWNER * 
                 OWNER ALL
                 OWNER
                 OWNER nombre_proceso_ó_usuario
  • SYSNAME=*. Filtrado por nombre de systema que donde se ejecuta el proceso.Para habilitar este comando la sentencia es: 
                SYSNAME
                SYSNAME *
                SYSNAME ALL
                SYSNAME nombre_proceso_ó_usuario
    Combinar estos 4 métodos nos permite un amplia variedad de filtros.

    No hay comentarios: