martes, 28 de diciembre de 2021

Ultimo dia de trabajo con IBMi

Después de 36 años trabajando con los sistemas IBM S/38, AS/400 e IBMi, he llegado al final de mi vida laboral y debo cambiar mi relación con dichos sistemas, para dedicar todo el tiempo a mi familia y a mi.

Han sido unos años muy estimulantes y provechosos trabajando con los sistemas de IBM, en todas las empresas donde he trabajado, que han sido Inelco, La Piara, Zurich, ServiZurich, CSC i Saytel.

Un recuerdo para todas las personas con las que he trabajado, tanto compañeros, colegas, clientes y proveedores, ya que con todas ellas he ido aprendiendo más sobre dichos sistemas. También quiero recordar al grupo Help400 y su inestimable foro via email, al grupo Common España, y al desaparecido Grupo USI. Un recuerdo especial a la gente de Tango/04 que tanto me ayudaron a tirar adelante proyectos y que mantuvimos una muy buena relación, también a American Toop Tools con la que compartimos ideas, y a otra tanta gente que he conocido a lo largo de mi carrera.

Debido a la pandemia del Covid19, no pude despedirme de mis compañeros de trabajo, aunque sí pudimos celebrar mi despedida con una comida en un restaurante del Bruc unos meses más tarde. 

Espero nos encontremos por el camino y que nos vaya bien a tod@s.

Un abrazo!!!

miércoles, 21 de julio de 2021

Wayback Machine

A todos nos ha pasado buscar un artículo en internet y encontrar que el enlace esta roto.

Pues existe la web "Wayback Machine" que se dedica a realizar copias periódicas de las páginas web.

Si tenemos el enlace podemos probar de buscarlo y nos saldrá un calendario con las fechas en las que tiene copia del enlace.

Si la seleccionamos la hora del snapshot y esperamos unos segundos, aparecerá, como por arte de magia, la información que estamos buscando y aparentemente no podíamos recuperar:


Nota: No me hago responsable de que la información recuperada sea correcta, aunque si puede sea de gran ayuda ;o)




viernes, 12 de marzo de 2021

Videos promocionales del IBM AS400


IBM publico varios videos promocionales sobre el sistema AS400 (iSeries), todos ellos bastante divertidos.




Uno de ellos referido a la robustez del sistema:

The "Lost" IBM AS/400 (iseries, powersystem i)

Enlaces a una serie de tres videos referidos a la sencillez de administración del sistema: 

IBM: Laughing Boardroom 1 Covered

IBM: Laughing Boardroom 2 Automatic

IBM: Laughing Boardroom 3 People

¡ Que los disfrutéis !

martes, 29 de diciembre de 2020

Actualizados enlaces códigos de utilidades

A finales de enero del 2020 se perdieron todos los enlaces al código de las utilidades que tenia publicadas en DevelopersWork de IBM, ver DevelopersWork desaparecida

He tardado casi un año en recuperar todos los fuentes, algunos bastante antiguos y volverlos a publicar, ahora a través de enlaces de Google Drive.

Espero que os sirva.



jueves, 25 de junio de 2020

Como crear ventana con una línea de mandatos

Cuando en un menú, o pantalla, programa queramos mostrar una ventana con la línea de mandatos, solo hemos de llamar a la API QUSCMDLN, y ya la tendremos integrada en nuestros menús y/o programas.

sábado, 6 de junio de 2020

La comunidad de AS/400 está de luto...

Nos ha dejado Albert Blanch,  fundador de Help400 y del Foro Help400, los iSaruis nos hemos quedado un poco más huérfanos.
Como nos dice el titulo de esta entrada "La comunidad de AS/400 está de luto, Albert Blanch nos ha dejado", creada por Martín Ortega en su blog SIDRA400, le rinde un emotivo homenaje, que comparto plenamente.
Desde estas lineas un fuerte abrazo a su familia, amigos, y los compañeros de esta comunidad universal.
¡ Descanse En Paz !


Albert Blanch tribute

lunes, 4 de mayo de 2020

JobD que usan una Cola de Trabajo (FNDJOBDQ)

Esta utilidad esta basada en la FNDJOBDL, publicada ya hace unos años, en la FNDJOBDO. Realizando unas modificaciones nos ayudara a descubrir que Colas de Trabajo se utilizan en las descripciones de trabajo, que tenemos en nuestro sistema.
Introduciendo el nombre de la cola de trabajos y su biblioteca, nos mostrara por pantalla o en un archivo de spool, los nombres de la descripciones de trabajo que contienen dicha cola de trabajo.

