En la entrada anterior instalé la parte del servidor de Model9 en zCX y ahora instalaré el agente en z/OS para conectar con el servidor. He preferido hacerlo en partes para que no sean artículos demasiado largos.
Seguiré la siguiente documentación:
Para instalar el agente, empezamos comprobando la versión de JAVA de z/OS.
cd /usr/lpp/java/J8.0_64/bin
./java -version
También comprobamos que tengamos el procedimiento JVMPRC86 en la PROCLIB. Si no lo tenemos lo copiaremos de “/usr/lpp/java/J8.0_64/mvstools/samples/jcl/JVMPRC86”.
Con el siguiente job crearemos el ZFS y el punto de montaje para transferir el software.
Ahora subimos el software por FTP.
ftp xxx.xxx.xxx.xxx
bin
cd /usr/lpp/model9/
put model9-v2.3.5_build_eee8cba0-agent.tar
Desde OMVS, descomprimimos el fichero.
cd /usr/lpp/model9/
tar -xpf model9-v2.3.5_build_eee8cba0-agent.tar
Definimos el alias “agent”.
ln -s model9-v2.3.5_build_eee8cba0-agent agent
Creamos el directorio de configuración y copiamos la configuración de ejemplo:
mkdir conf
cp agent/sampleConf/* conf/
Copiamos el contenido de la carpeta bin:
mkdir bin
cp -p /bin/pax bin
extattr +p bin/pax
Ahora creamos el directorio “listener” para poder utilizar el CLI (Command Line Interface):
mkdir listener
chmod 777 listener
chmod +t listener
Desde 3.4 de ISPF, vamos al directorio “/usr/lpp/model9/agent/installation/” y copiamos el JCL “CPY#PDS”.
Editamos el JCL para adaptar el HLQ y VOLSER y ejecutamos.
En el fichero REXX “MODEL9.V235.EXEC(M9CLI)” tenemos que adaptar los parámetros “loaddir” y “fifodir”.
Ahora tenemos que ejecutar el job MODEL9.V235.SAMPLIB(M9USERST) para los permisos de RACF. Hay que actualizar el parámetro “ÑÑYOUR_USER/GROUPÑÑ” para indicar un usuario que se logará a la web. En mi caso será IBMUSER.
Importante comprobar y corregir las librerías. En especial:
RALT PROGRAM * ADDMEM('SYS2.MODEL9.V235.LOADLIB'//NOPADCHK)
Al ejecutar el job tuve que quitar las siguientes líneas ya que en mi sistema no existían estos recursos:
PE STGADMIN.IGG.DELETE.NOSCRTCH CL(FACILITY) ID(M9USER)
PE STGADMIN.IGG.LIBRARY CL(FACILITY) ID(M9USER) ACC(READ)
PE STGADMIN.IDC.DCOLLECT CL(FACILITY) ID(M9USER)
PE STGADMIN.ADR.RESTORE.BYPASSACS CL(FACILITY) ID(M9USER)
PE STGADMIN.ADR.RESTORE.RESET.YES CL(FACILITY) ID(M9USER)
PE STGADMIN.ADR.RESTORE.TOLERATE.ENQF CL(FACILITY) ID(M9USER)
PE STGADMIN.ADR.DUMP.CNCURRNT CL(FACILITY) ID(M9USER)
PE STGADMIN.ADR.DUMP.PROCESS.SYS CL(FACILITY) ID(M9USER)
PE STGADMIN.ADR.DUMP.TOLERATE.ENQF CL(FACILITY) ID(M9USER)
PE STGADMIN.ADR.DUMP.ZCOMPRESS CL(FACILITY) ID(M9USER)
PE STGADMIN.ADR.DUMP.NEWNAME CL(FACILITY) ID(M9USER)
PE STGADMIN.ADR.DUMP.RESET CL(FACILITY) ID(M9USER)
PE BPX.FILEATTR.SHARELIB CL(FACILITY) ID(M9USER) ACC(READ)
PE ICHBLP CL(FACILITY) ID(M9USER) ACC(UPDATE)
PE ERBSDS.MON2DATA CL(FACILITY) ID(M9USER) ACC(READ)
PE CSFOWH CL(CSFSERV) ID(M9USER) ACC(READ)
PE CSFIQF CL(CSFSERV) ID(M9USER) ACC(READ)
PE CSFPKE CL(CSFSERV) ID(M9USER) ACC(READ)
PE CSFPKI CL(CSFSERV) ID(M9USER) ACC(READ)
PE CSFDSV CL(CSFSERV) ID(M9USER) ACC(READ)
PE CSFDSG CL(CSFSERV) ID(M9USER) ACC(READ)
PE CSFEDH CL(CSFSERV) ID(M9USER) ACC(READ)
PE FPZ.ACCELERATOR.COMPRESSION CL(FACILITY) ID(M9USER) ACC(READ)
Copiamos el procedimiento “MODEL9.V235.SAMPLIB(M9AGENT)” a la PROCLIB y lo adaptamos.
Debemos añadir esta tarea al arranque del sistema.
Ahora tenemos que actualizar los ficheros de configuración.
model9-stdenv.sh
Indicar la ruta de JAVA y la zona horaria.
Fichero:
agent.yml
Definimos la conexión con el almacenamiento en la nube. En mi caso, uso Azure.
En el fichero model9-licenses.txt indicaremos la licencia.
Ahora vamos a configurar el proceso que intercepta las peticiones de recall de forma transparente.
Añadimos los siguientes parámetros al fichero PROGxx correspondiente:
APF ADD DSNAME(SYS2.MODEL9.V235.LOADLIB) VOLUME(PRD001)
LPA ADD DSNAME(SYS2.MODEL9.V235.LOADLIB) MOD(ZM9CPTN)
LPA ADD DSNAME(SYS2.MODEL9.V235.LOADLIB) MOD(ZM9S26X)
EXIT ADD EXITNAME(ZM9P_S026) MOD(ZM9S26X) PARM('M9ARCH')
Aplicamos los cambios con el comando SET PROG correspondiente. En mi caso:
SET PROG=(AB,AM,A0,A2,ZW,SY,LB,LD,LM,L0,A2,LL)
Ahora tenemos que copiar los miembros MODEL9.V235.SAMPLIB(M9HOOK) y MODEL9.V235.SAMPLIB(M9UNHOOK) a la PROCLIB y adaptarlos.
Añadiremos el procedimiento M9HOOK al arranque del sistema.
Esto sirve para poder capturar los “auto-recall” (M9HOOK) de ficheros cuando entramos con browse, por ejemplo.
Si lo arrancamos (S M9HOOK) veremos que hace el proceso correspondiente.
El siguiente paso será coger el JCL MODEL9.V235.SAMPLIB(M9LIFECY) que es el encargado de hacer el mantenimiento diario de los ficheros borrando aquellos ficheros migrados o backups que han expirado. Además, hay que aplicar unos permisos en RACF para el usuario del planificador que estemos usando. Revisad esta parte en el manual.
Este job debería planificarse diariamente.
Arrancaremos la STC del agente M9AGENT.
Si una vez arrancada la tarea, intentamos entrar en la web y aparece el siguiente error:
ICH420I PROGRAM JVMLDMM9 FROM LIBRARY MODEL9.V235.LOADLIB CAUSED THE ENVIRONMENT TO BECOME UNCONTROLLED.
BPXP014I ENVIRONMENT MUST BE CONTROLLED FOR DAEMON (BPX.DAEMON) PROCESSING.
Es debido a que en el paso de submitir el job de RACF no hemos corregido la librería siguiente:
RALT PROGRAM * ADDMEM('MODEL9.V235.LOADLIB'//NOPADCHK)
Después refrescar:
SETR WHEN(PROGRAM) REFRESH
Si desde z/OS nos da error de credenciales al conectar con el almacenamiento, pero desde el servidor zCX hemos podido conectar con las mismas credenciales, esto es debido a los caracteres especiales y a la codificación (EBCDIC vs ASCII).
En mi caso, mi secret_id contenía “~”, entonces tuve que editar a mano el fichero de configuración para poner el valor en EBCIDC.
Entramos en el fichero y usamos el comando HEX ON.
Simplemente es cambiar el valor que aparece en esa posición (BD, en mi caso), por el valor correcto (A1), aunque en el valor que vemos en el texto mostrado sea diferente, lo importante es que tenga el valor hexadecimal correcto.
Cuando todo esté bien, la tarea arrancará correctamente.
Me hubiera gustado dar más detalles de la configuración, pero, por motivo personales, pude dedicarle poco tiempo al producto. Espero que esto os sirva de ayuda.