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

Implementando TWS 8.6.0 (OPC) - Tercera Parte

En esta tercera parte, vamos a empezar copiando el miembro EQQCONO de la librería OPC.OP1C.SAMPJCL a la librería PROCLIB del sistema, en este caso, ADCD.Z113.PROCLIB.

 

Ahora entramos a la librería ADCD.Z113.PROCLIB.

 

Renombramos el miembro EQQCONO a OP1C. Este será el nombre de nuestra tarea del controller de OPC.

 

Ahora entramos para editar el miembro OP1C.

 

Ponemos OP1C como nombre de la tarea y TEAM1CTL como parámetro (tiene que tener el mismo nombre que le hayamos dado al miembro CONOP de la librería OPC.OP1C.EQQPARM)

  

Lo siguiente es revisar que todas las librerías que aparecen. tienen el nombre correcto.

La única, que habría que cambiar, sería la siguiente:

//EQQPRLIB  DD  DISP=SHR,DSN=OPC.OP1C.PRLIB

 

Ahora, volvemos a la librería OPC.OP1C.SAMPJCL y copiamos el miembro EQQTRA a la librería PROCLIB del sistema (ADCD.Z113.PROCLIB).

 

Vamos a la librería ADCD.Z113.PROCLIB y renombramos el miembro EQQTRA poniendo OP1T. Este será el nombre de nuestra tarea del tracker de OPC.

 

Entramos a editar el miembro OP1T.

 

Cambiamos el nombre de la tarea a OP1T y el parámetro PARM=’TRAP’ por PARM=’TEAM1TRK’. Se tiene que llamar igual que el miembro TRAP de OPC.OP1C.EQQPARM.

  

Hay que modificar la librería de la DD SYSDUMP ya que esa librería la usa el controller y no la pueden compartir. Si no lo modificamos, una de las dos tareas quedará esperando por datasets cuando las arranquemos.

//SYSMDUMP  DD  DISP=MOD,DSN=OPC.OP1T.SYSDUMP       

 

Salvamos y vamos a crear la librería OPC.OP1T.SYSDUMP ya que no existe.

Copiamos la librería OPC.OP1C.SYSDUMP y le ponemos el nombre OPC.OP1T.SYSDUMP, para que la use el tracker.

 

NOTA: También se puede crear una librería distinta para la DD EQQDUMP, por ejemplo, OPC.OP1T.EQQDUMP.

 

Ahora modificamos el miembro BATCHOPT de la librería OPC.OP1C.EQQPARM, para indicar el nombre del controller que hemos puesto. En este caso, ponemos OP1C en el parámetro SUBSYS. También comentamos el parámetro TPLGYPRM, porque no es necesario.

 

Vamos a empezar a compilar las EXITs de que usará el OPC. Las EXITs sirven para controlar los eventos que se producen, por ejemplo, poner un job como completado cuando ha terminado su ejecución y ha finalizado correctamente.

Para ello vamos a la opción 3.2 de ISPF y creamos la librería OPC.OP1C.OBJ. 

NOTA: La librería la creo en el volumen PROD01, como he hecho con las anteriores librerías, aunque no es obligatorio.

 

Una vez creada la librería, vamos a empezar a compilar las EXTIs:

EXIT7

Para compilar esta la exit "EXIT7" vamos a la librería OPC.OP1C.SAMPJCL y editamos el miembro EQQJES2. Confirmamos que los datos aparecen como en la imagen y submitimos.

La librería de la DD SYSLMOD es la librería donde se guardará el módulo ya compilado, en este caso usamos la librería ADCD.Z113.LPALIB, pero puede ser cualquier librería que esté definida en el miembro LPALST* de la librería ADCD.Z113.PARMLIB. Una vez modificado, submitimos.

NOTA: Hay que tener en cuenta que si tenemos dos módulos con el mismo nombre en dos librerías LPALIB se usará el de la librería que este primero en el miembro LPALST* de la librería ADCD.Z113.PARMLIB.

 

EXIT51

Para compilar esta EXIT, vamos a la librería OPC.OP1C.SAMPJCL y editamos el miembro EQQJES21.

 

Como hemos hecho en el caso anterior, modificamos la DD SYSLDMOD y ponemos la librería donde hayamos guardado el módulo anterior, en este caso, ADCD.Z113.LPALIB. Una vez hecho, submitimos.

 

Copiamos el miembro EQQJES2 a la misma librería, pero con nombre SMFEXITS para compilar las EXITs de SMF (IEFACTRT, IEFUJI e IEFU83).

 

Ahora lo editamos.

  

IEFUJI

Para la exit IEFUJI, editamos el miembro SMFEXITS con los siguientes datos y submitimos. También se guardará en la librería ADCD.Z113.LPALIB.

 

IEFU83

Igual que el caso anterior, editamos el JCL SMFEXITS con los datos de la imagen y submitimos. Si hemos puesto todo bien, terminará correctamente.

 

IEFACTRT

Como en los casos anteriores, editamos el JCL SMFEXITS con los datos de la imagen y submitimos.

 

Por último en esta entrada, vamos a la librería ADCD.Z113.LPALIB para confirmar que se encuentran las EXITs que hemos compilado.

 

En la siguiente tabla vemos el tipo de evento que admite cada EXIT. La tabla se puede encontrar en esta web de IBM.

Nombre de salidaTipo de salidaSalida de ejemploJCL de ejemplo / usermodSuceso admitidoTipo de suceso
IEFACTRT SMF EQQACTR1 EQQSMF Finalización de trabajo y paso 3J,3S
IEFUJI SMF EQQUJI1 EQQSMF Inicio de trabajo 2
IEFU83 SMF EQQU831 EQQSMF Fin del grupo de impresión, depurar (sólo JES3), soporte de desencadenamiento de conjunto de datos y soporte de cambio automático 4,5,S,T
EXIT7 JES2 EQQXIT74 EQQJES2/ EQQJES2U Salida de E/S de JCT para JES2, depurar 1,3P,5
EXIT51 JES2 EQQXIT51 EQQJES21/ EQQJES2V Salida de cambio de fase JES2 QMOD, z/OS 1.7 y posterior 1

 

 

Publish modules to the "offcanvs" position.