viernes, 16 de noviembre de 2012

Visualiza una ptf (DSPAPTF)

Me ha pasado a veces que estoy buscando si tengo instalada una ptf pero, no se el código de producto, y tengo que ir buscando con DSPPTF producto a producto y perdiendo mucho tiempo para ello.
Una búsqueda en Internet me llevo a la utilidad XDSPPTF que sirve precisamente para eso, veo que no soy al único que le pasa, y que me ahorra tiempo.
Como el código no esta online, me llevo a crearme dicha utilidad que he llamado DSPAPTF.
Podéis bajaros el código del siguiente enlace Display Any PTF.

jueves, 13 de septiembre de 2012

Visualizar día y hora del ultimo IPL

La utilidad LASTIPL visualiza el día y la hora del ultimo IPL (Initial Program Loader) realizado en el sistema. Tecleamos LASTIPL en la línea de mandatos y, al pulsar Intro, nos devuelve el día y la hora del ultimo arranque del subsistema QCTL:
The system was last IPL'D on 22/07/12 at 06:33:53.

viernes, 6 de julio de 2012

Utilidad LIBSIZE

La utilidad LIBSIZE nos devuelve el número de objetos de una biblioteca y su tamaño.
Al ejecutar el mandato nos devuelve un mensaje en la linea de estado con la información de la biblioteca.
Library size MYLIBRARY:000000017235968 Bytes. Objects 0000000000006

Tiene la opción de imprimir el mensaje de salida, parámetro OUTPUT(*PRINT), para poder someterlo o planificar su ejecución; nos puede servir para comprobar el tamaño de una biblioteca en un momento concreto.

No se recomienda utilizar esta utilidad para substituir el inventario de objetos en disco incluido en el sistema operativo, ver entrada "Estadísticas espacio en disco".
Esta utilidad esta basada en el documento de IBM "CL Program to Retrieve Library Size and Number of Objects" que utiliza la API RTVLAPI.

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

martes, 12 de junio de 2012

Recuperar atributos area de datos (RTVDTAARAA)

Hace poco me preguntaron si tenia, o conocía, alguna utilidad para recuperar los atributos de una área de datos. Una búsqueda en el iSeries Information Center, de IBM, me llevo a la API QWCRDTAA, esta normalmente se utiliza para recuperar el valor de una área de datos, pero también se puede utilizar para recuperar sus atributos.
Para ver su funcionamiento he creado la utilidad RTVDTAARAA (muchas A ¿no?)
Pasando el nombre del *DTAARA nos devolverá el tipo (*CHAR, *DEC, *LGL, *DDM), la longitud y el numero de posiciones decimales. Por ejemplo, si recuperamos los atributos del área de datos QUSRSYS/QRCLSTG, nos devolverá en las variables que le hemos pasado sus atributos, ademas graba el mensaje  CPF9897, en el log del trabajo, con el siguiente contenido: 
Data area QUSRSYS/QRCLSTG attributes. Type: *CHAR, Length: 1000, decimal pos.: 0000 

viernes, 1 de junio de 2012

WHO (Quien) esta abusando del sistema

El mandato WHO ¿Quién esta abusando del sistema? es una antigua utilidad de la TAATools, que ya existía, si mal no recuerdo, en el System/38.
Su utilidad es la de detectar rápidamente los trabajos con mas consumo de CPU. Al ejecutar este mandato nos muestra la salida del WRKACTJOB pero ordenando  los trabajos con un % de uso de CPU mayor a un 2% y ordenado por la columna "Elapsed CPU%"
Esta pantalla es la misma que si ejecutáramos el mandato WRKACTJOB con los siguientes parámetros:
WRKACTJOB CPUPCTLMT(2) SEQ(*CPUPCT)
Al ejecutar el mandato las estadísticas del "Work with Active Jobs" se reinician a cero, antes de mostrar el resultado (imprimiendo su salida a spool), para obtener el consumo real de los trabajos en ese instante; además, y por la misma razón, cambia la prioridad de ejecución de nuestra sesión para que el sistema responda más rápido a nuestra petición, al salir del mandato se revierte este ultimo cambio.

martes, 8 de mayo de 2012

Recuperar atributos spool (RTVSPLFA)

He recuperado esta utilidad, basada en la API QUSRSPLA, de las antiguas TAAToolsCon ella podemos recuperar la mayoría de atributos de un archivo de spool que tengamos en una cola de salida.
Podéis descargar el código de esta utilidad en este enlace.

lunes, 7 de mayo de 2012

Nueva versión de la utilidad CPYJOBSPL

He publicado la nueva versión 2.0 de la utilidad CPYJOBSPL.
Ahora ya soporta ficheros de spool de más de 132 columnas, era la limitación que tenia hasta ahora.
Tenéis más información sobre esta utilidad en Copiar archivos de spool.

miércoles, 2 de mayo de 2012

lunes, 30 de abril de 2012

Recuperar estado subsistema

La utilidad RTVSBSSTS nos devuelve el estado de un subsistema en una variable.
Los valores posibles que nos puede devolver son los siguientes:
*ACTIVE: El subsistema esta activo.
*ENDING: El subsistema esta finalizando.
*INACTIVE: El subsistema no esta arrancado.
*RESTRICT(ED): El subsistema esta en estado restringido, este valor solo tiene sentido para los subsistemas QBASE o QCTL (ver Subsistema de Control).
*STARTING: El subsistema esta arrancando.
*BLANKS: No se ha podido recuperar el estado del subsistema; normalmente porque no hemos indicado correctamente el nombre y/o biblioteca del subsistema.
Podéis bajaros la utilidad desde este enlace.

