• principal_3

    Desde 2015, enseñando sobre el sistema operativo z/OS de IBM en esta web. z/OS se utiliza en máquinas llamadas Mainframe.

  • principal_1

    Para realizar el contenido, utilizo el producto de IBM llamado z/Development and Test Environtment Personal Edition. Este software permite emular un Mainframe y así poder utilizar z/OS para aprender.

  • principal_2

    Es utilizado por grandes empresas (bancos, aseguradoras...). Aquí aprenderás a instalar y configurar productos relacionados con z/OS.

  • principal_4

    ADCD es una distribución de z/OS que contiene productos de IBM como IMS, DB2, CICS, ZOWE, TWS, NetView, System Automation, etc.

System Automation - TWS - Comandos por NVs

En la entrada “System Automation - TWS - Parada-arranque tareas por NVs” vimos cómo parar/arrancar tareas del sistema usando OPC + System Automation. Ahora, vamos ver cómo podemos lanzar otro tipo de comandos (INGREQ, INGVOTE, etc.) desde OPC a System Automation, utilizando también NVs. 

Lo primero será crear una WorkStation de nombre NVxx en OPC. La principal diferencia que tendrá con la NV que creamos será que, en esta ocasión, marcaremos la opción AUTOMATION como Y.

NOTA: Si hay dudas de cómo crear una WS, en el blog hay una entrada que explica cómo hacerlo.

 

Una vez la tengamos definida, vamos a crear una aplicación en la base de datos para dar un comando sencillo y ver que funciona.

NOTA: Si hay dudas de cómo crear una aplicación, en el blog hay una entrada que explica cómo hacerlo.

En la imagen vemos unos datos de ejemplo para la aplicación.

 

Vamos a OPER y ponemos las siguientes operaciones y predecesores.

NOTA: En este caso, el nombre de la operación NVxx no tiene que coincidir con el nombre de ninguna tarea.

 

En este caso, no pondremos nada en el campo Operation text, pero si entraremos en esa operación, con una S.

 

Entraremos en la opción 11 – Automation Info.

 

Aquí podremos el comando que queremos lanzar al sistema. Al tratarse de System Automation, podremos usar  los comandos propios que tiene, por ejemplo, INGREQ o INGVOTE, además de los comandos del sistema.

En este caso, vamos a hacer que este job compruebe si hay “votes” pendientes en el sistema. Si hay votes pendientes terminará con un 8. Sino, terminará correctamente.

El comando es el siguiente:

 

PIPE NETVIEW INGVOTE OUTMODE=LINE TARGET=ADCD113 | SEP | LOC \ADCD113\ | PIPEND 8

 

Ejecuta el comando PIPE. Este comando es como una “tubería” con distintas fases o “stages” por la que pasan los datos.

La primera fase sería la que obtiene los datos, en este caso, “PIPE NETVIEW INGVOTE OUTMODE=LINE TARGET=ADCD113”. En esta fase, ejecuta el comando INGVOTE contra el sistema ADCD113 y la salida se obtiene en forma de texto, en vez de mostrar el panel.

La segunda fase es “SEP”. Hace un “separate” de los datos, ya que ese comando da todos los datos en un único mensaje.

La tercera fase es “LOC \ADCD113\”. Hace un “locate” en los datos para encontrar las líneas que tienen el mensaje “ADCD113”. Si lo encuentra, seguirá a la siguiente fase. Si no encuentra datos, el comando se parará ahí.

La cuarta fase es “PIPEND 8”. Provoca que el comando termine con RC=8. Esto está puesto para que, si encuentra datos en la fase anterior, termine en error el job porque hay “votes” pendientes. Si el paso anterior no encontró datos, esta fase no se ejecutaría y terminaría con RC=0.

Dejo un enlace a una página de IBM que explica este tema en profundidad:

NetView - Using Pipes

 

NOTA: Para adaptar el comando a cada sistema, simplemente hay que cambiar “ADCD113” por el nombre de vuestro sistema.

 

Para que quede más claro este comando, voy a poner dos pantallazos. Uno con votes pendientes y otro sin votes pendientes.

 

CON VOTES PENDIENTES

 

Vemos que aparece el sistema ADCD113, por eso hacemos el LOCATE de ese mensaje.

 

SIN VOTES PENDIENTES

Mostrará el mensaje “NOTHING TO DISPLAY”.

 

Ahora vamos modificar las políticas de System Automation. Para ello, vamos al panel correspondiente y entramos en la opción 1. Como ya implementamos las políticas de System Automation en publicaciones anteriores, utilizaremos la misma base de datos, en mi caso, ADCD113POLICY.

 

Entramos en la opción 20, para confirmar que la NV, que vamos a usar en la aplicación, existe.

 

Entramos en la opción 31.

 

 

Entramos en la única opción que aparece.

 

Entramos en la opción OPCA PCS.

 

Comprobamos que en el campo “Netview domain name” tengamos el mismo dominio que creamos al implementar System Automation.

 

Volvemos al panel de Product Automation y entramos en la opción 33.

 

Entramos en la única opción disponible.

 

Entramos en OPCA DOMAINID.

 

Comprobamos que la NV02 tenga el mismo dominio que el dominio de System Automation. Podemos tener otras NVs.

 

Volvemos al panel inicial de las políticas de System Automation y entramos a la opción 2 – Build para hacer efectivos los cambios que hemos hecho.

NOTA: Para evitar errores, debemos tener paradas las tareas de System Automation.

 

Como en entradas anteriores ya construimos la base de datos de políticas, podremos actualizar sólo las políticas de nuestro sistema. Para ello, elegiremos la opción 2 y en el campo Sysplex / System Name pondremos el nombre del sistema.

 

Pulsamos intro (control) para que empiece el proceso.

 

Una vez finalizado, aparecerá el mensaje “Build Successful”.

 

Ya podremos arrancar System Automation. Ahora vamos a parar una tarea a través de System Automation para crear un vote. Lo haremos desde el panel “INGLIST”.

 

Con el comando INGVOTE, vemos que se ha creado el vote por la parada.

 

NOTA: Es posible que tengamos que hacer una extensión del current plan o replan para que System Automation coja los cambios de la nueva NV.

Ahora vamos a OPC y añadiremos la aplicación que creamos al principio. Vamos a la opción 5.1 y añadimos la aplicación.

 

 

Vemos, en la opción 5.4 de OPC, que el job ha fallado con un 8.

 

En el log de NetView, comando BLOG, veremos la ejecución del comando y el error.

 

Cancelamos el vote desde el panel “INGVOTE”.

 

Relanzamos el job en error.       

 

Vemos que termina correctamente.

 

Podemos confirmarlo en el log de NetView.

 

De esta forma podremos lanzar comandos desde TWS a System Automation, ya sea: INGREQ, INGVOTE, ejecución de programas rexx de NetView, ejecución de comandos del sistema (D A,L). Además usando "pipes" podremos ir filtrando los datos y hacer que el job falle, si consideramos que hay algo que hay que revisar.

 

Publish modules to the "offcanvs" position.