• 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 - Conectar un tracker a un controller de distinto sistema por TCPIP - Parte 1/2

En esta entrada se plantea la siguiente situación: ya tenemos un controller y un tracker de TWS en un sistema principal y, en otro sistema, queremos crear un tracker para conectarlo al controller del sistema principal. La comunicación entre controller y tracker puede ser por SNA, TCPIP o XCF. En este caso vamos a usar TCPIP. Dejo un vídeo del objetivo que queremos.

 

Empezaremos comprobando que llegamos por ping al sistema con el que vamos a conectar.

NOTA: Firewalls intermedios que bloqueen los puertos pueden afectar a la realización de esta configuración.


 

Una vez comprobado que hay comunicación entre el sistema principal y el otro sistema, vamos a crear el nuevo tracker.

Empezaremos ejecutando la utilidad EQQJOBS para crear de generar las librerías que usaremos para la implementación del tracker. Para poder ejecutar la utilidad EQQJOBS tendremos que asignar las siguientes librerías a nuestro procedimiento de logon de TSO.

TWS860.SEQQCLIB para la sentencia DD SYSPROC

TWS860.SEQQPNL0 para la sentencia DD ISPPLIB

TWS860.SEQQSKL0 y TWS860.SEQQSAMP para la sentencia DD ISPSLIB

En mi caso debo editar el procedimiento DBSPROCA.

 

Una vez tengamos las librerías incluidas, saldremos de la sesión de TSO y volveremos a logarnos para cargarlas. Después, ejecutaremos la utilidad EQQJOBS con el comando “TSO EQQJOBS”.

 

Si hemos hecho todo correctamente, se mostrará el panel de la imagen. Entraremos en la opción 1 – Create sample job JCL.

 

Antes de continuar, debemos crear, desde la opción 3.2 de ISFP, una librería particionada que contendrá los jobs de ejemplo que usaremos para crear el tracker. En mi caso, llamaré a la librería OPC.OP2C.SAMPJCL.

 

Continuando con la creación de los JCL de ejemplo, rellenaremos los datos como se ve en la imagen. Debemos poner la librería de salida de los ejemplos, una ficha job y los nombres de las cuatro librerías que se piden. Una vez hecho, pulsaremos intro.

 

En la siguiente entrada, rellenaremos los datos de los prefijos que tendrán los ficheros VSAM y los dataset normales. Además indicaremos el volumen dónde queremos guardarlo.

En el apartado “SYSCLONE” indicaremos N.

 

En el siguiente apartado indicaremos N en las dos opciones. No tendremos que modificar ningún dato más porque no se van a usar.

 

Las utilidades JAVA no las activaremos tampoco.

 

En la siguiente pantalla relativa a TCPIP, pondremos también N porque no vamos a usar la seguirdad SSL.

 

Una vez estén generados iremos a la librería que contiene los ejemplos.

 

Como un tracker sólo necesita las siguientes librerías, habrá muchas que no necesitemos, pero se crearán al submitir los jobs de ejemplo que tenemos. Hay varias opciones: crearlas todas y borrar las que no necesitemos, crear sólo las que necesitemos o crearlas todas y “dejarlas ahí”.

EQQMLIB   DD  DISP=SHR,DSN=TWS860.SEQQMSG0   

EQQMLOG   DD  DISP=SHR,DSN=OPC.OP2C.MLOG     

EQQPARM   DD  DISP=SHR,DSN=OPC.OP2C.EQQPARM  

SYSMDUMP  DD  DISP=MOD,DSN=OPC.OP2C.SYSDUMP  

EQQDUMP   DD  DISP=SHR,DSN=OPC.OP2C.EQQDUMP  

EQQBRDS   DD  SYSOUT=(A,INTRDR)               

EQQEVDS   DD  DISP=SHR,DSN=OPC.OP2C.EV       

EQQEVD01  DD  DISP=SHR,DSN=OPC.OP2C.EV01     

EQQSUDS   DD  DISP=SHR,DSN=OPC.OP2C.SU       

