• 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) - Quinta Parte - Final

En esta última parte, vamos a crear los nodos de VTAM que necesita el OPC para establecer la comunicación entre el controller y el tracker. También corregiremos algunos detalles de la instalación que han quedado pendientes. Una vez hecho esto, daremos por finalizada la implementación básica de OPC. En otras entradas del blog, veremos cómo crear workstations, aplicaciones, calendarios, etc. 

Empezamos yendo a la librería TWS860.SEQQSKL0 para editar el miembro EQQLMTAB.

 

Como el job no tiene cabecera (jobcard), se la añadimos:

//OPCINSTA JOB (9999),'OPCSAMPLES',CLASS=A,MSGCLASS=Q, 

// MSGLEVEL=(1,1),REGION=0M,NOTIFY=&SYSUID             

 

Al final del JCL, modificamos la librería de la DD SYSLMOD indicando nuestra librería VTAMLIB del sistema. En este caso es ADCD.Z113.VTAMLIB. Una vez modificado, submitimos.

 

Vamos a la libreria ADCD.Z113.VTAMLIB y vemos que aparece el miembro EQQLMTAB.

 

Vamos a empezar a crear los nodos de VTAM. Entramos en la librería ADCD.Z113.VTAMLST y creamos los siguientes miembros:

Miembro AOP1C

Añadimos la siguiente información:

                VBUILD TYPE=APPL                                              

TEAM1CTL APPL ACBNAME=TEAM1CTL,                                              X

                              MODETAB=EQQLMTAB,                                       X

                              DLOGMOD=NCFSPARM                                        

 

NOTA: Prestad especial atención a la imagen, ya que os debe quedar de la misma forma (la posición de VBUILD TYPE=APPL, las "x" del final de las líneas, etc.)

 

Miembro AOP1T

Añadimos la siguiente información:

                 VBUILD TYPE=APPL                                              

TEAM1TRK APPL ACBNAME=TEAM1TRK,                                        X

                               MODETAB=EQQLMTAB,                                 X

                               DLOGMOD=NCFSPARM                                        

  

NOTA: Prestad especial atención a la imagen, ya que os debe quedar de la misma forma (la posición de VBUILD TYPE=APPL, las "x" del final de las líneas, etc.)

 

Miembro DOP1C

Añadimos la siguiente información:

                 VBUILD TYPE=CDRSC                                              

TEAM1TRK CDRSC CDRM=IS1MVS2         

 

Miembro DOP1T

Añadimos la siguiente información:

                  VBUILD TYPE=CDRSC                                            

TEAM1CTL  CDRSC CDRM=IS1MVS1        

 

Miembro FLAPPL

Añadimos la siguiente información:

*=================================================================*    

* APPL FOR OPC CONTROLLER FETCH LOG TASK                          *    

*=================================================================*    

               VBUILD  TYPE=APPL                                             

FL1LU01  APPL ACBNAME=FL1LU01,                                              X

                         MODETAB=EQQLMTAB,                                       X

                          DLOGMOD=NCFSPARM                                        

 

NOTA: Prestad especial atención a la imagen, ya que os debe quedar de la misma forma (la posición de VBUILD TYPE=APPL, las "x" del final de las líneas, etc.) 

 

Miembro FNAPPL

Añadimos la siguiente información:

*===============================================================*      

* APPL FOR DATA STORE COMMUNICATION TASK                               

*===============================================================*      

                  VBUILD  TYPE=APPL                                             

FN1LU01  APPL ACBNAME=FN1LU01,                                              X

                          MODETAB=EQQLMTAB,                                       X

                          DLOGMOD=NCFSPARM                                          

 

NOTA: Prestad especial atención a la imagen, ya que os debe quedar de la misma forma (la posición de VBUILD TYPE=APPL, las "x" del final de las líneas, etc.)

 

Ya hemos creado los nodos de VTAM necesarios. Ahora vamos a hacer las ultimas correcciones en algunas librerías para que todo funcione correctamente.

Copiamos la librería OPC.OP1C.MLOG y le ponemos el nombre OPC.OP1T.MLOG.

 

Ahora, copiamos la librería OPC.OP1C.EQQDUMP con el nombre OPC.OP1T.EQQDUMP.

 

Una vez hemos creado la librería, vamos al miembro OP1T de la librería ADCD.Z113.PROCLIB y lo editamos.

 

Modificamos las siguientes línea:

//EQQMLOG   DD  DISP=SHR,DSN=OPC.OP1T.MLOG    

//EQQDUMP   DD  DISP=SHR,DSN=OPC.OP1T.EQQDUMP   

  

El paso siguiente es muy importante porque activaremos la EXIT7 y la EXIT51, para que funcione correctamente el OPC. Vamos a la librería ADCD.Z113.PARMLIB y editamos el miembro JES2PARM.

  

Añadiremos la siguiente información, antes de la definición de los iniciadores, teniendo especial cuidado con las líneas que deben estar comentadas y las que no. 

LOAD(OPCAXIT7)                                     

EXIT(7) ROUTINES=OPCAENT7,STATUS=ENABLED           

