Saltar al contenido principal

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.

info

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

Emuframe image

Se puede ver que la página aparece en blanco.

NOTA

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

Emuframe image

Descargar nueva versión de Liberty

Mi versión en uso es la versión 21.0.0.9. Emuframe image

info

En el siguiente enlace se pueden encontrar las versiones disponibles.
https://www.ibm.com/support/pages/recommended-updates-websphere-application-server

Emuframe image

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.

Emuframe image

Emuframe image

info

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.

Emuframe image

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
//$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')
/*

Emuframe image

Emuframe image

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

Emuframe image

Emuframe image

Job para descomprimir fichero pax.Z

Con el siguiente job descomprimiré el fichero.

$02UNPAX
//$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
/*

Emuframe image

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.

Emuframe image

Dentro de la carpeta wlp veremos que está el producto.

Emuframe image

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.

Emuframe image

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
//$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')
/*

Emuframe image

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.

Emuframe image

Usaré el siguiente job.

$10SLINK
//$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
/*

Emuframe image

Confirmamos que el enlace apunta a la nueva librería. Emuframe image

Emuframe image

Arrancar z/OSMF y comprobar

Ahora arrancamos z/OSMF.

S IZUANG1
S IZUSVR1

Nos fijamos que usa la nueva versión.

Emuframe image

Confirmamos que todo arranca. Emuframe image

Emuframe image

El entrar para ver las API disponibles ahora si veremos el contenido. Emuframe image

Ya tenemos instalada la nueva versión de Liberty y hemos confirmado que con esta versión si podemos explorar las APIs correctamente.