Implementando TWS 8.6.0 (OPC) - Quinta Parte - Final

Escrito por Javier

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.

Visto: 12676

Comentarios  

0 #21 Oskar 19-04-2018 11:46
@Javier, here: https://pastebin.com/00V2YEie
Citar
0 #22 Javier 19-04-2018 18:45
Hello Oskar

This is the error:
ASMA057E Undefined operation code - MODETAB

Please, check the following:
Check if SYS1.SISTMAC1(MODETAB) exists

If it exists, Add SYS1.SISTMAC1 to SYSLIB DD
//SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR
// DD DSN=SYS1.SISTMAC1,DISP=SHR

Submit it again.

I hope it helps you

Regards
Citar
0 #23 Oskar 24-04-2018 14:01
Javier, this solution of yours about MODETAB worked out. Thanks.
Now I just finished all the steps of this installation guide and non of the OPC options are accessible, only exception is "0 options", when trying to access all others I got msg "UNAUTHORIZED PROGRAM".

Also is it normal that the following message (also mentioned above in your guide) is reaping on the console every 40 seconds? Here is log from starting tracker OP1T https://pastebin.com/2iL5yQys

I noticed that when shutting down the z/os, after 's shutall' command the op1c and op1t doesn't stop, I need to stop them manually, is that ok?
Citar
0 #24 Javier 25-04-2018 01:53
Please check the following link "https://emuframe.com/index.php/tws-opc/18-impleme ntando-tws-8-6-0-opc-cuarta-parte"

You must have authorized APF the library of modules "SEQQLMD0" in the PROG ** member. You should have something similar:

APF ADD

DSNAME (TWS830.SEQQLMD0) VOLUME (XXXXXX) ---> Your Volume name

Check the IEFSSN member. You must have something similar:

SUBSYS SUBNAME (OP1C) INITRTN (EQQINITx) INITPARM ('0, x')

SUBSYS SUBNAME (OP1T) INITRTN (EQQINITx) INITPARM ('300, x')

NOTE: "x" is last letter of EQQINIT member. That member is in TWS830.SEQQLMD0

------------

You can stop it manually or add the stop commands in ADCD.*.PARMLIB(SHUTALL)
P OP1T
P OP1C
Citar
0 #25 Oskar 27-04-2018 16:13
I have check but this looks ok to me. Maybe I made some typo somewhere but for me everything looks like you instructed. I took few screenshots, would be great if you could have a look. Thank you. https://drive.google.com/file/d/1WYmy0QR6J5y1n_fmzERh806AkadmZurH/view?usp=sharing
Citar
0 #26 Javier 29-04-2018 21:54
Hello Oskar

The resource "TEAM1CTL" will be active when you create the long-term plan and current plan!
Citar
0 #27 Oskar 30-04-2018 20:20
Cito a Javier:
Hello Oskar

The resource "TEAM1CTL" will be active when you create the long-term plan and current plan!


Yes, but I can't access LTP or Database or any other option besides some in "0 Options". I receive "UNAUTHORIZED PROGRAM" error like mentioned earlier and I can't figure out what causes it because it seems I configured everything like you said (see scr https://drive.google.com/file/d/1WYmy0QR6J5y1n_fmzERh806AkadmZurH/view?usp=sharing on my google drive - APF ADD is added and IEFSSN is updated).
Citar
0 #28 Javier 01-05-2018 14:39
Hello Oskar

Which loadparm are you using?
Citar
0 #29 Oskar 02-05-2018 17:37
Cito a Javier:
Hello Oskar

Which loadparm are you using?


Hello,
I was using 0A82CSM1 in my hercules.cnf the whole time (not sure what "M1" stands for). Now I switched to 0A82DB to check if I can access TWS with it but I receive error "CSV003I REQUESTED MODULE EQQMAJOR NOT FOUND" when trying to start OP1C. fyi a checked and also now when using this new loadparm 0A82DB the IEFSSN* PROG*SMFPRM00 IKJTSO members didn't change and are the same as for my default loadparm 0A82CSM1 I was using for the installation.
Citar
0 #30 Giovani 23-05-2018 15:50
Javier Buenas!
¿Podría ayudarme con este error?

OPERATIONS PLANNING AND CONTROL UNAUTHORIZED PROGRAM
Citar

Escribir un comentario


Código de seguridad
Refescar