miércoles, 25 de abril de 2012

Frases geeks para una firma


Mientras espero tener tiempo para actualizar este blog, he encontrado un tema (offtopic) que me ha parecido bueno compartir con todos los lectores del blog y es el tema de las frases de las firmas.


Esto todavía hay gente que las usa y creo es una, actitud que llama mi atención. He encontrado varias web que hablan del tema pero al final solo os pongo el enlace que más me ha gustado, por el tema informativo claro !!, y que transcribo a continuación:

  • Hay 10 tipos de personas en el mundo, las que saben binario y las que no.
  • Si no lo logras a la primera, llámalo versión 1.0.
  • Microsoft: “Vosotros teneis preguntas, nosotros tenemos clips bailarines”.
  • s1 pu3d35 l33r 35t0 n3c3s174s 3ch4r |_|n p0lv0.
  • No soy antisocial, simplemente soy poco amigable con el usuario.
  • Me gustaría cambiar el mundo, pero no me dan el código fuente.
  • La programación es una carrera entre ingenieros tratando de hacer mejores y mas grandes programas resistentes a idiotas y el universo haciendo mejores y grandes idiotas. Por ahora gana el universo.
  • Un ordenador te deja cagarla mas rápido que cualquier otro invento de la humanidad, excepto las pistolas y el tequila.
  • Mi software nunca tiene fallos, simplemente desarrolla características aleatorias.
  • En la caja decía: “instalar win 95 o superior”, así que instalé Linux.
  • Las rosas son #ff0000 las violetas son #0000ff.
  • La velocidad del sonido es la distancia entre la puerta y tu ordenador dividida por el intervalo de tiempo necesario para cerrar el reproductor de vídeo y te subes los calzoncillos cuando tu madre grita:”¡OH DIOS MÍO! ¡QUÉ ESTÁS HACIENDO!”.
  • Las contraseñas son como la ropa interior: Nunca tienes que dejarlas donde la gente pueda verlas, tienes que cambiarlas regularmente y no tienes que dejárselas a extraños.

sábado, 3 de marzo de 2012

Comprobar copias de seguridad

La utilidad CHKBCKP nos sirve para comprobar rápidamente como han ido las copias de seguridad.
El programa recupera mensajes del histórico del sistema; desde el día/hora que le indiquemos en el mandato, o por la fecha que nuestro programa de backup habrá grabado en la área de datos BACKUPDAT, si dejamos en blanco la fecha (habremos de adaptar nuestros procesos para realizar dicha función).
La salida del programa la podemos definir a pantalla o spool, esta ultima opción nos da la posibilidad de programarla o incorporarla a nuestro procesos para tener un registro de la actividad del backup.
El mandato nos ira mostrando varios DSPLOG al ir pulsando Intro.
Primero nos mostrará todos los mensajes relacionados con el salvado de bibliotecas y/o objetos, esto nos dará una visión general de si han habido problemas en el backup y si se han salvado todos los objetos.

Al pulsar Intro el programa nos mostrara los mensajes del histórico del sistema, pero solo relacionados con el(los) trabajo(s) que realiza(n) las copias de seguridad (y que habremos definido anteriormente en el programa), muestra de un trabajo de backup que salva todos los objetos de una biblioteca:
                               Visualizar Contenido de Anotaciones Históricas             
 Trabajo 005472/QSYSOPR/BACKUP_1 arrancado el 18/12/11 a las 22:43:28 en el sub  
 159 objetos salvados de la biblioteca MYLIBDAT.                              
 Trabajo 005472/QSYSOPR/BACKUP_1 finalizado el 18/12/11  a las 23:53:13; se util
 Pulse Intro para continuar.                                    
                     Visualizar Contenido de Anotaciones Históricas             
 Trabajo 005473/QSYSOPR/BACKUP_2 arrancado el 18/12/11 a las 22:43:28 en el sub
 9 objetos salvados de la biblioteca MYLIBOBJ.                                 
 Trabajo 005473/QSYSOPR/BACKUP_2 finalizado el 18/12/11  a las 22:43:33; se util
 Pulse Intro para continuar.                                                    
                     Visualizar Contenido de Anotaciones Históricas             
 Trabajo 005487/QSYSOPR/BACKUP_3 arrancado el 18/12/11 a las 23:53:25 en el sub
 15 objetos salvados de la biblioteca MYLIBJRN.                           
 Trabajo 005487/QSYSOPR/BACKUP_3 finalizado el 18/12/11  a las 23:59:13; se util
 Pulse Intro para continuar.
Podemos definir tantos trabajos como tengamos en la cadena de backup (en el ejemplo hay 3 trabajos).
Podéis bajar el código de esta utilidad del grupo Recursos AS400 en IBM developersWorks.

miércoles, 29 de febrero de 2012

sábado, 4 de febrero de 2012

Utilidad RTVOS400

En el AS400 no existe ningún comando para recuperar en un programa la versión del sistema operativo que esta instalado en nuestro AS400.
La utilidad RTVOS400 viene a suplir esta falta.
Cuando usemos este mandato desde un programa nos devolverá, en una variable de 9 caracteres, la versión del sistema operativo instalado en el siguiente formato: VnnRnnMnn, por ejemplo V05R04M00 para V5R4M0.

La utilidad crea la área de datos QTEMP/OS400VER con el valor devuelto, por si es necesario reutilizarlo.
Podéis bajar el código de esta utilidad de este enlace.

martes, 31 de enero de 2012

Vuelta a la actividad

Reemprendo la actividad en el blog después de una larga temporada, debida a un cúmulo de circunstancias (personales y laborables) que espero encauzar positivamente este año.