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

Conectando dos zOS por XCF (Sysplex) - Primera Parte

Vamos a conectar en anillo dos Hércules distintos, que pueden estar en el mismo PC o no, para formar un sysplex. Esta comunicación se va a hacer mediante CTC (Channel To Channel), ya que no disponemos de Coupling Facility. Esta entrada la voy a hacer con la versión 1.10 de ADCD, ya que es la versión que tiene más gente.

Lo primero que necesitamos es la versión 4.0 de Hércules (Hyperion), concretamente la versión del 2016-04-23 (si hay una posterior, supongo que debería funcionar también). Podemos encontrarla aquí:

http://www.softdevlabs.com/hyperion.html

Y también tener instalada la aplicación CTCI-WIN:

http://www.softdevlabs.com/ctci-win.html

Una vez tenemos esa versión de Hércules (importante), tendremos crear dos discos nuevos para usarlo en el sistema (Creando discos en Hercules). Yo los he llamado SHR001 y SHR002.

Es importante crear los dos porque luego los compartiremos con el otro sistema.

Vamos a hacer un procedimiento largo, creando un sysplex nuevo. A lo mejor se podría aprovechar el sysplex que viene en el ADCD (ADCDPL), pero no lo he probado.

 

Empezamos buscando la librería SYS1.IPLPARM. Hay que poner el nombre del volumen en el que está (ZASYS1) porque la librería no está catalogada.

  

Entramos en la librería.

 

Buscamos el miembro LOAD con el que vamos a querer arrancar el sistema, por ejemplo, si arrancamos con el LOADPARM 0A95CS, entraremos en el miembro LOADCS o si arrancamos con el LOADPARM 0A95AC, entraremos en el miembro LOADAC.

Yo voy a trabajar con el LOADPARM 0A95CS.

 

Nos fijamos en el número de IODF (Input/output definition file) que usa (el 99) y en fichero IEASYM que usa (el 00).

Más información sobre el IODF.

https://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.ieag800/iea3g816.htm

También tenemos que elegir el nombre de Sysplex que queremos poner, en mi caso, PLEXHERC.

 

Volvemos al panel principal de ISPF, entramos en la opción M (More) y luego en la opción 4 HCD (Hardware Configuration Dialogs). Vamos a entrar en esta opción para comprobar los CTC que tenemos definidos en el sistema. En las versiones ADCD suelen venir definidos los CTC 0E20, 0E21, 0E22, 0E23, 0E40, 0E41, 0E42 y 0E43.

 

Elegimos la opción 1 y luego en el fichero ponemos “SYS1.IODF99”.

 

Entramos en la opción 4 (Control units).

 

Vamos al final y confirmamos que están definidos los CTCs que hemos dicho antes. Dos de estos CTCs los usaremos para la comunicación entre los dos sistemas que vamos a conectar.

 

Salimos de HCD y vamos a la opción 3.4 de ISPF. Buscamos la librería SYS1.SAMPLIB.

 

Entramos en la librería, buscamos el miembro IXCSYSPF y lo editamos.

 

Le ponemos una job card, por ejemplo:

//IXCSYSP1 JOB CLASS=A,MSGCLASS=Q,MSGLEVEL=(1,1),NOTIFY=&SYSUID

 

Ahora hacemos las siguientes modificaciones:

DEFINEDS SYSPLEX(PLEXHERC) 

         DSN(SYS1.PLEXHERC.CDS01) VOLSER(SHR001)

Y más abajo también:

DEFINEDS SYSPLEX(PLEXHERC)                    

         DSN(SYS1.PLEXHERC.CDS02) VOLSER(SHR002)

 

Ponemos un dataset en el volumen SHR001 y el otro, en el SHR002. En caso de que uno no sea accesible, utilizará el segundo. Si los ponemos los dos en el mismo volumen y se estropea, no podremos arrancar el sistema.

 

Submitimos el job y termina correctamente.

 

Ahora buscamos, en la misma librería, el miembro BPXISCDS y lo editamos.

 

Añadimos una job card al principio:

//BPXISCD1 JOB CLASS=A,MSGCLASS=Q,MSGLEVEL=(1,1),NOTIFY=&SYSUID

 

Modificamos lo siguiente para poner el nombre que le hemos dado al Sysplex.

DEFINEDS SYSPLEX(PLEXHERC)  

DSN(SYS1.PLEXHERC.OMVS.CDS01) VOLSER(SHR001)

Y más abajo:

DEFINEDS SYSPLEX(PLEXHERC)

