This section is only in Spanish. You can automatically translate the content:

NOTA: Se añade versión nueva del código para añadir los campos, fecha y hora de entrada al spool y MAX-RC.

Esta ocasión vamos a sacar datos de los jobs que se encuentren en el spool usando REXX. Los datos que sacaremos serán la fecha de inicio y fin de los jobs, no incluye STCs, que hayan terminado de ejecutarse.

El código, con comentarios, es el siguiente:

En esta entrada vamos a definir las librerías PROCLIB de forma dinámica. Imaginemos que tenemos las librerías definidas de forma estática. Si alguien renombra una de las librerías por error o se escribe mal el nombre de alguna, el JES2 no arrancará y la resolución puede demorarse mucho.

Con las librerías definidas de forma dinámica, el JES2 si arrancará aunque no encuentre alguna PROCLIB. Si tenemos acceso a TSO, podremos corregir el problema y volver a arrancar.

Si no tenemos acceso a TSO, como el JES2 debería haber arrancado, añadiremos las PROCLIB que falten mediante comando, arrancaremos manualmente las tareas necesarias para acceder a TSO y corregiremos el error. Después podremos hacer una nueva parada/arranque para comprobar que todo queda correctamente.

Además podremos hacer modificaciones sin necesidad de hacer un IPL del sistema para que los cambios surjan efecto.

Cuando intentamos buscar con “FIND” una operación concreta dentro de una aplicación de OPC, nos mostrará un mensaje indicando que no es un comando válido y tenemos que ir buscando uno por uno hasta encontrar la operación deseada. Si esa aplicación tiene 100 o más operaciones, pierdes mucho tiempo. Cuando estamos buscando una aplicación en la opción 5.2 de OPC si podremos buscar una concreta usando "LOCATE nombre_aplicacion" (o "LOC nombre_aplicación"), pero no servirá para buscar operaciones.

En la primera parte estuvimos instalando el sistema AsteriskNow y creando un nuevo usuario para ejecutar los scripts. En esta segunda y última parte, añadiremos los scripts que harán la llamada automática y haremos una prueba desde z/OS para confirma que funciona.

Vamos a empezar a configurar Asterisk. Ponemos la IP que apuntamos al principio (en mi caso, 192.168.1.21) en un navegador y entramos en la web de FreePBX.

Esta vez voy a crear un aviso telefónico automático cuando falle un job de OPC, es decir, recibiremos una llamada de teléfono que se realizará de forma automática y nos informará del job que ha terminado en error. A lo mejor no es una idea que se pueda utilizar en un entorno de Producción, pero me apetecía probarla.

Aquí pongo un vídeo del resultado.

En esta ocasión vamos a realizar la configuración del servidor/cliente SSH (Secure SHell) que tiene z/OS para poder conectarnos desde otras máquinas a Mainframe y viceversa. El objetivo de esto es poder iniciar scripts en otras máquinas (Linux, Windows, etc.) usando un JCL o poder lanzar un JCL mediante la ejecución de un script en otro servidor.

El servicio SSH (OpenSSH) se ejecuta en la parte Unix que tiene z/OS y es una de las herramientas que se incluyen en “IBM Ported Tools for z/OS”. Además, después de configurar este servicio, también podremos usar el servicio SFTP para transmitir ficheros de una forma más segura que con el FTP normal.

En esta entrada vamos a combinar varias cosas: una aplicación que sea cíclica con dos jobs que se ejecutará cada 10 minutos. Además el segundo job de esta aplicación, sólo se ejecutará si uno de los pasos del job anterior ha terminado con RC=04 y su estado es “completo”. Este segundo job añadirá una nueva aplicación al Current Plan usando OCL (OPC Control Language).

En OPC (TWS), para poder comprobar si las variables de OPC de un JCL son correctas, hay que submitirlo con algún error de sintaxis (para no ejecutar algo de forma indebida) y comprobar si falla por OJCV. En esta ocasión vamos a añadir una nueva opción a OPC que consiste en poder comprobar si las variables de OPC de un JCL son correctas sin tener que submitir ese JCL.

Esta nueva opción va a tener dos versiones, la primera que consiste en dar un comando para ejecutar un REXX y la segunda que consiste en ejecutar otro REXX, pero mediante una opción nueva en un panel. La segunda versión la veremos en otra entrada. 

Esta vez vamos a crear una tarea (STC) que se encargue de pasar salidas de spool a un dataset y, si se han copiado correctamente, las purgue. Esto lo haremos mediante un REXX que se estará ejecutando en bucle infinito y revisará todos los jobs del spool. Los copiará en diferentes miembros y purgará las salidas elegidas. Después, hará una pausa de 30 segundos antes de empezar de nuevo. Es importante decir que la tarea no consume máquina durante la pausa. Este REXX también crea un nuevo dataset, si detecta que el anterior se ha llenado. Cuando hay dos salidas con el mismo nombre, se sustituye las últimas letras del nombre por números. Pararemos la ejecución del bucle infinito borrando un fichero de control mediante otra tarea.

 

View Javier Fernández García's profile on LinkedIn

LINKEDIN

 

View Javier Fernández García's profile on Acclaim

ACCLAIM

 

dinoland site logo

DINOLAND

Search

© 2015-2020 EMUFRAME