viernes, 14 de junio de 2013

IBM AS400 en 25 diapositivas

La revista electrónica "IBM Systems magazine", esta publicado interesantes artículos  aprovechando la efemérides de los 25 años del  sistema AS400 (i)., para dar a conocer mejor este sistema, a los profanos; y también para gozo de los veteranos. Entre ellos destaco los siguientes:

  1. Integration: The invisibility cloak of complexity
  2. User Groups: We’ve really got a lot in common!
  3. AS/400: The 36 was from Venus, the 38 from Mars
  4. TIMI: Shoes that fit every occasion
  5. Single-level storage: Where did I leave my keys?
  6. Subsystems: Hostel or hotel?
  7. Object orientation: May I see your badge, please?
  8. Integrated database: Will you need a bed in your hotel room tonight?
  9. Virtualization: A great idea is new again.
  10. System Integrity: Trust but verify
  11. ISVs: An application system for business
  12. International: Anyone for double-byte Ping-Pong?
  13. Business Partners: A freight train needs a track
  14. Lab Services: Want a superstar on your team?
  15. Out-of-box: No assembly required
  16. RPG: No, it’s not rebounds per game
  17. Integrated Middleware: Tricked out or built in?
  18. PASE: Welcome to the family!
  19. PHP: Red wine with fish, Mr. Bond?
  20. POWER: What do IBM i and Watson have in common?
  21. User interfaces: Green is good; BYOD might be even better.
  22. Reliability: Over a long distance, you learn a lot about the strength of your horse
  23. Automated service: The robocall everyone wants to get
  24. LUG: Want something to change? Do it together.
  25. Client success: The Rochester way

                                                  jueves, 13 de junio de 2013

                                                  Recuperar atributos de otro trabajo

                                                  Muchos conocemos, y usamos, el mandato RTVJOBA que recupera los atributos de nuestro trabajo, y según los valores recuperados ejecutar unas u otras sentencias; unos ejemplos:

                                                  • RTVJOBA USER(&USRPRF) : Si el valor &USRPRF devuelto pertenece al grupo de los usuarios operadores, le muestro, por ejemplo, un menú de backup, en caso contrario salgo sin dejarle hacer nada.
                                                  • RTVJOBA TYPE(&TYPE):  Si el valor recuperado &TYPE devuelve '1' es un trabajo interactivo y puedo mostrar por ejemplo una pantalla, y si tiene el valor '0' generar un listado de spool.

                                                  ¿Pero que pasa cuando necesitamos recuperar los atributos de otro trabajo? 
                                                  Para ello cree la utilidad RTVJOBATR "Retrieve another Job Attributes" que devuelve varios atributos de un trabajo, que aun exista en el sistema, indiferentemente del estado de dicho trabajo.

                                                  viernes, 24 de mayo de 2013

                                                  Utilidad estadisticas espacio en disco (DSKINF)

                                                  En un articulo anterior se explicaba como activar las estadísticas de espacio en disco incluidas con el sistema operativo de nuestro AS400.

                                                  Analizando el funcionamiento de dicha función del AS400 desarrolle, hace años, la utilidad CPYDSKINF, para consolidar, periódicamente, esta información en otro archivo y así poder realizar análisis de la evolución del crecimiento de la ocupación en disco, de las bibliotecas y/o de los objetos.

                                                  La periodicidad podría ser semanal, o como mínimo mensual, aunque deberemos analizar cual es la mejor periodicidad para nuestro sistema y nuestras necesidades. Deberemos tener en cuenta que este proceso genera, acumula mucha información, y necesita mucho tiempo de ejecución,  aunque, evidentemente, dependerá del rendimiento de nuestro sistema.
                                                  Si usamos esta utilidad es recomendable no utilizar la opción de planificación de recogida de estadísticas de espacio en disco del sistema (GO DISKTASKS), ya que estaremos duplicando el proceso y podemos tener problemas si los lanzamos al mismo tiempo.

                                                  Para planificar la ejecución semanal, de esta utilidad, utilizar el siguiente mandato:
                                                  ADDJOBSCDE JOB(CPYDSKINF) CMD(CALL PGM(DSKINF/CPYDSKINF)) FRQ(*WEEKLY) SCDDATE(*NONE) SCDDAY(*SUN) SCDTIME('23:59:59') RCYACN(*SBMRLS) JOBQ(QSYS/QUSRNOMAX) 
                                                  TEXT('Statistical disk space usage')

                                                  A partir de los datos recogidos, semana a semana, podemos utilizar Query's, Consultas QM o SQL, para extraer información sobre la evolución de la ocupación del disco, bibliotecas y de los objetos  en el sistema. También nos puede servir para averiguar en que periodo se elimino un objeto, que objetos se han creado entre periodos, etc...

                                                  El programa actualiza los tres archivos DSKINF, EVODSK y EVOLIB:
                                                  • DSKINF: Contiene la misma información que QAEZDISK, pero con 2 campos más que contienen el nombre del sistema, donde se ha recogido la información, y la fecha de recogida (en formato saammdd).
                                                  • EVODSK: Se genera en cada ejecución y contiene un registro por cada fecha de recogida con la ocupación en disco y el total de disco cuando se recogió la información.
                                                  • EVOLIB: Se genera en cada ejecución y contiene un registro por cada fecha de recogida y biblioteca, con el tamaño de la misma cuando se recogió la información.
                                                  En el código del programa CPYDSKINF, la variable &DLTDAT nos indica cuanto tiempo debe conservar los datos de información de espacio en disco en el sistema, de esta forma el tamaño de la biblioteca DSKINF sera, más o menos, constante. Por omisión se conservan 365 días.

                                                  Seguid las instrucciones de instalación de la utilidad en el fuente README_DSK.TXT incluido. Se recomienda instalarla en la biblioteca DSKINF, de esta forma tendremos más controlado el espacio que ocupa esta información. Podéis bajaros el código desde este enlace.

                                                  Esta utilidad consta de varios fuentes y objetos:
                                                  ADDDSKINF   RPG   Añade registros informe espacio disco
                                                  CPYDSKINF   CLP   Genera, consolida e imprime informes disco
                                                  DSKINF      PF    Informe espacio en disco
                                                  EVODSK      SQL   Evolución espacio en disco

                                                  EVODSK_CRT  SQL   Creación archivo evolución espacio en disco 
                                                  EVOLIB      SQL   Evolución ocupación bibliotecas

                                                  EVOLIB_CRT  SQL   Creación archivo evolución ocupación bibliotecas 
                                                  RMVDSKINF   RPG   Elimina registros informe espacio disco

                                                  README_DSK  TXT   Instrucciones de instalación de DSKINF 

                                                  Notas:

                                                  lunes, 13 de mayo de 2013

                                                  Visualizar los trabajos de un usuario

                                                  Cuando tenemos que controlar trabajos de varios usuarios y diferentes nombres, podemos usar los mandatos WRKJOB, WRKUSRJOB y WRKSBMJOB, además del WRKACTJOB, pero muchas veces tenemos que ir cambiando de mandato para poder usar el que más fácilmente nos muestra los trabajos que que queremos comprobar. Esto implica una perdida de tiempo navegando por varios mandatos, es por ello que creé el mandato DSPUSRJOB, basado en la tool RTVJOBCNT de Martin Rowe.
                                                  El uso del mandato es sencillo y podemos usar la tecla de función F4, para ver los parámetros disponibles, así como también F1 para visualizar la ayuda del mandato y sus parámetros.
                                                  Las opciones 2=Change job y 4=End job solo las veremos si nuestro usuario tiene el permiso especial *JOBCTL. El resto de las opciones 5=Display job,  6=Change joblog y 8=Display spools están disponibles para cualquier usuario que utilice el mandato si hemos tenido la precaución de compilar el programa con USER(*OWNER) y el propietario del programa DSPUSRJOBC sea, por ejemplo QPGMR, u otro usuario con *JOBCTL.

                                                  Con este mandato tenemos la posibilidad de dar acceso a trabajos de otros usuarios a usuarios que no tienen la autorización especial *JOBCTL en su perfil de usuario. Esto nos evita, lo que se hace a veces, de dar autorización *JOBCTL a un perfil de usuario que no debería tenerla, solo para facilitarle el acceso a un trabajo, por ejemplo para ver los spools del mismo.
                                                  Para limitar el acceso a esta potente herramienta, la habremos compilado con AUT(*EXCLUDE) para limitar el uso publico del mandato (y programa). Posteriormente podremos añadir la autorización *USE a los usuarios que nos interese que puedan utilizarla.

                                                  Podéis bajar el código de esta utilidad desde este enlace.

                                                  Tenéis más información sobre la discusión de otorgar las autorizaciones especiales *JOBCTL y/o *ALLOBJ, para solo controlar trabajos en este enlace.

                                                  viernes, 26 de abril de 2013

                                                  Cambiar contraseñas conocidas

                                                  El sistema operativo viene con algunos usuarios genéricos ya instalados y cuya contraseña es igual al nombre del perfil de usuario.
                                                  Para evitar accesos no controlados con estos usuarios a nuestros sistemas es altamente, yo diría imprescindible  cambiar la contraseña de dichos usuarios inmediatamente después de instalar el sistema operativo. Los perfiles de usuario más conocidos son QSECOFR, QSYSOPR y QPGMR, debemos asignarles una contraseña, que sea difícil de adivinar y fácil de recordar. Podéis ver mi entrada "La clave de las claves" con ideas de que contraseña elegir.
                                                  Por otra parte existen otros usuarios que no son tan conocidos pero que debemos evitar se usen sin nuestro conocimiento, estos usuarios son QUSER, QSRV y QSRVBAS. Lo más recomendable para estos perfiles es cambiar la contraseña a *NONE, con este cambio impedimos que se puedan conectar al sistema usándolos  Tened mucho cuidado en deshabilitarlos ya que, por ejemplo el perfil QUSER, debe estar activo ya que se usa en muchos trabajos de sistema, que dan servicio a otros usuarios, por ejemplo las conexiones ODBC en los trabajos QZDASOINIT.
                                                  También se deberían cambiar las contraseñas de los usuarios de servicios de la DST.

                                                  Ademas es altamente recomendable:
                                                  - Tener el nivel de seguridad del sistema (valor de sistema QSECURITY) con un valor de 30 como mínimo, 40 como recomendable o superior. ver entrada "Configurar seguridad del sistema"
                                                  - Duplicar el perfil de usuario QSECOFR, como QSECOFR2 para, por si alguna razón alguien nos bloquea QSECOFR, con ese usuario podamos entrar y poder habilitarlo de nuevo.
                                                  - Cambiar todos los perfiles de usuario que tengan como contraseña igual al nombre de perfil, ver entrada "Desactivar usuarios con contraseña por omisión".
                                                  - Los perfiles de usuarios que uséis como perfiles de grupo recomiendo cambiarlos a contraseña *NONE, en mi opinión deberían como contenedores de perfiles de usuarios, para asignar más fácilmente permisos a los objetos creados.

                                                  En el IBM Information Center tenéis una explicación más amplia de este tema: Changing known passwords