• 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.

TWS/OPC/IWS - Implementando Tivoli Workload Scheduler 9.3 - 1/3

Hace tiempo escribí cómo implementar Tivoli Workload Scheduler 8.6, en esta ocasión será la versión 9.3. Desde hace un tiempo le cambiaron el nombre al producto y le empezaron a llamar IBM Z Workload Scheduler (IWS). Antes de llamarse Tivoli Workload Scheduler (TWS), se llamaba Operations Planning and Control/ESA (OPC/ESA) o, simplemente, OPC.

Es un proceso muy parecido, aunque he cambiado el orden de los pasos para adaptarme al manual de IBM. La configuración será un Controller y un Tracker en el mismo sistema.

Como en otras ocasiones, os dejo el enlace al manual de IBM:

IBM Workload Scheduler for z/OS 9.3 - Planning and Installation

 

En el caso del sistema que utilizo, el nombre de las librerías de TWS empieza por TWS930.

 

Vamos a crear dos librerías que usaremos más adelante.

Librería que contendrá los jobs de ejemplo para crear todas las librerías que usaremos. En mi caso la llamaré OPC.S0W1.SAMPJCL. Debe tener las características de la imagen:

 

Debemos crear otra librería para los esqueletos de los jobs. La llamaré OPC.S0W1.SKELS. Debe tener las características mostradas en la imagen:

 

Para generar las librerías de instalación, utilizaremos la CLIST llamada EQQJOBS. Para poder utilizarla, antes deberemos alocar las siguientes librerías a nuestra sesión de TSO:

SEQQCLIB a la DD SYSPROC

SEQQPNL0 a la DD ISPPLIB

SEQQSKL0, SEQQSAMP y la librería de esqueletos que acabamos de crear (OPC.S0W1.SKELS) a la DD ISPSLIB.

El procedimiento de logon de TSO que utilizamos lo podemos ver cuando los logamos. En mi caso, ISPFPROC.

 

Estos procedimientos de logon estarán dentro de una de las librerías PROCLIB que usemos en nuestro sistema. En mi caso, ADCD.Z23B.PROCLIB.

Añado la librería TWS930.SEQQCLIB a la DD SYSPROC.

 

Añado la librería TWS930.SEQQPNL0 a la DD ISPPLIB.

 

Añado las librerías TWS930.SEQQSKL0, TWS930.SEQQSAMP y OPC.S0W1.SKELS a la DD ISPSLIB.

 

Salimos y nos logamos de nuevo a TSO para refrescar las librerías. Usaremos el comando .

007 watermark

 

Salimos y nos logamos de nuevo a TSO para refrescar las librerías. Usaremos el comando TSO EQQJOBS.

007 watermark

 

Aparecerá el siguiente menú. Debemos empezar entrando en la opción 2 – Generate batch-job skeletons. Una vez hecha esta opción, ya podremos realizar los pasos de la opción 1.

007 watermark

 

Tendremos que rellenar los siguientes campos:

Batch-job skeletons. Librería de esqueletos que creamos anteriormente. OPC.S0W1.SKELS.

Message library name. Librería existente de mensajes de TWS. En mi caso, TWS930.SEQQMSG0

Parameter library. Librería que se creará y contendrá los parámetros. OPC.S0W1.PARM.

Member in parameter  library. Miembro que contendrá los parámetros de BATCHOPT. Le llamaré igual, para evitar confusiones.

Checkpoint dataset. Librería que se creará para el checkpoint. OPC.S0W1.CKPT.

007 watermark

 

Pulsamos intro y rellenamos los siguientes datos en el nuevo panel.

Non-VSAM dsn prefix. Prefijo para los ficheros que no son VSAM. Usaré: OPC.S0W1

VSAM dsn prefix. Prefijo para los ficheros que son VSAM. Usaré: OPC.S0W1

Unit name. Nombre esotérico de la unidad para crear ficheros o, simplemente, 3390.

Unit name (temp ds). Nombre esotérico de la unidad para crear ficheros o 3390.

Unit name (sort ds). Nombre esotérico de la unidad para crear ficheros o 3390.

SYSOUT class. Clase para la SYSOUT, en mi caso *.

007 watermark

 

Pulsamos intro. El siguiente panel lo dejaré por defecto ya que no usaré ni FTAs, ni Restart and Clean Up ni Java, menos la opción “FORMATTED REPORT OF TRACKLOG EVENTS”, que lo pondré a Y.

007 watermark

 

Al pulsar intro, se crearán los ficheros correspondientes y luego aparecerá un mensaje indicando “PROCESS COMPLETED”. Ahora entramos en la opción 1 – Create simple job JCL.

007 watermark

007 watermark

 

Debemos rellenar los siguientes datos:

Sample job JCL. Librería que creamos al principio. En mi caso, OPC.S0W1.SAMPJCL.

Job statement information. Cabecera que tendrán los jobs.

Message library name. Librería **. SEQQMSG0 de TWS. En mi caso, TWS930.SEQQMSG0.

Data library name. Librería **. SEQQDATA de TWS. En mi caso, TWS930. SEQQDATA

Parameter library. Librería de parámetros que usamos en el pasos anteriores. En mi caso, OPC.S0W1.PARM

