lunes, 29 de marzo de 2010

Uso del mandato WRKACTJOB

Uno de los mandatos más utilizados en el AS400 es el WRKACTJOB (Trabajar con Trabajos Activos), ¿Pero le sacamos todo el partido a este mandato?
En primer lugar comentar que este mandato es un consumidor de recursos, por tanto no es recomendable que estén varias personas ejecutándolo al mismo tiempo. La primera vez que usamos el mandato puede que nos salga una pantalla parecida a esta:
Esta nos muestra las opciones y las teclas de Función que podemos usar. Una vez tengamos soltura con esas opciones y funciones, podemos pulsar F21=Nondisplay instructions/keys para ocultarlas, de esta forma podemos ver más trabajos en la misma pantalla:

La primera vez que ejecutamos este mandato en nuestra sesión, se activan unas estadísticas que se actualizaran cada vez que pulsemos F5=Refresh, con lo que acumulara y hará las medias aritméticas de los valores de algunas columnas marcadas bajo la denominación Elapsed, como la del porcentaje de uso de CPU de los trabajos. En la parte superior tenemos el campo Elapsed time que nos indica el tiempo desde el ultimo reset de las estadísticas. También vemos CPU % que indica el total de uso de CPU del sistema para el total de procesadores que tengamos. El total de trabajos en el sistema se nos indica en el campo Active jobs.
Si pulsamos F10=Restart statistics, resetearemos las estadísticas a 0, esto nos puede servir para comprobar el consumo puntual de CPU (snapshot) de un trabajo.

También podemos utilizar F19=Start automatic refresh para dejar la pantalla en modo de refresco automático, que como si pulsáramos F5 cada n segundos, el valor por omisión esta indicado en el parámetro INTERVAL del mandato, por omisión es *PRV o sea el ultimo utilizado, aunque la primera vez son 300 segundos. Esto nos puede ser útil para controlar algún trabajo en concreto desde una pantalla.

Con F17=Top podemos ir al principio de pantalla y con F18=Bottom al final, esto nos sirve para movernos algo más rápido, sobre todo si tenemos muchos trabajos.

Con F11 podemos cambiar las vistas para ver más información sobre el trabajo, hay 3 vistas diferentes que aparecen cada vez que pulsamos la tecla de función.

El mandato WRKACTJOB permite filtrar por:
  • Nombre de subsistema (SBS) para por ejemplo ver solo los trabajos interactivos en el subsistema QINTER y/o QCTL:
    • WRKACTJOB SBS(QCTL QINTER)
  • Nombre de trabajo (JOB) para ver solo los trabajos que:
    • Empiecen por un nombrte:
      • WRKACTJOB JOB(MyJob*)
    • Trabajos del sistema:
      • WRKACTJOB JOB(*SYS)
    • O trabajos de subsistema activos:
      • WRKACTJOB JOB(*SBS)
  • Podemos filtrar por:
    • Uso de CPU (CPUPCTLMT), por ejemplo los trabajos que consumas mas de un 15% de CPU: WRKACTJOB CPUPCTLMT(15)
    • Tiempo de respuesta interactivo (RSPLMT) de una sesión (pantalla verde), por ejemplo una pantalla que tarde más de 5 minutos en ejecutar un programa/mandato: WRKACTJOB RSPLMT(300)
Otra opción muy interesante es el parámetro Sequence (SEQ) que nos permite ordenar por alguna de las columnas del mandato, un clásico es ordenar por consumo de CPU para averiguar que trabajo se nos esta llevando el procesador: WRKACTJOB SEQ(*CPU) o por Total de unidades de CPU consumidas (en segundos) WRKACTJOB SEQ(*CPUPCT). Para más información pulsar F1=Help sobre campo del parámetro y podremos ver una explicación más detallada de todas las opciones posibles.

Una opción que utilizo bastante es ordenar por una columna, combinándola con otras opciones explicadas, por ejemplo la de Status de los trabajos, para ello situamos el cursor encima del titulo de la columna y pulso F16=Resequence de esta forma puedo encontrar, más rápidamente, todos los trabajos que están en estado MSGW.
Nota: Tener en cuenta que si queremos ordenar por subsistema debemos situar el cursor encima de la columna Subsystem/Job, pero si queremos ordenar por nombre de trabajo deberemos situar el cursor encima del primer carácter del nombre de trabajo que aparezca en la pantalla.

Otra opción, poco conocida, es que el mandato WRKACTJOB oculta los trabajos de prearranque inactivos (PJ) o grupos de sesión inactivos (INT), es cuando pulsamos la tecla PetSys + opción 1 (Mayusc+Esc) o la tecla de Atención de Sistema (Esc). Para visualizarlos hemos de pulsar F14=Include, un ejemplo para el subsistema QSERVER:
WRKACTJOB SBS(QSERVER)
En esta pantalla solo vemos 5 trabajos, pero si pulsamos F14 nos aparecen más de 14 trabajos:

Finalmente podemos usar la tecla de función F15=Work with system status que ejecuta el mandato WRKSYSSTS que necesitaría un libro para explicar su utilidad, podéis consultar la siguiente entrada para tener alguna idea sobre el tema: Como saber si el AS400 necesita mas RAM

3 comentarios:

Anónimo dijo...

exelente aporte muchas gracias por compartirlo

German Chiock dijo...

Buen día; teniendo en cuenta que actualmente el IBM i Series es un repositorio de información y core de información, el tema de comunicaciones es considerado una condición crítica del mismo. Dicho esto, es necesario tener a la mano una opción complementaria al comando WRKACTJOB que nos brinde la información de la dirección IP del trabajo que se esta ejecutando y conectando al sistema. Sabemos que esta dirección se puede obtener el joblog (via ejecución del comando dspjoblog) del trabajo, pero ello nos lleva a perder de vista el resto de trabajos. La idea es tener dentro de un mismo panel esa información.
Podrían informarnos si existe esta funcionalidad?

mrierab dijo...

Hola, En el sistema operativo o existe esa vista, aunque podemos usar NETSTAT *CNN no proporciona una visión sencilla para relacionar trabajo con dirección IP.
Si existen utilidades freeware publicadas en la red que nos facilitan la visualización de dicha información, la que recomiendo es WRKODBCJOB, publicada en la pagina de Bryan Dietz
http://bryandietz.us/wrkodbcjob.html
Esta utilidad nos sirve para visualizar la dirección ip de los trabajos QZDASOINIT, pero serviría para otro tipo de trabajos, si la adaptamos. Saludos