LOAD(TWSXIT51)                                     

EXIT(51) ROUTINES=TWSENT51,STATUS=ENABLED          

 

Ahora vamos a crear el miembro EQQGJCCT, para que cuando arranquemos el OPC no de error, que es la tabla de mensajes del JOB COMPLETION CHECKER.

Más información sobre la tabla de mensajes aquí.

 

Para crearlo, creamos un nuevo JCL en cualquier librería, yo me he creado una librería llamada IBMUSER.JCLS, y ponemos lo siguiente:

//OPCINSTA JOB (9999),'OPCSAMPLES',CLASS=A,MSGCLASS=Q,      

// MSGLEVEL=(1,1),REGION=0M,NOTIFY=&SYSUID                      

//ASMH     EXEC PGM=ASMA90                               

//SYSPRINT DD  SYSOUT=*                     

//SYSLIB   DD  DISP=SHR,DSN=TWS860.SEQQMAC0(EQQJCCT)       

//SYSLIN   DD  DISP=SHR,DSN=OPC.OP1C.JCLIB(EQQGJCCT)   

//SYSUT1   DD  UNIT=SYSDA,SPACE=(CYL,(2,1))             

//SYSIN    DD  *                                         

 EQQJCCT S=1,T=SKIPSTA,M='IDCAMS SYSTEM SERVICES'        

 END                                                     

/*

 

NOTA: La librería de la DD SYSLIB tiene que ser la librería donde se encuentra el miembro EQQJCCT y la librería de salida (SYSLIN) la librería JCLIB de nuestra instalación

 

Submitimos el job, que finalizará correctamente.

 

El job EQQPCS01 de la librería OPC.OP1C.SAMPJCL, crea unos ficheros VSAM, pero el JCL no es correcto, porque crea ficheros VSAM sin separar el ".DATA" y ".INDEX" del nombre. Por ejemplo, crea la librería OPC.OP1CV.ADDATA, en vez de ser OPC.OP1CV.AD.DATA. Para corregirlo, simplemente modificamos las líneas donde se crean los ficheros VSAM y ponemos el nombre correcto. Si ya tenemos las librerías creadas, podemos borrarlas quitando los comentarios de los DELETE.

Ya que el JCL tiene más pasos, para evitar cortar el JCL, copiamos las líneas del primer paso (donde se crean los ficheros VSAM) y creamos en nuevo miembro.

 

Ahora editamos y submitimos el nuevo miembro creado.

 

Una vez hecho todo esto, es necesario hacer IPL para que carguen todas las modificaciones que hemos hecho en el sistema.

Una vez arrancado el sistema, vamos a la consola y ponemos los siguientes comandos, para activar las LUs que hemos creado:

v net,act,id=AOP1C

v net,act,id=AOP1T

v net,act,id=FLAPPL

v net,act,id=FNAPPL

v net,act,id=TEAM1CTL

v net,act,id=TEAM1TRK 

 

Ahora arrancamos el controller con el comando:

S OP1C

 

NOTA: Para pararlo, se usa el comando "P OP1C".

Aunque salga el mensaje “STC00036  IEFC452I OSER - JOB NOT RUN - JCL ERROR” el Controller quedará arrancado.

 

Ahora hay que arrancar el tracker usando el comando:

S OP1T

 

NOTA: Para pararlo, se usa el comando "P OP1T".

Los mensajes son debidos a que no está creado el Long Term Plan ni el Current Plan en OPC. Si queremos, podemos dejar parado el tracker hasta haber creado todos los recursos necesarios en OPC.

 05.54.08 STC00003  IST663I INIT OTHER REQUEST FAILED, SENSE=08570002

IST664I REAL  OLU=NETD.TEAM1TRK       REAL  DLU=NETD.TEAM1CTL      

IST889I SID = D2B3FE1128F22F6B                                     

IST264I REQUIRED RESOURCE TEAM1CTL NOT ACTIVE                       

IST314I END                                                         

05.54.28 STC00040  EQQV019E SESSION SETUP FAILED - PLU=TEAM1CTL NOT

 AVAILABLE                                      

                   

NOTA: Cuando arranquemos por primera vez el controller y el tracker pueden aparecer mensajes indicando que alguna librería se ha llenado (B37), si se para el controller o el tracker, rearrancar sin hacer nada más. Debería quedar correctamente.

Si al intentar arrancarlos una de las dos tareas se queda WAITING FOR DATASETS, es debido a que estamos usando la misma librería SYSDUMP en los miembros OP1C y OP1T de la librería ADCD.Z113.PROCLIB. Para solucionarlo, crear una librería distinta, por ejemplo OPC.OP1T.SYSDUMP, para el miembro OP1T.

 

Si todo ha arracando correctamente, vamos al menú principal de ISPF y entramos a OPC para configurar el controller.

 

Entramos en la opción 0. 

 

Vamos a la opción 1.

 

Marcamos con una barra "/" la opción que pone "OPC on same MVS" y ponemos el nombre del controller, en este caso, OP1C.

  

Hasta aquí llega esta guía básica para implementar OPC y que funcione.

Publish modules to the "offcanvs" position.