Checkpoint dataset. Librería de checkpoint que usamos en el pasos anteriores. En mi caso, OPC.S0W1.CKPT

007 watermark

 

Pulsamos intro y rellenaremos lo siguiente en el panel.

Non-VSAM dsn prefix. El mismo que usamos en pasos anteriores. En mi caso, OPC.S0W1.

VSAM dsn prefix. El mismo que usamos en pasos anteriores. En mi caso, OPC.S0W1.

Unit name. Nombre de la unidad, en mi caso, 3390.

Primary volume serial. Volumen del sistema para crear los ficheros VSAM. En mi caso, USER10.

Backup  volume serial. Volumen del sistema para crear los ficheros VSAM. En mi caso, USER10.

SYSOUT class. Clase de salida. En mi caso, *.

El resto de parámetros los dejaré como vienen.

007 watermark

 

El siguiente panel, dejo ambas opciones a No.

007 watermark

 

En las utilidades Java también pondré N ya que no las voy a usar.

007 watermark

 

De las funciones del panel siguiente, sólo activaré la opción MLOG Switch que consiste en tener dos ficheros de MLOG que se van cambiando cuando llega a un número determinado de registros. Además, el MLOG antiguo se copia a un GDG para guardarlo.

007 watermark

 

La última opción que tendremos será la de poder de crear backup de los ficheros de configuración, Long Term Plan, Current Plan, etc. También podremos restaurarlos.

En el caso de no indicar ningún nombre para los procedimientos, se usarán los nombres por defecto descritos en el manual.

007 watermark

 

Cuando pulsemos intro, se crearán los ficheros.

007 watermark

 

Aparecerá un mensaje indicando “PROCESS COMPLETED”. La opción 3 – Generate Data Store Samples, no la voy a utilizar.

Entramos en la opción 4 – Generate WAPL samples. Esta opción genera los ficheros necesarios para utilizar “Workload Automation Programming Language”.

007 watermark

 

Modificaré los siguientes datos:

Sample job JCL. Fichero creado en pasos anteriores que contendrá los jobs de ejemplo. OPC.S0W1.SAMPJCL.

WAPL data maps. Librería **.SEQQWAPL de TWS. En mi caso, TWS930.SEQQWAPL.

MISC library. Librería **.SEQQMISC de TWS. En mi caso, TWS930. SEQQMISC.

Message library name.  Librería **.SEQQMSG0 de TWS. En mi caso, TWS930. SEQQMISC.

REXX Libraries. Librería opcional de REXX. Si usamos compilador, será la librería **.SEAGLPA. Si no lo usamos, será **.SEAGALT.

Subsys. Nombre que tendrá el subsistema. En mi caso, usaré OPCC.

El resto los dejo por defecto.

007 watermark

 

Se generarán los ficheros necesarios.

024 watermark

 

Siguiendo el mismo orden de pasos del manual, vamos a instalar las exits de JES2 y SMF.

Estas exits sirven para controlar los estados por los que pasa un job y generar eventos (job iniciado, en ejecución, terminado, etc.) en TWS.

007 watermark

 

Debemos crear una librería para almacenar la compilación de las exits. Usaré el nombre OPC.S0W1.OBJ y debe tener las características de la imagen.

007 watermark

 

Buscamos las librerías creadas. Editamos el job EQQJES2 de la librería **.SAMPJCL para crear la exit EXIT7 y ajustándolo a las librerías del sistema. Después lo ejecutamos.

En mi caso, la librería target de JES2 es la MVS.MVST.SMPMTS.

La librería donde se guardará el módulo final (DD SYSLMOD) será ADCD.Z23B.LPALIB.

Para saber las librerías LPALIB que tenemos disponibles, buscaremos el miembro LPALSTxx de la PARMLIB.

007 watermark

007 watermark

 

Terminará correctamente y ya tendremos el módulo en la librería LPALIB.

007 watermark

 

Ahora editaremos el job EQQJES21 para crear la exit EXIT51. Los cambios serán los mismos que en el job anterior. Este job tiene un error en la línea 61 ya que falta la coma al final de la línea. La añadimos.

Lo ejecutamos y tendremos la exit en la librería LPALIB.

007 watermark

007 watermark

007 watermark

 

Ahora queda por compilar las tres exits de SMF: IEFACTRT, IEFUJI, IEFU83. El manual de IBM, indica utilizar el job EQQSMF para hacer esto instalándolo como USERMOD, pero yo voy a utilizar otro método.

Usando el job EQQJES2 como base, simplemente tendremos que hacer los cambios mostrados en la imagen para compilar los ejemplos EQQACTR1, EQQUJI1, EQQU831.

Para la exit IEFACTRT haremos los siguientes cambios y ejecutaremos el job.

007 watermark

 

Para la exit IEFUJI haremos los siguientes cambios y ejecutaremos el job.

007 watermark

 

Para la exit IEFU83 haremos los siguientes cambios y ejecutaremos el job.

007 watermark

 

Ya tendremos todos los módulos compilados.

007 watermark 

Hasta aquí esta primera parte. En el siguiente enlace podéis encontrar la segunda parte: TWS/OPC - Implementando Tivoli Workload Scheduler 9.3 - 2/3

 

 

 

Publish modules to the "offcanvs" position.