DSN(SYS1.PLEXHERC.OMVS.CDS02) VOLSER(SHR002)

 

Lo submitimos y termina correctamente.

 

Ahora buscamos el miembro IWMFTCDS y lo editamos.

 

Añadimos la job card:

//FMTCDS1 JOB CLASS=A,MSGCLASS=Q,MSGLEVEL=(1,1),NOTIFY=&SYSUID 

 

En el JCL solo viene para definir una librería para el WLM, podemos duplicar las líneas para crear dos en un mismo JCL. Modificamos lo siguiente:

DEFINEDS SYSPLEX(PLEXHERC)

         DSN(SYS1.PLEXHERC.WLM.CDS01) VOLSER(SHR001)

Y más abajo:

DEFINEDS SYSPLEX(PLEXHERC)

         DSN(SYS1.PLEXHERC.WLM.CDS02) VOLSER(SHR002)

 

Lo submitimos y termina correctamente.

 

Ahora editamos el miembro IXCARMF.

 

Añadimos lo siguiente al principio:

//IXCARMF1 JOB CLASS=A,MSGCLASS=Q,MSGLEVEL=(1,1),NOTIFY=&SYSUID 

 

Modificamos lo siguiente:

DEFINEDS SYSPLEX(PLEXHERC)                      

     DSN(SYS1.PLEXHERC.ARM.CDS01) VOLSER(SHR001)

Y más abajo:

DEFINEDS SYSPLEX(PLEXHERC)                      

     DSN(SYS1.PLEXHERC.ARM.CDS02) VOLSER(SHR002)

 

Submitimos y termina correctamente.

 

Vamos con el penúltimo JCL que vamos a submitir. Se trata del IXCSFMF.

 

Añadimos la job card:

//IXCSFMF1 JOB CLASS=A,MSGCLASS=Q,MSGLEVEL=(1,1),NOTIFY=&SYSUID

 

Modificamos lo siguiente:

DEFINEDS SYSPLEX(PLEXHERC)                   

     DSN(SYS1.PLEXHERC.SFM.CDS01) VOLSER(SHR001)

Y más abajo:

DEFINEDS SYSPLEX(PLEXHERC)                   

     DSN(SYS1.PLEXHERC.SFM.CDS02) VOLSER(SHR002)

 

Submitimos y termina bien.

 

El último JCL que vamos a submitir lo tenemos que crear a mano, ya que no viene en los ejemplos de la librería SYS1.SAMPLIB. Yo le voy a llamar IXCLOGR. Para crearlo, entramos al miembro IXCSFMF, ponemos una “C” en la primera línea para copiarla y usamos el comando “CREATE IXCLOGR”.

 

Entramos y lo editamos.

 

Añadimos el siguiente JCL:

//*INVCDS    JOB

//*

//* SAMPLE JCL TO FORMAT THE PRIMARY AND ALTERNATE

//*   COUPLE DATA SETS FOR SYSTEM LOGGER (LOGR)

//*

//* COUPLE DATA SET ALLOCATION RULES:

//*

//*   1. SYSPLEX NAME IS REQUIRED AND IS 1-8 CHARACTERS

//*   2. SYSPRINT DD IS A REQUIRED DD STATEMENT FOR FORMAT UTILITY

//* MESSAGES

//*   3. SYSIN DD IS A REQUIRED DD STATEMENT FOR FORMAT UTILITY

//* CONTROL STATEMENTS

//*

//*

//******************************************************************

//STEP1     EXEC  PGM=IXCL1DSU

//SYSPRINT  DD    SYSOUT=*  

//SYSIN     DD    *

     DEFINEDS SYSPLEX(PLEXHERC)

              DSN(SYS1.PLEXHERC.LOGR.CDS01) VOLSER(SHR001)

          DATA TYPE(LOGR)

               ITEM NAME(LSR) NUMBER(10)

               ITEM NAME(LSTRR) NUMBER(10)

               ITEM NAME(DSEXTENT) NUMBER(20)

     DEFINEDS SYSPLEX(PLEXHERC)

              DSN(SYS1.PLEXHERC.LOGR.CDS02) VOLSER(SHR002)

          DATA TYPE(LOGR)

               ITEM NAME(LSR) NUMBER(10)

               ITEM NAME(LSTRR) NUMBER(10)

               ITEM NAME(DSEXTENT) NUMBER(20) 

/*

 

 

Lo submitimos y termina correctamente.

 

Hasta aquí este primer artículo. En total serán tres entradas. En la próxima modificaremos todos los parámetros necesarios de la Parmlib. 

Publish modules to the "offcanvs" position.