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

Cambiando de PROCLIB estática a dinámica

En esta entrada vamos a definir las librerías PROCLIB de forma dinámica. Imaginemos que tenemos las librerías definidas de forma estática. Si alguien renombra una de las librerías por error o se escribe mal el nombre de alguna, el JES2 no arrancará y la resolución puede demorarse mucho.

Con las librerías definidas de forma dinámica, el JES2 si arrancará aunque no encuentre alguna PROCLIB. Si tenemos acceso a TSO, podremos corregir el problema y volver a arrancar.

Si no tenemos acceso a TSO, como el JES2 debería haber arrancado, añadiremos las PROCLIB que falten mediante comando, arrancaremos manualmente las tareas necesarias para acceder a TSO y corregiremos el error. Después podremos hacer una nueva parada/arranque para comprobar que todo queda correctamente.

Además podremos hacer modificaciones sin necesidad de hacer un IPL del sistema para que los cambios surjan efecto.

Primero vamos a comrobar si tenemos las librerías definidas de forma estática o dinámica. Para ello vamos a SDSF y damos el comando “$D PROCLIB” con barra “/” al ser desde SDSF.

 

Si no tenemos ninguna dinámica, saldrá un mensaje indicando “NO SELECTABLE ENTRIES FOUND MATCHING SPECIFICATION”.

 

Para saber las librerías estáticas que tenemos definidas, lo veremos en la tarea del JES2. En el caso de versiones ADCD, comprobaremos la librería ADCD.XXXX.PROCLIB, en mi caso, ADCD.Z113.PROCLIB. Las librerías que están concatenadas en la DD “PROC00” son las PROCLIB definidas de forma estática.

 

 Nos apuntamos el nombre de las librerías que tenemos en uso, en mi caso son:

USER.PROCLIB

ADCD.&SYSVER..PROCLIB

IOE.SIOEPROC

EOY.SEOYPROC

HLA.SASMSAM1

SYS1.PROCLIB

 

Ahora vamos a modificar los parámetros de arranque de JES2. Para saber cuál es el miembro que debemos editar, nos fijaremos en el parámetro “MEMBER” de la tarea JES2. En mi caso, se usa el miembro JES2PARM de la PARMLIB correspondiente.

Para saber en qué PARMLIB está, vamos a SDSF y damos el comando “D IPLINFO” con barra “/” delante al ser desde SDSF.

 

Tendremos que saber que miembro de los parámetros de IPL está en uso. En mi caso, está en uso el miembro LOADAC de la librería SYS1.IPLPARM del dispositivo 0A82.

 

En el caso de las distribuciones ADCD, la librería SYS1.IPLPARM no está catalogada, por lo tanto, tenemos que saber qué nombre de volumen tiene asociado el dispositivo 0A82.

Usando el comando “D U,,,0A82” desde el SDSF, podremos saber el nombre de volumen asociado.

 

Vemos que la unidad 0A82 se corresponde con el volumen ZDSYS1.

 

Vamos a la opción 3.4 de ISPF y buscamos la librería SYS1.IPLPARM en el volumen ZDSYS1.

 

Entramos en el miembro LOADAC. Vemos que están en uso las librerías:

USER.PARMLIB      

ADCD.Z113.PARMLIB 

SYS1.PARMLIB      

 

Ahora tendremos que buscar el miembro JES2PARM en esas librerías siguiendo el orden. En mi caso está en la segunda librería, ADCD.Z113.PARMLIB. Lo editamos.

NOTA: Si está en varias librerías, se estará usando la librería que esté antes la concatenación de PARMLIB.

 

Añadiremos lo siguiente:

PROCLIB(PROC00) DD(1)=(DSN=USER.PROCLIB),               

                DD(2)=(DSN=ADCD.&SYSVER..PROCLIB),      

                DD(3)=(DSN=IOE.SIOEPROC),               

                DD(4)=(DSN=EOY.SEOYPROC),                

                DD(5)=(DSN=HLA.SASMSAM1),               

                DD(6)=(DSN=SYS1.PROCLIB),UNCONDITIONAL  

 

El parámetro “UNCONDITIONAL” sirve para cargar las PROCLIB aunque alguna no esté disponible. Es importante añadirlo porque si falta una librería, el resto se cargarán, podremos añadir la que falta por comando y corregir el error.

NOTA: Comprobar que las comas y paréntesis están correctamente.

 

Ahora volvemos a la tarea JES2 de la librería ADCD.XXXX.PROCLIB y la modificamos. Debemos poner asteriscos en las librerías de la DD “PROC00” para que deje de estar en uso.

Lo hacemos lo último por si se cae el sistema antes de que se hayamos modificado el miembro JES2PARM.

 

Por último, paramos y arrancamos el sistema y, si no hemos cometido errores, ya tendremos definidas las librerías PROCLIB de forma dinámica.

Cuando arranquemos el sistema, podremos comprobar con el comando “$D PROCLIB” que están cargadas correctamente.

 

De forma opcional, podemos hacer una prueba añadiendo una PROCLIB que no exista para confirmar que el sistema arranca correctamente. Yo he añadido una llamada “LIBRER.PRUEBA” manteniendo el parámetro “UNCONDITIONAL”.

 

Comprobamos que la librería, que nos hemos inventado, LIBRER.PRUEBA, da un error indicando “ALLOCATION FAILED” y no ha sido cargada, pero el resto de librerías han cargado correctamente.

 

 En la próxima entrada haremos modificaciones sobre las librerías PROCLIB usando comandos.

 

Publish modules to the "offcanvs" position.