Corregir Error CWWKE0701E
Cuando estaba explorando las APIs de z/OSMF en ADCD 2.5 (RSU 2112), me di cuenta de que cuando entraba a la ruta zosmf/api/explorer (Swagger), no veía ninguna API disponible. Aparentemente, todo estaba bien configurado, pero en la STC IZUSVR1 aparecería el mensaje “CWWKE0701E: bundle com.ibm.ws.rest.api.discovery”. Debido al error el servicio que se encarga de descubrir las API no funcionaba. Voy a enseñar a actualizar Liberty a la última versión disponible.
Encontré el siguiente enlace que indicaba que estaba corregido en la versión 21.0.0.10 (yo uso la versión 21.0.0.9):
https://www.ibm.com/support/pages/apar/PH39935
El error detallado es:
CWWKE0701E: bundle com.ibm.ws.rest.api.discovery:1.0.56.cl210920210824-2341
(135)Ýcom.ibm.ws.rest.api.discovery.APIProviderAggregator(397)~ :
The setServerStartedPhase2 method has thrown an exception java.util.ConcurrentModificationException
Se puede ver que la página aparece en blanco.
Para poder acceder a Swagger es necesario hacer los pasos que se indican en este enlace (crear los recursos de la clase EJBROLE).
https://www.ibm.com/docs/en/zos/2.5.0?topic=guide-using-zosmf-rest-services
Descargar nueva versión de Liberty
Mi versión en uso es la versión 21.0.0.9.
En el siguiente enlace se pueden encontrar las versiones disponibles.
https://www.ibm.com/support/pages/recommended-updates-websphere-application-server
Descargaré la versión 22.0.0.7, concretamente la versión “portable”.
Importante descargar también el fichero README porque incluye información necesaria.
Las instrucciones de instalación son muy sencillas. Se pueden encontrar aquí:
https://www.ibm.com/support/pages/node/6541012
Apuntamos el punto de montaje y el espacio porque tenemos que crear un ZFS para montarlo en ese directorio.
Crear nuevo ZFS
Empiezo creando el ZFS y las rutas necesarias.
Job para crear ZFS, crear directorios y montar el ZFS en el directorio
//$01CZFS JOB 0,REGION=64M,CLASS=A,MSGCLASS=A,NOTIFY=&SYSUID
//CREATE EXEC PGM=IDCAMS,REGION=0M,COND=(0,LT)
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DEFINE CLUSTER ( -
NAME(LIBERTY.V220007.ZFS) -
CYL(1800 30) -
LINEAR -
SHAREOPTIONS(3) -
)
//*
// SET ZFSDSN='LIBERTY.V220007.ZFS'
//FORMAT EXEC PGM=IOEAGFMT,REGION=0M,COND=(0,LT),
// PARM='-aggregate &ZFSDSN -compat'
//SYSPRINT DD SYSOUT=*
//*
//MOUNT EXEC PGM=IKJEFT01,REGION=0M,COND=(0,LT)
//SYSEXEC DD DISP=SHR,DSN=SYS1.SBPXEXEC
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
PROFILE MSGID WTPMSG
oshell umask 0022; +
mkdir -p /global/instmgr; +
mkdir -p /global/instmgr/WL220007
MOUNT +
FILESYSTEM('LIBERTY.V220007.ZFS') +
MOUNTPOINT('/global/instmgr/WL220007') +
MODE(RDWR) TYPE(ZFS) PARM('AGGRGROW')
/*
Subir el software y descomprimir
Ahora hay que transferir el software por FTP al directorio que hemos creado.
ftp 192.168.1.12
bin
cd /global/instmgr/WL220007
put wlp-zos-22.0.0.7.pax.Z
Job para descomprimir fichero pax.Z
Con el siguiente job descomprimiré el fichero.
//$02UNPAX JOB 0,REGION=0M,CLASS=A,MSGCLASS=A,NOTIFY=&SYSUID
//UNPAX EXEC PGM=IKJEFT01
//SYSEXEC DD DISP=SHR,DSN=SYS1.SBPXEXEC
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
PROFILE MSGID WTPMSG
oshell cd /global/instmgr/WL220007; +
pax -rz -ppx -o saveext -f wlp-zos-22.0.0.7.pax.Z
/*
Tendremos lo siguiente. Esto es el software ya disponible para ser usado. Simplemente hay que desmontar el ZFS y montarlo en la ruta que queramos.
Dentro de la carpeta wlp veremos que está el producto.
Montar nueva versión
Siguiendo el modo en el que está instalado en la versión 2.5 de ADCD, lo montaré dentro de un directorio en /usr/lpp/liberty_zos.
Job para mover un ZFS a un nuevo directorio (desmontar un ZFS, crear un nuevo directorio y montarlo en ese directorio)
Voy a usar un job que desmontará el ZFS, creará el nuevo directorio y lo montará ahí.
//$03MZFS JOB 0,REGION=64M,CLASS=A,MSGCLASS=A,NOTIFY=&SYSUID
//MOUNT EXEC PGM=IKJEFT01,REGION=0M,COND=(0,LT)
//SYSEXEC DD DISP=SHR,DSN=SYS1.SBPXEXEC
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
PROFILE MSGID WTPMSG
UNMOUNT FILESYSTEM('LIBERTY.V220007.ZFS')
oshell umask 0022; +
mkdir -p /usr/lpp/liberty_zos/22.0.0.07
MOUNT +
FILESYSTEM('LIBERTY.V220007.ZFS') +
MOUNTPOINT('/usr/lpp/liberty_zos/22.0.0.07') +
MODE(RDWR) TYPE(ZFS) PARM('AGGRGROW')
/*
Ya tendremos creado el directorio y el ZFS montado.
Actualizar enlace simbólico current
Ahora hay que actualizar el enlace simbólico current para que apunte a la nueva versión.
Job para borrar un enlace simbólico (Symbolic Link) y volver a crearlo
Usaré el siguiente job.
//$10SLINK JOB 0,REGION=0M,CLASS=A,MSGCLASS=A,NOTIFY=&SYSUID
//RUNTIME EXEC PGM=IKJEFT01
//SYSEXEC DD DISP=SHR,DSN=SYS1.SBPXEXEC
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
PROFILE MSGID WTPMSG
oshell +
rm /usr/lpp/liberty_zos/current; +
ln -s ./22.0.0.07/wlp /usr/lpp/liberty_zos/current
/*
Confirmamos que el enlace apunta a la nueva librería.
Arrancar z/OSMF y comprobar
Ahora arrancamos z/OSMF.
S IZUANG1
S IZUSVR1
Nos fijamos que usa la nueva versión.
Confirmamos que todo arranca.
El entrar para ver las API disponibles ahora si veremos el contenido.
Ya tenemos instalada la nueva versión de Liberty y hemos confirmado que con esta versión si podemos explorar las APIs correctamente.