En la segunda parte creamos los dataset que usará TWS. También creamos y editamos los ficheros de configuración que se usaran para Controller y Tracker. En esta tercera entrada terminaremos de implementar la herramienta.
Volvemos a la librería OPC.S0W1.SAMPJCL y copiamos los miembros EQQCONO y EQQTRA a la PROCLIB del sistema. El miembro EQQCONO será el Controller, con el nombre OPCC. El miembro EQQTRA será el Tracker, con el nombre OPCT.
Ahora editamos el miembro OPCC que acabamos de copiar a la PROCLIB.
Pondremos el nombre de la tarea en la cabecera (OPCC) y el fichero de parámetros que creamos en pasos anteriores (OPCCPARM).
Bajamos un poco y editamos la DD EQQPRLIB para poner la librería correcta.
Ahora editamos el miembro OPCT. Pondremos el nombre de la tarea en la cabecera (OPCT) y el fichero de parámetros que creamos en pasos anteriores (OPCTPARM).
CREANDO NODOS DE VTAM.
La comunicación entre Controller y Tracker la haremos por VTAM. Debemos crearlos en la librería **.VTAMLST correspondiente a nuestro sistema. Para ello, comprobaremos la tarea VTAM en la PROCLIB.
Controller. He creado un miembro llamado AOPCC con los datos de la imagen. El nombre de la aplicación y el ACBNAME debe ser el mismo. En mi caso, el nombre que puse en el fichero de parámetros del controller (OPCCPARM) fue NCFOPCC.
NOTA: Fijaos en la imagen para codificarlo correctamente.
VBUILD TYPE=APPL
NCFOPCC APPL VPACING=10, C
ACBNAME=NFCOPCC
Tracker. He creado un miembro llamado AOPCT con los datos de la imagen. El nombre de la aplicación y el ACBNAME debe ser el mismo. En mi caso, el nombre que puse en el fichero de parámetros del controller (OPCCPARM) fue NCFOPCT.
NOTA: Fijaos en la imagen para codificarlo correctamente.
VBUILD TYPE=APPL
NCFOPCT APPL ACBNAME=NCFOPCT, C
MODETAB=EQQLMTAB, C
DLOGMOD=NCFSPARM
Vamos a añadir ambos miembros a la inicialización de VTAM para que arranquen los nodos automáticamente después de un IPL. En mi caso es el miembro ATCCON00 de la VTAMLST.
Ahora debemos crear la modetab EQQLMTAB en la librería VTAMLIB de nuestro sistema. Para ello, editamos y submitimos el job EQQLMTAB de la librería **.SEQQSKL0 de TWS.
Añadimos la cabecera del job. También comprobaremos que la librería VTAMLIB de la DD SYSLMOD sea la correcta. Comprobamos que el job termina correctamente.
Ahora vamos a crear el miembro EQQGJCCT, que es la tabla de mensajes del JOB COMPLETION CHECKER. Para ello, entramos a la librería **.SEQQSAMP y editamos el miembro EQQJCCTB. Añadimos una cabecera al job y ajustamos las librerías para adaptarlas a nuestro sistema.
Además debemos sustituir la primera línea de la SYSIN por la siguiente:
EQQJCCT S=1,T=SKIPSTA,M='IDCAMS SYSTEM SERVICES'
Ejecutamos el job y comprobamos que termina correctamente.
ACCEDER A OPC DESDE ISPF.
Vamos a cambiar el panel de ISPF para añadir una opción acceder a OPC. Para saber el nombre del panel a editar, pondremos el comando “PANELID”.
Añadimos una nueva opción en el panel deseado.
Añadimos la siguiente línea dentro de las opciones:
O,'PANEL(EQQOPCAP) NEWAPPL(EQQA)'
Por último, añadiremos las últimas librerías al procedimiento de logon de TSO.
Añadimos las siguientes líneas en las DD de ISPPLIB:
// DD DISP=SHR,DSN=TWS930.SEQQGENU
// DD DISP=SHR,DSN=TWS930.SEQQPENU
En las DD de ISPMLIB:
// DD DISP=SHR,DSN=TWS930.SEQQMSG0
En las DD de ISPTLIB:
// DD DISP=SHR,DSN=TWS930.SEQQTBL0
Al final del fichero, añadimos tres DD nuevas:
//EQQMLIB DD DISP=SHR,DSN=TWS930.SEQQMSG0
//EQQMLOG DD DISP=SHR,DSN=OPC.S0W1.MLOG
//EQQTMPL DD DISP=SHR,DSN=TWS930.SEQQLENU
Vamos a corregir los últimos detalles.
Haremos una copia del dataset **.SYSDUMP con el nombre **.SYSDUMPT. En mi caso, OPC.S0W1.SYSDUMPT.
Para que funcione correctamente el intercambio de MLOG, debemos copiar a la PROCLIB el miembro EQQSMLOG de la librería de ejemplos, en mi caso, OPC.S0W1.SAMPJCL.
Ese procedimiento utiliza como sysin el miembro EQQREPRO de la librería **.SEQQSAMP. Debemos copiarlo de esa librería a la librería de parámetros de OPC, en mi caso, OPC.S0W1.PARM.
Crearemos dos ficheros MLOG para el tracker ya que no puede compartirlos con el controller.
Las características de los dataset son las mismas que los ficheros MLOG del controller. Los llamaré:
OPC.S0W1.MLOGT
OPC.S0W1.MLOGT2
Por último, modifico la tarea OPCT de la PROCLIB para utilizar los ficheros MLOG que acabamos de crear.
Ya hemos hecho todos los pasos para una instalación básica. Como no hemos ido activando la configuración de forma dinámica, ahora haré IPL.
Una vez arrancado el sistema, arrancaremos el controller (OPCC) y el tracker (OPCT).
NOTA: Cuando paremos la tarea del controller, se ejecutará automáticamente el procedimiento EQQSMLOG que copiará el MLOG a un GDG.
Arrancará correctamente.
Arrancaremos el tracker. Comando: S OPCT
Aparecerá el siguiente mensaje en el tracker:
EQQV019E SESSION SETUP FAILED - PLU=NCFOPCC NOT AVAILABLE
Esto es debido a que no existe ni el Long Term Plan ni el Current Plan, por lo tanto, no hay comunicación entre controller y tracker. Una vez creados, este error no aparecerá.
Entramos en OPC.
Entramos en la opción 0 - OPTIONS para configurar el controller.
Opción 1 – SUBSYSTEM.
Seleccionaremos la opción “OPC on same MVS”. Cuyo tipo de conexión es local (L). En controller pondremos OPCC. Y pondremos la barra en la columna S para seleccionarlo.
Ya estaría terminada esta implementación básica de Tivoli Workload Scheduler 9.3.0 en z/OS. Espero que os sirva de referencia para poder instalar el producto.