El código lo podéis bajar de este enlace.

lunes, 20 de abril de 2020

JobD que usan una Cola de Salida (FNDJOBDO)

Esta utilidad esta basada en la FNDJOBDL, publicada ya hace unos años.
He realizado unas modificaciones para que nos ayude a descubrir que colas de salida se utilizan en las descripciones de trabajo que tenemos en nuestro sistema.

Introduciendo el nombre de la cola de salida y su biblioteca, nos mostrara por pantalla o en un archivo de spool, los nombres de la descripciones de trabajo que contienen dicha cola de salida.


El código lo podéis bajar de este enlace.

martes, 24 de marzo de 2020

Como funcionan los subsistemas


MCPress publicó, hace unos años (1994), un artículo explicando cómo se definen y funcionan los subsistemas en los AS400. No ha perdido nada de actualidad y puede servir de guía para entenderlos y aprovechar lo aprendido para nuestro sistema.





Solving the Mystery of Subsystems





En mi blog podéis encontrar más entradas y utilidades relacionadas con la configuración de los subsistemas:



martes, 21 de enero de 2020

DevelopersWork desaparecida

IBM elimino el web DevelopersWork, el pasado el 31-ene-2020, perdiéndose todo su contenido.
Estoy intentando recuperar todo el código perdido y analizando donde podemos colgarlo para que este de nuevo disponible.
Cuando estén recuperados los enlaces publicare la noticia en el blog.

viernes, 15 de febrero de 2019

¿Está muerto el AS/400?

Interesante articulo de Tom Huntington, publicado por HelpSystems, sobre el futuro del AS400. De recomendada lectura.


miércoles, 13 de febrero de 2019

Los misteriosos trabajos QP0ZSPWP


Articulo muy interesante de Dawn May, como todos los que escribe, en el IBM System Magazine, sobre los trabajos QP0ZSPWP.
Podeis leerlo en este enlace The Mysterious QP0ZSPWP Jobs.

viernes, 31 de agosto de 2018

Automate Extra IPL for PTF Install

Interesante articulo, de IBM DevelopersWork, donde se explican las ptf's necesarias, para que el sistema pueda realizar los IPL automáticos necesarios para aplicarse las ptf's de TR (Technology Refresh), normalmente MF99nnnn, para V6R1 y V7R1, ver el enlace: https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM%20i%20Technology%20Updates/page/Automate%20Extra%20IPL%20for%20PTF%20Install

De todas maneras si estáis todavía en estas versiones, planificar una actualización a V7R2 o superior, ya que están fuera de soporte, o al menos actualizarlas al ultimo nivel de ptf's.

viernes, 6 de julio de 2018

IBM i 30 años

 IBM i 30 años

Pues si, ya hace 30 años que salio al mercado el sistema AS/400 de IBM.
Aunque hace tiempo que no actualizaba este blog, el evento al que nos convoco IBM ayer, para celebrar este cumpleaños, ha provocado esta entrada. 
¡¡ Brindemos por ello !!

Y yo sigo trabajando con este sistema operativo, a pesar de las sentencias de muerte por obsolescencia, que se han ido difundiendo a los largo de los años, supongo que por personas mal informadas. Estoy convencido del futuro de esta plataforma, y esperemos que IBM tome las decisiones correctas para asegurar su futuro. 

Muestra de este futuro brillante fue el anuncio de los nuevos sistemas IBM POWER9 (dic-2017), diseñados para IA, y que Google esta empezando ha utilizarlos, en sus centros de datos, para mejorar el rendimiento. 


En el siguiente enlace tenéis un buen articulo sobre este aniversario, de la gente de HelpSystems: https://www.helpsystems.com/es/blog/feliz-30-aniversario-ibm-i.

Para terminar un recuerdo de mi "desktop", de 1995:


martes, 7 de febrero de 2017

Utilidad ViewSAVF


Hace un tiempo encontré la utilidad ViewSAVF, que una vez instalada en nuestro pc, permite mostrarnos el contenido de un archivo SAVF, que hayamos bajado a nuestro pc, o tengamos acceso por NetServer.


También nos visualiza el contenido de los archivos, solo las 20 primeras lineas en la versión de prueba.

