Aplicación de PTFs en HOST

Autor: Kujaku | El sábado 26 de enero del 2008 @ 17:58.

El presente documento explica como realizar un mantenimiento aplicando parches a un programa concreto. En este documento, trataremos de poner un ejemplo real de aplicación de parches al TSM.

Obtención de la PTF

Si vemos que un programa necesita una PTF concreta nos la descargaremos de la web de IBM, desde el Service Agent. En nuestro caso, el TSM tiene la PTF UK29650, que soluciona los APARs (Authorized Program Analisys Report) siguientes: PK45022 PK45846 PK46450 PK47066 PK47105 PK47249 PK48211 PK48634 PK48873 PK49063 PK49871 PK49873 PK50061 PK50343 PK50365 PK50373 PK50709.

Una vez descargada, tendremos el fichero en formato Terse, que viene a ser una especie de "tar" pero para host. Por tanto, con el Personal Communications nos subiremos ese fichero (ocupa unos 12 MB) a un dataset secuencial que tiene un formato FB de longitud de registro 1024 y un blocksize de 10240, que se llama YGGDRASL.PTF.TEMP.

UNTERSE de la PTF en el HOST

Con ese PTF recibido en el dataset secuencial YGGDRASL.PTF.TEMP, lanzaremos un job que nos hará el Unterse y nos dejará el resultado en YGGDRASL.PTF.TSM0001:

//UNTERSE JOB CLASS=A,MSGCLASS=X                        
//S1 EXEC PGM=AMATERSE,PARM=UNPACK                      
//SYSPRINT DD SYSOUT=*                                  
//SYSUT1  DD DISP=SHR,DSN=YGGDRASL.PTF.TEMP             
//SYSUT2  DD DSN=YGGDRASL.PTF.TSM0001,DISP=(OLD,KEEP,KEEP)

RECEIVE de la PTF en el HOST

Una vez hecho el UNTERSE, tenemos en YGGDRASL.PTF.TSM0001 la PTF "descomprimida", así que lo siguiente que haremos será ejecutar otro JCL:

//RECTSM52 JOB CLASS=A,MSGCLASS=X,REGION=8192K
//SMPEDPS  EXEC PGM=GIMSMP,                   
//         PARM='PROCESS=WAIT',DYNAMNBR=120   
//SMPCSI   DD   DSN=TSM53.GLOBAL.CSI,DISP=SHR 
//SMPCNTL DD *                                
  SET BOUNDARY(GLOBAL).                       
  RECEIVE .                                   
/*                                            
//SMPHOLD  DD DUMMY                           
//SMPPTFIN DD DISP=SHR,                       
//            DSN=YGGDRASL.PTF.TSM0001

Este JCL lo que hace es utilizando la zona SMP del TSM, llamada TSM53.GLOBAL.CSI recibir el contenido del dataset secuencial YGGDRASL.PTF.TSM0001, con lo que mirará si esa PTF esta aplicada ya. Eso el SMP lo hace consultando los datasets de TARGET y DLIBs y si lo encuentra, entonces no lo instala.

Si no los encuentra, como es el caso, esa PTF la deja "recibida" dentro de un dataset llamado TSM53.SMPPTS, lista para ser aplicada.

APPLY-CHECK de la PTF

Antes de aplicar definitivamente la PTF, lanzaremos el job que aplica la PTF de manera virtual, para ver si hay algún requisito previo que no se cumpla, o que exista algún problema de ficheros:

//APPTSM53 JOB CLASS=A,MSGCLASS=X,REGION=0M  
//SMPEDPS  EXEC PGM=GIMSMP,                  
//         PARM='PROCESS=WAIT',DYNAMNBR=120  
//SMPCSI   DD   DSN=TSM53.GLOBAL.CSI,DISP=SHR
//SMPCNTL DD *                               
  SET BOUNDARY(TSMTZN).                      
  APPLY                                      
         BYPASS   (                          
                   HOLDSYSTEM                
                            (                
                              EC             
                              DOC            
                              DEP            
                              ACTION         
                              DELETE         
                              UCLIN          
                            )                
                  )                          
         SELECT (                            
                 UK29650     
                )            
         CHECK               
         GROUPEXTEND         
         JCLINREPORT         
         RETRY(YES)          
                .

APPLY de la PTF

Si vemos la salida del job ejecutado y comprobamos que no existe ninguna dependencia no resuelta, estamos en condiciones de submitir el mismo job, pero quitando el CHECK. Eso hará permanentes los cambios y actualizará la zona TARGET correspondiente.

ACCEPT-CHECK de la PTF

Antes de aceptar definitivamente la PTF, lanzaremos el job que acepta la PTF de manera virtual, para ver si hay algún prerrequisito que no se cumpla, o que exista algún problema de ficheros:

//ACCTSM53 JOB CLASS=A,MSGCLASS=X,REGION=0M  
//SMPEDPS  EXEC PGM=GIMSMP,                  
//         PARM='PROCESS=WAIT',DYNAMNBR=120  
//SMPCSI   DD   DSN=TSM53.GLOBAL.CSI,DISP=SHR
//SMPCNTL DD *                               
  SET BOUNDARY(TSMTZN).                      
  ACCEPT                                      
         BYPASS   (                          
                   HOLDSYSTEM                
                            (                
                              EC             
                              DOC            
                              DEP            
                              ACTION         
                              DELETE         
                              UCLIN          
                            )                
                  )                          
         SELECT (                            
                 UK29650     
                )            
         CHECK               
         GROUPEXTEND         
         JCLINREPORT         
         RETRY(YES)          
                .

ACCEPT de la PTF

Si vemos la salida del job y comprobamos que no existe ninguna dependencia no resuelta, estamos en condiciones de submitir el mismo job, pero quitando el CHECK. Eso hará permanentes los cambios y actualizará las DLIBs.

Como habéis podido comprobar, esto no es un Windows Update, es algo mas laborioso y mas controlado. Además, hasta que llegas a depurar el JCL son muchos intentos, de ahí que veáis un BYPASS con una serie de variables, ya que muchas de esas variables hacen que el JCL casque.

Por ejemplo, la variable ACTION hace referencia que si esa PTF tiene acciones a realizar, como instalar no se qué o actualizar tal o cual fichero, ejecutar ese JCL hace que casque, para asegurarte que antes has realizado los pasos y acciones que vienen en la documentación, de ahí que, como dije en la anterior entrega, haya que leer mucho.

Comentarios