EQQJCLIB  DD  DISP=SHR,DSN=OPC.OP2C.JCLIB    

EQQINCWK  DD  DISP=SHR,DSN=OPC.OP2C.INCWORK  

EQQSTC    DD  DISP=SHR,DSN=OPC.OP2C.STC      

 

Yo lo haré de la siguiente forma. Editamos el miembro EQQPCS01 y borramos el primer paso que crea ficheros VSAM.

NOTA: Si nos confundimos al borrar, podemos generarlo de nuevo. También podemos editarlo en modo “VIEW”, para que no se guarden los cambios, y submitirlo.

 

Lo submitimos. Terminará correctamente.

 

Ahora entramos al job EQQPCS02 de la misma librería y lo submitimos. Terminará correctamente.

 

Tendremos las librerías de la imagen. Podremos borrar aquellas que no estén en el listado que puse arriba.

NOTA: Sólo quité el paso que crea los ficheros VSAM porque el resto son librerías particionadas que se pueden borrar fácilmente.

 

Deberían quedar las siguientes librerías.

 

Entraremos en la librería de ejemplo “SAMPJCL” y copiaremos el miembro EQQTRAP a la librería “EQQPARM”. Ese miembro contiene la configuración que usará el tracker.

 

Ahora entramos en el miembro EQQTRAP de la librería “EQQPARM” y vamos a crear nuevos miembros con las partes correspondientes del fichero. Usaremos el comando de bloque cc – cc, para copiar las partes que queremos, y el comando CREATE.

Vamos a crear el miembro TRAP. Para ello marcamos con "CC" en la línea que se muestra en la imagen.

 

Haremos lo mismo para crear el miembro STDEWTR.

 

Lo mismo con el miembro STDJCC.

 

Ya tenemos todos creados.

Ahora copiaremos el miembro EQQTRA de la librería SAMPJCL a la librería PROCLIB del sistema, por ejemplo, ADCD.Z113.PROCLIB.

 

Iremos a la librería PROCLIB y renombraremos EQQTRA por OP2T.

 

Entraremos dentro del miembro y lo renombraremos internamente también. Después, salvaremos los cambios.

NOTA: Podemos fijarnos que el parámetro “PARM” hace referencia al miembro TRAP de la librería EQQPARM.

 

Ahora vamos a editar el miembro TRAP de la librería EQQPARM para definir la configuración y conectar el tracker al controller por TCPIP.

Podremos a NO el parámetro NCFTASK y comentaremos las líneas que hacen referencia a “TRROPTS HOSTCON(SNA)”.

 

Añadiremos las siguientes líneas para definir la comunicación con el controller. El parámetro TCPHOSTNAME es la IP o el hostname del sistema principal que tiene el controller. Usaremos el puerto 8888. Debemos tener en cuenta que el puerto que pongamos en esta opción deberá coincidir con el puerto que tenga el controller, que lo definiremos más adelante. Además, cuando lo definamos, tendremos que usar un puerto “alto” y que no esté en uso porque los puertos del 1 al 1023, al menos en las versiones ADCD. Esto lo podemos verificar buscando la tarea TCPIP en SDSF.

TRROPTS  HOSTCON(TCP)              

         TCPHOSTNAME(‘192.168.1.51’) 

         TCPPORTNUMBER(8888)        

 

Bajaremos con F8 hasta encontrarnos con el parámetro TCPOPTS. Este parámetro define la configuración local del tracker. Debemos quitar los comentarios a las líneas que se ven en la imagen.

Tendremos que poner la IP del sistema dónde está el tracker y como número de puerto pondremos uno alto. Yo usaré el puerto 4348.

El parámetro TCPIPJOBNAME es el nombre de la  tarea “STC” que corresponde a TCPIP.

El parámetro SSLLEVEL lo pondremos a OFF “SSLLEVEL(OFF)”.

 

Hasta aquí la primera parte. En la segunda parte terminaremos de implementar el tracker, haremos la configuración del controller del sistema principal y probaremos que todo funciona.

 

 

Publish modules to the "offcanvs" position.