La pagina web del creador www.juliansoft.com ya no esta "online", pero aun podemos bajarnos el programa desde el siguiente enlace: http://download.cnet.com/ViewSavF/3000-2242_4-75762716.html

Espero os sea de utilidad :o)

lunes, 24 de octubre de 2016

Modificada utilidad CHGSTSJRN (2)

Se han realizado los siguientes cambios en la utilidad CHGSTSJRN para:
- Añadir la opción de eliminar los receptores de diario automáticamente, al crear el diario.
- Añadir la opción de registrar por diario, automáticamente, los archivos creados en la biblioteca con STRJRNLIB (a partir de V6R1)

Pulsando F1 podemos acceder a la ayuda del mandato.

Podemos bajar la nueva versión desde IBMdevelopersWorks en este enlace.


Entradas anteriores:
- Modificada utilidad CHGSTSJRN
-
Arrancar registro por diario automaticamente

viernes, 30 de septiembre de 2016

Expirar automaticamente los archivos de spool

Para que los archivos de spool antiguos se supriman automáticamente del sistema, podemos utilizar el mandato DLTEXPSPLF (desde V5R4), que inspecciona los spools de las colas de salida y elimina los que cumplan las condiciones de expiración.
Normalmente los archivos de spool se crean según los atributos de los archivos de impresora (*PRTF); para la caducidad del spool existen 4 parámetros, que se definen cuando se crea el archivo:

Campo           Texto                                                 Long Dec 
SPEXDT          0 = *NONE, 1 = Fecha, 2 = Días                          1      
SPXDCT          Siglo de la fecha de caducidad                          1      
SPXDAT          Fecha de caducidad de archivo: AAMMDD                   6      
SPXDAY          Días desde fecha creación hasta caducidad archivo       3    0 

Para un archivo de spool, generado desde un archivo de impresora, sin caducidad, veremos:
                   Trabajar con atributos de archivo en spool                   
 Trabajo  . . . . . . :   QP0ZSPWP        Archivo  . . . . . . :   QPJOBLOG     
   Usuario  . . . . . :     QPGMR         Número . . . . . . :     000001     
   Número . . . . . . :     049334        Fecha de creación  . :   26/09/15     
 Nombre sist trabajo  :   MYAS400         Hora de creación . . :   09:17:04   
.....  
Fecha de caducidad de archivo  . . . . :                

Para el mismo archivo de spool, generado desde un archivo de impresora, con caducidad 30 días, veremos:
                   Trabajar con atributos de archivo en spool                   
 Trabajo  . . . . . . :   QP0ZSPWP        Archivo  . . . . . . :   QPJOBLOG     
   Usuario  . . . . . :     QPGMR         Número . . . . . . :     000001     
   Número . . . . . . :     049334        Fecha de creación  . :   26/09/15     
 Nombre sist trabajo  :   MYAS400         Hora de creación . . :   09:17:04   
.....  
Fecha de caducidad de archivo  . . . . :   26/10/15  

Si queremos caducar un archivo de spool, solo hemos de cambiar los parámetros del archivo de spool:
  CHGSPLFA FILE(QPJOBLOG) EXPDATE(*DAYS) DAYS(30)

Para automatizar la gestión de spools por fecha de caducidad deberemos:

  1. Para modificar los archivos de impresora para que expiren a los 30 días de haberse creado, crearemos y ejecutaremos un programa CL, el codigo lo podeis bajar el código de esta utilidad del grupo Recursos AS400 en IBM developersWorks.
  2. Modificar, manualmente, los atributos de todos los archivos de spool, que ya existen en todas las colas de salida, con los parametros EXPDATE(*DAYS) y DAYS(30). Podemos omitir las colas QEZDEBUG y QEZJOBLOG, que se limpian automáticamente con las opciones de limpieza del sistema (GO CLEANUP), si las tenemos activadas.
  3. Planificar el trabajo (en ejemplo es semanal) que ejecuta la eliminación de los archivos de spool caducados:

     ADDJOBSCDE JOB(DLTEXPSPLF) CMD(DLTEXPSPLF) FRQ(*WEEKLY) 
     SCDDATE(*NONE) SCDDAY(*MON) SCDTIME(060000) 
     TEXT('Suprimir archivos de spool caducados')         


Nota1: Este procedimiento puede sustituir a la utilidad DLTOLDSPLF (http://www-01.ibm.com/support/docview.wss?uid=nas8N1019285).
Nota2: En los ejemplos se utiliza una expiración de 30 días, pero podría ser mas o menos días, según las necesidades              
Nota3: En el programa de ejemplo se modifican TODOS los archivos de impresora del sistema, que no tengan definida fecha de caducidad, si la tienen la respetan, ya que pueden existir archivos de impresora, y por tanto de spool, con otras necesidades de conservación en las colas.

Expirar automaticamente los archivos de spool

Para que los archivos de spool antiguos se supriman automáticamente del sistema, podemos utilizar el mandato DLTEXPSPLF (desde V5R4), que inspecciona los spools de las colas de salida y elimina los que cumplan las condiciones de expiración.
Normalmente los archivos de spool se crean según los atributos de los archivos de impresora (*PRTF); para la caducidad del spool existen 4 parámetros, que se definen cuando se crea el archivo:

Campo           Texto                                                 Long Dec 
SPEXDT          0 = *NONE, 1 = Fecha, 2 = Días                          1      
SPXDCT          Siglo de la fecha de caducidad                          1      
SPXDAT          Fecha de caducidad de archivo: AAMMDD                   6      
SPXDAY          Días desde fecha creación hasta caducidad archivo       3    0 

Para un archivo de spool, generado desde un archivo de impresora, sin caducidad, veremos:
                   Trabajar con atributos de archivo en spool                   
 Trabajo  . . . . . . :   QP0ZSPWP        Archivo  . . . . . . :   QPJOBLOG     
   Usuario  . . . . . :     QPGMR         Número . . . . . . :     000001     
   Número . . . . . . :     049334        Fecha de creación  . :   26/09/15     
 Nombre sist trabajo  :   MYAS400         Hora de creación . . :   09:17:04   
.....  
Fecha de caducidad de archivo  . . . . :                

Para el mismo archivo de spool, generado desde un archivo de impresora, con caducidad 30 días, veremos:
                   Trabajar con atributos de archivo en spool                   
 Trabajo  . . . . . . :   QP0ZSPWP        Archivo  . . . . . . :   QPJOBLOG     
   Usuario  . . . . . :     QPGMR         Número . . . . . . :     000001     
   Número . . . . . . :     049334        Fecha de creación  . :   26/09/15     
 Nombre sist trabajo  :   MYAS400         Hora de creación . . :   09:17:04   
.....  
Fecha de caducidad de archivo  . . . . :   26/10/15  

Si queremos caducar un archivo de spool, solo hemos de cambiar los parámetros del archivo de spool:
  CHGSPLFA FILE(QPJOBLOG) EXPDATE(*DAYS) DAYS(30)

Para automatizar la gestión de spools por fecha de expirarción deberemos:

  1. Para modificar los archivos de impresora para que expiren a los 30 días de haberse creado, crearemos y ejecutaremos un programa CL, el codigo lo podeis bajar de este enlace: (enlace en breve) 
  2. Modificar, manualmente, los atributos de todos los archivos de spool, que ya existen en todas las colas de salida, con los parametros EXPDATE(*DAYS) y DAYS(30). Podemos omitir las colas QEZDEBUG y QEZJOBLOG, que se limpian automáticamente con las opciones de limpieza del sistema (GO CLEANUP), si las tenemos activadas.
  3. Planificar el trabajo (en ejemplo es semanal) que ejecuta la eliminación de los archivos de spool caducados:

     ADDJOBSCDE JOB(DLTEXPSPLF) CMD(DLTEXPSPLF) FRQ(*WEEKLY) 
     SCDDATE(*NONE) SCDDAY(*MON) SCDTIME(060000) 
     TEXT('Suprimir archivos de spool caducados')         


Nota1: Este procedimiento puede sustituir a la utilidad DLTOLDSPLF (http://www-01.ibm.com/support/docview.wss?uid=nas8N1019285).
Nota2: En los ejemplos se utiliza una expiración de 30 días, pero podría ser mas o menos días, según las necesidades              
Nota3: En el programa de ejemplo se modifican TODOS los archivos de impresora del sistema, que no tengan definida fecha de caducidad, si la tienen la respetan, ya que pueden existir archivos de impresora, y por tanto de spool, con otras necesidades de conservación en las colas.

sábado, 16 de enero de 2016

Buenas practicas para la administración del sistema


En este articulo iré relacionando todos los consejos de practicas, que, creo deben usarse, y que,  a lo largo de los años, facilitarán la gestión de un sistema AS400.

No crear librerías que empiecen por Q
IBM denomina las bibliotecas, del sistema operativo y de sus productos (con alguna excepción), con la letra Q como caràcter inicial del nombre de biblioteca.
Si nosotros creamos bibliotecas que empiecen con esa letra, al realizar una copia de seguridad con el parámetro LIB(*ALLUSR), no se incluirán las bibliotecas Q*, excepto las bibliotecas QGPL, QUSRSYS, QPFRDATA y otras excepciones (ver ayuda mandato SAVLIB) . 
Por tanto no es una buena practica utilizar la letra Q como inicial de nuestras bibliotecas ya que si no las salvamos posteriormente no tendremos copia de las mismas.

No crear objetos en la biblioteca QSYS
No es una buena practica crear nuestros programas, ficheros, u otros objetos, en la biblioteca del sistema operativo, ni, en general, en otra biblioteca Q*, ya que afectaran a todas las aplicaciones que se ejecuten en el sistema y pueden provocarnos problemas en el futuro.

Crear la cola de mensajes QSYS/QSYSMSG
Esto es una función poco conocida del sistema operativo, al crear esta cola especial de mensajes se registraran en ella mensajes de gravedad que seguramente pasarían desapercibidos en la QSYSOPR, si hay muchos mensajes.

Activar la limpieza automàtica del sistema
Para mantener el espacio en disco a raya, una de las tareas que deben realizarse es la de limpiar logs y spools, periódicamente, para ello ver la entrada publicada: Limpiar automaticamente mensajes, joblogs, dumps, ...
También puede ser interesante borrar los archivos de spool de usuario antiguos, para ello podemos activar la fecha de expiración del archivo de spool (a partir V5R4) o planificar un trabajo con la utilidad DLTOLDSPLF, que podemos obtener en http://www-01.ibm.com/support/docview.wss?uid=nas8N1019285

Activar las estadísticas de espacio en disco
Para controlar el espacio en disco utilizado en el sistema podemos activar y planificar la tarea de recogida de uso del disco, el procedimiento esta explicado en la entrada Estadísticas de espacio en disco.
Es recomendable imprimir periodicamente la información de estas estadisticas, lo podemos, o tamien podemos utilizar la utilidad que publique para llevar un control más exhaustivo, ver la utilidad DSKINF.


Activar la seguridad del sistema
Para tener más control de lo que pasa en nuestro sistema, y seguramente poder cumplir con las auditorias de seguridad, es más que recomendable activar el diario de auditoria del sistema. El procedimento para hacerlo ya esta publicado en esta entrada: Configurar seguridad del sistema.
Lo unico que habra que tener en cuenta es que necesitaremos más espacio en disco para los receptores del diario de auditoria; además debemos crear un procedimento para gestionarlos (habitualmente guardarlos a cinta y eliminarlos)

Tareas a revisar y/o ejecutar periódicamente:
  • Copia de seguridad de nuestros datos diariamente (GO BACKUP)
  • Una copia completa del sistema (semanal o mensual o trimestral), y aprovechar para realizar un IPL (GO SAVE, opción 21)
  • Problemas detectados por el sistemas (WRKPRB)
  • Actualizar el nivel del acumulativo y grupos de ptf (WRKPTFGRP)
  • Ejecutar una reclamación de espacio en disco, después de una caída no planificada del sistema (RCLSTG)
  • Actualizar el sistema operativo antes de quedar sin soporte por parte de IBM.
  • ...

Documentar todos los cambios realizados en el sistema
Cuando cambiamos:
  • El valor de un variable del sistema.
  • La configuración de un subsistema suministrado por IBM.
  • Las clases con los parámetros de ejecución.
  • La configuración de los pools de memoria.
  • Descripción de los mensajes, en los archivos de mensajes suministrados por IBM.
  • ect...
Es una buena practica documentar dichos cambios en algun documento.
Suelo utilizar un miembro fuente en la QGPL/QCLSRC, por ejemplo SYSCUST, donde voy insertando los cambios realizados con un comentario de la razón. De esta forma en caso de migrar el sistema a un nuevo hardware, tendremos todos estos cambios documentados y podremos reproducirlos más fácilmente.