colaboraciones sumario aceleración de los procesos de...

16
SUMARIO Colaboraciones ¿Ha olvidado su contraseña? Problema resuelto 2 Consulting Mover un perfil de usuario de una partición a otra 4 Utilización del parámetro RBDACCPTH del mandato RGZPFM 6 Falta de espacio en disco 8 Mensaje confuso utilizando subrutina RecLock cuando se produce un bloqueo de registro 10 Utilización de las cláusulas WHERE y ON en consulta SQL 12 Aceleración de los procesos de recreación de las vías de acceso 14 COLABORACIONES Aceleración de los procesos de recreacion de las vías de acceso Falta de espacio en disco Mover un perfil de usuario de una partición a otra Información sobre Power Systems, incluidos AS/400, iSeries y System i Año 28 - Septiembre-Octubre 2014 Nº 299 Precio: 7 Euros Nuestros trabajos HTTP server en el i5/ OS fallan cuando reorganizamos ficheros de producción de gran tamaño porque los servidores no pueden abrir las vías de acceso que el sistema reconstruye tras la reorganización. Los servidores no pueden ejecutarse hasta que finaliza la reindexación, y algunos de estos archivos físicos tienen hasta 60 ficheros lógicos dependientes. ¿Cómo podríamos acelerar el proceso de recreación de vías de acceso para que no ralentice nuestros procesos? La reconstrucción de vías de acceso puede resultar un problema tras las habi- tuales reorganizaciones de ficheros. El espacio de disco de mi System i 550 sigue llenándose y se está aproximando al 87% de utilización. Me preocupa que sea un problema en el futuro una vez el almacenamiento llegue al 90%. He comprobado todo lo que se me ha ocurrido. ¿Tiene alguna idea de que puede estar acaparando mi disco de espacio? Es un tema bastante habitual que mu- chas empresas deben enfrentar algún día. Seguidamente mostramos algunos lugares en los que buscar acaparadores de memo- ria en su sistema. Algunas empresas consiguen mante- ner en sus máquinas auténticos museos de spool, negándose a borrar ingentes canti- dades de ficheros de spool, incluso duran- te varios años. Para saber si este es su problema, utilice el mandato WRKOUTQ (Work with Output Queue) para ver las colas de salida que contienen demasiadas entradas. ¿Tiene usted copias de viejas bibliote- cas salvadas antes de realizar un upgrade de software o un cambio importante en su base de datos? Muchas empresas olvidan borrar las bibliotecas y ficheros salvados acaban por llenar de basura su sistema. Ejecute el mandato DSPLIB (Display Li- brary) para ver si tiene bibliotecas basura en el sistema. Especialmente busque aquellos litera- les como ‘OLD’, ‘SAV’ o ‘XX’ como los últimos caracteres que aparecen en su nombre, típicos finales de bibliotecas co- piadas. Estamos traspasando nuestras particiones IBM i a una nueva máquina Power 7+ que pertenece a nuestra empresa matriz. También quieren mover e instalar ciertos perfiles de usuarios con funciones especiales de una de las particiones a otra partición de la nueva máquina. ¿Cuál es la mejor manera de trasladar un perfil de usuario de una partición a otra? a) Puede imprimir la descripción del perfil de usuario en cuestión y recrear manualmente la misma descripción en la máquina de destino. b) Puede realizar un backup de los perfiles de usuario y restaurarlos en la nueva máquina. Sigue en página 14 Sigue en página 8 Sigue en página 4

Upload: others

Post on 25-Apr-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: COLABORACIONES SUMARIO Aceleración de los procesos de ...att.es/attnews/archivos/attitudes_299.pdfalmacenamiento llegue al 90%. He comprobado todo lo que se me ha ocurrido. ¿Tiene

SUMARIOColaboraciones

¿Ha olvidado su contraseña?Problema resuelto 2 Consulting

Mover un perfil de usuario deuna partición a otra 4

Utilización del parámetroRBDACCPTH del mandato RGZPFM 6 Falta de espacio en disco 8

Mensaje confuso utilizandosubrutina RecLock cuando seproduce un bloqueo de registro 10

Utilización de las cláusulasWHERE y ON en consulta SQL 12

Aceleración de los procesos derecreación de las vías de acceso 14

COLABORACIONESAceleración de los procesos de recreacion de las vías de acceso

Falta de espacio en disco

Mover un perfil de usuario deuna partición a otra

Información sobre Power Systems, incluidos AS/400, iSeries y System i

Año 28 - Septiembre-Octubre 2014 Nº 299 Precio: 7 Euros

Nuestros trabajos HTTP server en el i5/OS fallan cuando reorganizamos ficheros de producción de gran tamaño porque los servidores no pueden abrir las vías de acceso que el sistema reconstruye tras la reorganización. Los servidores no pueden ejecutarse hasta que finaliza la reindexación, y algunos de estos archivos físicos tienen hasta 60 ficheros lógicos

dependientes. ¿Cómo podríamos acelerar el proceso de recreación de vías de acceso para que no ralentice nuestros procesos?

La reconstrucción de vías de acceso puede resultar un problema tras las habi-tuales reorganizaciones de ficheros.

El espacio de disco de mi System i 550 sigue llenándose y se está aproximando al 87% de utilización. Me preocupa que sea un problema en el futuro una vez el almacenamiento llegue al 90%. He comprobado todo lo que se me ha ocurrido. ¿Tiene alguna idea de que puede estar acaparando mi disco de espacio?

Es un tema bastante habitual que mu-chas empresas deben enfrentar algún día. Seguidamente mostramos algunos lugares en los que buscar acaparadores de memo-

ria en su sistema.Algunas empresas consiguen mante-

ner en sus máquinas auténticos museos de spool, negándose a borrar ingentes canti-dades de ficheros de spool, incluso duran-te varios años. Para saber si este es su problema, utilice el mandato WRKOUTQ (Work with Output Queue) para ver las colas de salida que contienen demasiadas entradas.

¿Tiene usted copias de viejas bibliote-cas salvadas antes de realizar un upgrade

de software o un cambio importante en su base de datos? Muchas empresas olvidan borrar las bibliotecas y ficheros salvados acaban por llenar de basura su sistema. Ejecute el mandato DSPLIB (Display Li-brary) para ver si tiene bibliotecas basura en el sistema.

Especialmente busque aquellos litera-les como ‘OLD’, ‘SAV’ o ‘XX’ como los últimos caracteres que aparecen en su nombre, típicos finales de bibliotecas co-piadas.

Estamos traspasando nuestras particiones IBM i a una nueva máquina Power 7+ que pertenece a nuestra empresa matriz. También quieren mover e instalar ciertos perfiles de usuarios con funciones especiales de una de las particiones a otra partición de la nueva máquina. ¿Cuál es la mejor manera de trasladar un perfil de usuario de una partición a otra?

a) Puede imprimir la descripción del perfil de usuario en cuestión y recrear manualmente la misma descripción en la máquina de destino.

b) Puede realizar un backup de los perfiles de usuario y restaurarlos en la nueva máquina.

Sigue en página 14

Sigue en página 8

Sigue en página 4

Page 2: COLABORACIONES SUMARIO Aceleración de los procesos de ...att.es/attnews/archivos/attitudes_299.pdfalmacenamiento llegue al 90%. He comprobado todo lo que se me ha ocurrido. ¿Tiene

COLABORACIONES

2 Septiembre-Octubre 2014ATTITUDES Nº 299

¿Ha olvidado su contraseña?Problema resuelto

El personal de soporte informático podrá ejercer actividades más productivas al quedar liberado de atender la típica petición de nueva contraseñas, por caducidad, por olvido u otra circunstancia, si cuenta con la aplicación iResetMe.

Esta nueva aplicación permite que los propios usuarios de IBM i puedan restaurar su contraseña, o en su caso activar el perfil de usuario incapacitado, a través de una conexión segura, sin tener que recurrir a otras personas o servicios.

SOLUCIÓN INMEDIATALa recuperación de contraseñas es una de las tareas

habituales de los servicios de Help Desk. Según estadísticas del Instituto Gartner entre el 20 y el 50% de las consultas y peticiones a Help Desk (Soporte Informático) son para obtener una nueva contraseña o recordar la vigente, cuya resolución tiene un coste que oscila entre 14 y 28 euros. Estas cifras son del año 2003, pero teniendo en cuenta el número de usuarios que tienen el mismo problema, junto con la falta de soluciones Single

Sign-On (SSO), las cifras calculadas reales son muy superiores.

ENLACE DE ACCESOLa aplicación iResetMe permite que los propios

usuarios restauren la contraseña olvidada de una manera segura. Para recuperar la contraseña olvidada o expirada, o activar el perfil de usuario, el usuario solo tiene que clicar un enlace para abrir una sesión Web encriptada proporcionada por la aplicación iResetMe. Después de contestar correctamente unas preguntas preestablecidas, el usuario puede establecer la nueva contraseña.

SERVIDOR WEB APACHETodo este proceso se ejecuta directamente en el

Servidor IBM i, por medio del Servidor Web Apache integrado, y queda perfectamente registrado para fines de auditoría. La aplicación se proporciona con instancias o solicitudes del Servidor Apache preconfiguradas, así como instrucciones detalladas de los pasos a dar para configurarlo adecuadamente.

Page 3: COLABORACIONES SUMARIO Aceleración de los procesos de ...att.es/attnews/archivos/attitudes_299.pdfalmacenamiento llegue al 90%. He comprobado todo lo que se me ha ocurrido. ¿Tiene

COLABORACIONES

3 Septiembre-Octubre 2014ATTITUDES Nº 299

SELECCIÓN DE USUARIOSEl Administrador del Sistema puede controlar que

usuarios tienen autorización para recuperar sus propias contraseñas. Por ejemplo, puede no ser aconsejable que los perfiles de usuario con más autorizaciones, como ALLOBJ, dispongan de capacidad para usar el iResetMe, ya que serían los mejores candidatos para sufrir abusos o ser objeto de un ataque malicioso. Por defecto, iResetMe no funciona con ningún perfil de usuario que empiece por Q, incluyendo el QSECOFR.

ACCESO CONTROLADOLa aplicación rechazará automáticamente al usuario

después de un cierto número de intentos fallidos al contestar las preguntas de seguridad preestablecidas. En ese caso, la única manera de recuperar la contraseña sería contactando con el Servicio Informático de Soporte al Usuario (Help Desk) y dejar que cumpla su cometido.

FACILIDAD DE USONo cabe duda de que las contraseñas son una losa en

las mentes de los usuarios con exceso de trabajo. Sin embargo, siguen siendo un componente fundamental de las infraestructuras de seguridad en muchas empresas. Minimizar el esfuerzo de lidiar con contraseñas olvidadas debe ser una obviedad. La pregunta es ¿cómo aprovechará el personal del Help Desk el tiempo que les quedará disponible?

ENCRIPTACIÓNEl iResetMe encripta la sesión HTTP entre el servidor

y el cliente. También encripta, en el Servidor IBM i, las preguntas que es necesario responder para poder gestionar la demanda de nueva contraseña. Con ello se mejora la ligereza que se observa en la administración de contraseñas en muchas instalaciones auditadas.

AVISOS DE BLOQUEOSe puede automatizar el envío de un email notificando

al usuario o administrador del sistema, que un determinado perfil de usuario ha sido incapacitado y tiene bloqueado el acceso al sistema; también se comunica el enlace para acceder al sistema de recuperación. Con ello se evita el disgusto de no poder operar con la contraseña de forma imprevista y adelantarse a su recuperación.

NIVELES DE CONTRASEÑANivel 0 y 1.Están limitados a 10 caracteres, utilizando desde la A

hasta la Z y los signos dólar ($), arroba (@), almohadilla (#), subrayado (_).

Nivel 2.Soporta contraseñas de hasta 128 caracteres y permite

cualquier carácter del teclado.Nivel 3.Como el nivel 2 y además distingue mayúsculas y

minúsculas.

Page 4: COLABORACIONES SUMARIO Aceleración de los procesos de ...att.es/attnews/archivos/attitudes_299.pdfalmacenamiento llegue al 90%. He comprobado todo lo que se me ha ocurrido. ¿Tiene

4 Septiembre-Octubre 2014ATTITUDES Nº 299

CONSULTING

PREGUNTA USUARIO:Estamos traspasando nuestras particiones IBM i a una nueva máquina Power 7+ que pertenece a nuestra

empresa matriz. También quieren mover e instalar ciertos perfiles de usuarios con funciones especiales de una de las particiones a otra partición de la nueva máquina. ¿Cuál es la mejor manera de trasladar un perfil de usuario de una partición a otra?

RESPUESTA ATTa) Puede imprimir la descripción del perfil de usuario

en cuestión y recrear manualmente la misma descripción en la máquina de destino.

b) Puede realizar un backup de los perfiles de usuario y restaurarlos en la nueva máquina.

Personalmente nos inclinamos por realizar un backup de la máquina de origen y restaurar los perfiles de usuario en la nueva máquina de destino, obteniendo de esta manera un duplicado exacto de los perfiles de usuario junto con las autorizaciones especiales que tuvieran en la máquina. Si realiza la copia manualmente, existe siempre el riesgo de cometer un fallo y que los perfiles acaben no coincidiendo.

A continuación, detallamos los pasos a seguir para reali-zar el traslado de perfiles de usuario entre distintas particio-nes.

1- Realizar un backup de los datos de seguridad2- Restaurar el perfil de usuario en la máquina de desti-

no3- Restaurar las autorizaciones privadas del perfil de

usuario4- Restaurar o recrear aquellos objetos a los que haga

referencia el perfil de usuario y no se encuentren en la má-quina de destino.

1- Realizar un backup de los datos de seguridadHay tres maneras de realizar una copia de seguridad de

los datos de seguridad. Para hacer un backup de los perfi-les de usuario de la máquina de origen, puede utilizar los dispositivos de su último backup completo del sistema, puede realizar un SAVSYS (Save System), o bien puede realizar un SAVSECDTA (Save Security Data). Veamos como realiza el backup cada uno de estos procesos.

- Un backup completo del sistema (GO SAVE, option 21) salva todos los datos de seguridad, incluidos los perfi-les de usuario, junto con el resto del sistema. Requiere un estado restringido del sistema y su duración suele ser muy larga.

- El mandato SAVSYS, solo salva el LIC (Licensed In-ternal Code), junto con los datos de seguridad. Puede reali-zar el SAVSYS sobre la máquina de origen ejecutando GO SAVE, opción 22. Del mismo modo que la opción 21, men-cionada anteriormente, requiere de un sistema restringido, si bien SAVSYS se ejecuta más rápidamente, al salvar úni-camente el sistema operativo y los datos de seguridad.

- El mandato SAVSECDTA salva todos los datos de se-guridad (incluidos los perfiles de usuario y listas de autori-zación). Lo mejor de este mandato es que no requiere el es-tado restringido del sistema. Puede salvar los perfiles de usuario en cualquier momento de su sistema de origen. Además, se ejecuta rápidamente. El mandato completo para ejecutar un salvado SAVSECDTA en un archivo de salvado es este:

 SAVSECDTA DEV(*SAVF) SAVF(SAVEFILELB/SAVEFILENM)  

Page 5: COLABORACIONES SUMARIO Aceleración de los procesos de ...att.es/attnews/archivos/attitudes_299.pdfalmacenamiento llegue al 90%. He comprobado todo lo que se me ha ocurrido. ¿Tiene

5 Septiembre-Octubre 2014ATTITUDES Nº 299

2- Restaurar el perfil de usario en la máquina de destinoUna vez salvados los datos de seguridad, traslade el dis-

positivo de backup a su máquina de destino. Si salva los datos en un archivo de salvado (*SAVF), puede realizar un

FTP del archivo de salvado a la máquina de destino. Una vez disponible el dispositivo, ejecute el siguiente mandato RSTUSRPRF (Restore User Profile) para restaurar el perfil de usuario en la máquina de destino.

 RSTUSRPRF DEV(devicename) USRPRF(user_profile_name)  

Este mandato restaura el perfil de usuario en la máqui-na de destino. Puede restaurar múltiples perfiles de usuario desde el dispositivo de salvado o bien, puede restaurar todos aquellos perfiles cuyo nombre empiece por un patrón (ge-neric*).

3- Restaurar las autorizaciones privadas del perfil de usuario

Una vez restaurados los perfiles de usuario, también

debería restaurar cualquier autorización privada asociada a dichos perfiles. En los tres tipos de backup mencionados an-teriormente, también se salvan las autorizaciones de objetos asociadas a los perfiles de usuario salvados.

Para recuperar las autorizaciones de objetos asociadas con los perfiles de usuario restaurados, ejecute el mandato RSTAUT (Restore Authority) por cada perfil de usuario que haya restaurado.

A diferencia del mandato RSTUSRPRF, el mandato RSTAUT solo permite restaurar autorizaciones usuario a usuario. Por tanto, tendrá que ejecutarlo tantas veces como perfiles de usuario haya restaurado. No puede restaurar au-torizaciones para múltiples usuarios ni utilizar patrones de nombre.

También a diferencia del mandato RSTUSRPRF, no tiene que especificar el dispositivo de salvado o archivo de salvado desde los que restauró los perfiles de usuario. Los perfiles de usuario son salvados y restaurados junto con sus autorizaciones privadas intactas. Sólo tiene que ejecutar el mandato RSTAUT para restaurar las autorizaciones privadas del perfil en el sistema.

No se preocupe si le aparecen los siguientes mensajes informativos tras ejecutar RSTAUT.

Some authorities not restored for user profile XXXXX.Not all user profiles had all authorities restored.

Esto sucede si había autorizaciones privadas asociadas con el perfil de usuario en el sistema de origen que no están disponibles en el sistema de destino, como por ejemplo, la autorización sobre una biblioteca que no está en destino. Es normal si los sistemas no coinciden. El mandato RSTAUT restaura las autorizaciones que puede.

4- Restaurar o recrear aquellos objetos a los que haga referencia el perfil de usuario y no se encuentren en la má-quina de destino.

Aún no hemos terminado. Existe un último paso tras restaurar el perfil de usuario y sus autorizaciones privadas. Compruebe todos los parámetros de los usuarios de perfil para ver si el perfil de usuario hace referencia a algunos objetos que no existen en el sistema de destino, tales como las descripciones de trabajo o colas de mensajes. Una vez

identificados, recree o restaure esos objetos en el sistema de destino para asegurarse de que el perfil de usuario restaurado funcionará correctamente en el sistema de destino.

Esto es todo para restaurar un perfil de usuario desde un sistema a otro.

 RSTAUT USRPRF(user_profile_name)  

Page 6: COLABORACIONES SUMARIO Aceleración de los procesos de ...att.es/attnews/archivos/attitudes_299.pdfalmacenamiento llegue al 90%. He comprobado todo lo que se me ha ocurrido. ¿Tiene

6 Septiembre-Octubre 2014ATTITUDES Nº 299

PREGUNTA USUARIO:Estoy intentando ejecutar el mandato RGZPFM (Reorganize Physical File) para reorganizar uno de mis

archivos mientras está activo.

y obtengo el siguiente error CPF3135CPF3135 - Access path for member &2 already in use.No es lo que esperaba. ¿Qué estoy haciendo mal?

RESPUESTA ATTDiría que el mandato RGZPFM funcionará correctamente si lo ejecuta con estos parámetros:

La diferencia entre este mandato y su mandato, es que el parámetro RBDACCPTH (Rebuild Access Paths) en mi mandato esta en *NO, mientras que usted los sitúa en *OP-TIMIZE.

Vamos a conocer los tres valores que puede tener el pa-rámetro RBDACCPTH y como afectan al mandato RG-ZPFM, para entender como funciona.

1- Si utiliza el valor *YES en el parámetro RBDAC-

CPTH, el sistema operativo reconstruirá sus vías de acceso a los archivos de manera sincronizada al final de la opera-ción de reorganización. Esto obliga a un bloqueo exclusivo del archivo para poder reconstruir la vía de acceso. Varias fuentes consultadas confirman que establecer el valor del parámetro RBDACCPTH en *YES puede dar lugar a que la operación de reorganización produjera el error CPF3135 si alguien estuviera utilizando el archivo.

2 - Si establece el parámetro RBDACCPTH en *NO, la

 RGZPFM FILE(lib_name/file_name) MBR(member_name) RBDACCPTH(*OPTIMIZE) ALWCANCEL(*YES) LOCK(*SHRUPD)  

 RGZPFM FILE(lib_name/file_name) MBR(member_name) RBDACCPTH(*NO) ALWCANCEL(*YES) LOCK(*SHRUPD)  

Page 7: COLABORACIONES SUMARIO Aceleración de los procesos de ...att.es/attnews/archivos/attitudes_299.pdfalmacenamiento llegue al 90%. He comprobado todo lo que se me ha ocurrido. ¿Tiene

7 Septiembre-Octubre 2014ATTITUDES Nº 299

vía de acceso al archivo se mantendrá durante la operación de reorganización RGZPFM. De este modo, debería evitar-se el mensaje de error CPF3135 y permitir la reconstruc-ción de la vía de acceso mientras se ejecuta el mandato RGZPFM. Establecer el valor *NO también obliga a que establezca el parámetro ALLOW CANCEL en *YES, lo cual no es un problema en su caso.

3- El valor *OPTIMIZE, que usted eligió, hace que el propio mandato RGZPFM establezca por si mismo el pará-metro RBDACCPTH en *YES o *NO, según que método agilice la reconstrucción de la vías de acceso. Entiendo que el sistema operativo, decidió reconstruir las vías de acceso a los archivos de manera sincronizada al final del mandato RGZPFM (RBDACCPTH = *YES) y por eso provocó el mensaje de error CPF3135, haciendo fallar la reorganiza-ción.

De acuerdo con esta información, creo que existe una gran posibilidad de que cambiar el parámetro RBDAC-CPTH a *NO le permite ejecutar el mandato, reorganizar sus fichero y reconstruir las vías de acceso estando activo.

Por desgracia, reorganizar su fichero estando activo no necesariamente es la solución en relación a la disminución del tamaño del fichero. Puede que la opción *NO del pará-metro RBDACCPTH permite reorganizar el fichero aten-diendo al rendimiento, pero quizá no elimine los registros borrados del fichero.

A continuación, mostramos información adicional de cómo funciona RBDACCPTH y cómo afecta al borrado de los registros durante una reorganización del fichero con el parámetro en *NO.

El mandato RGZPFM realiza estas cuatro fases durante la reorganización de un fichero:

I - Una breve fase en la que invalida todas las vías de acceso asociadas con el fichero físico, si el parámetro RB-DACCPTH está en *YES. Esta fase no tiene lugar si el pa-rámetro es *NO.

II - Comprime el fichero y copia los registros borrados en el espacio de registros borrados.

III - Reconstruye todas las vías de acceso e índices aso-ciados con el archivo físico.

IV - Libera el espacio de registros borrados, si es capaz de hacerse con un bloqueo exclusivo del fichero.

Es el cuarto punto del que hay que estar pendiente. Al realizar una reorganización mientras está activo, el manda-to RGZPFM solo puede liberar el espacio de registros bo-

rrados si puede obtener un bloqueo exclusivo del fichero.Lo que sucede con cierta frecuencia, es que el mandato

RGZPFM será capaz de mover los registros borrados del fi-chero al espacio de registros borrados, reconstruir las vías de acceso y luego detenerse, al no poder obtener un blo-queo exclusivo sobre el fichero físico (algo o alguien está utilizando el fichero). Cuando esto sucede, verá aparecer el siguiente mensaje informativo sobre su trabajo:

CPF5729 - Not able to allocate object &1

Si no es posible obtener un bloqueo exclusivo sobre un miembro o fichero físico, el sistema completará las tres pri-meras fases. El mandato RGZPFM finalizará correctamente pero habrá sido incapaz de eliminar el espacio de registros borrados del fichero. Sólo puede hacerlo si se lanza el man-dato RGZPFM cuando el fichero no esté en uso. El archivo disminuirá por la compresión y sus registros borrados se moverán al final del fichero, pero podrá o no eliminar los registros borrados, hasta que ejecute el mandato RGZPFM de nuevo, cuando el fichero no esté siendo utilizado por ningún proceso. Es importante tener en cuenta esta limita-ción.

Nº ejemplares: 8.500Precio ejemplar: 7,00 euros (Anual 60 )Difusión: Andorra, Portugal, Italia y EspañaPublicidad: Tel. 93 319 17 23

Edita: American Top Tools, S.L.Via Laietana, 2008003 Barcelona

Tel. 93 319 16 12 - Fax 93 319 17 55E-mail: [email protected]

Depósito Legal: B-18.455-1993 Imprime Graficas AltagrafPublicación: 10 ediciones

Alcance: 00/58

Page 8: COLABORACIONES SUMARIO Aceleración de los procesos de ...att.es/attnews/archivos/attitudes_299.pdfalmacenamiento llegue al 90%. He comprobado todo lo que se me ha ocurrido. ¿Tiene

8 Septiembre-Octubre 2014ATTITUDES Nº 299

PREGUNTA USUARIO:El espacio de disco de mi System i 550 sigue llenándose y se está aproximando al 87% de utilización. Me

preocupa que sea un problema en el futuro una vez el almacenamiento llegue al 90%. He comprobado todo lo que se me ha ocurrido. ¿Tiene alguna idea de que puede estar ocupando el espacio de disco?

RESPUESTA ATTEs un tema bastante habitual que muchas empresas de-

ben enfrentar algún día. Seguidamente mostramos algunos lugares en los que buscar acaparadores de memoria en su sistema.

1.- Excesivos ficheros de spool Algunas empresas consiguen mantener en sus máquinas

auténticos museos de spool, negándose a borrar ingentes cantidades de ficheros de spool, incluso durante varios años. Para saber si este es su problema, utilice el mandato WRKOUTQ (Work with Output Queue) para ver las colas de salida que contienen demasiadas entradas.

WRKOUTQ OUTQ(*ALL)

Este mandato muestra todas sus colas de salida y el nú-mero ficheros de spool contenidos en cada una de ellas, permitiendo ver si los usuarios están manteniendo demasia-dos informes en el sistema.

2.- Bibliotecas de basura¿Tiene usted copias de viejas bibliotecas salvadas antes

de realizar un upgrade de software o un cambio importante en su base de datos? Muchas empresas olvidan borrar las bibliotecas y ficheros salvados acaban por llenar de basura su sistema. Ejecute el mandato DSPLIB (Display Library) para ver si tiene bibliotecas basura en el sistema.

DSPLIB LIB(*ALL)

Especialmente busque aquellos literales como ‘OLD’, ‘SAV’ o ‘XX’ como los últimos caracteres que aparecen en su nombre, típicos finales de bibliotecas copiadas. Incluso en algunos casos, estas bibliotecas basura puede que con-tengan la fecha en que se crearon (RBT 021810). De todas formas, asegúrese de hacer un backup de esas bibliotecas en otro dispositivo de backup antes de proceder a su borra-do, no vaya a ser que luego descubra que no eran bibliote-cas basura.

3.- Ficheros basura o Ficheros o miembros de fiche-ros de gran tamaño que necesitan reorganización

Años atrás desarrolle un procedimiento para crear un archivo que contenga meta-datos sobre todos los archivos de mi sistema, incluyendo el número de registros borrados en cada fichero o miembro. Si quiere verlo puede leer el ar-tículo “Determining Which OS/400 Files Need Reorgani-zing” en este enlace http://www.itjungle.com/tfh/tfh102703-story04.html

Una vez creado, clasifique sus metadatos de archivos en orden descendiente por el número de registros borrados. Esto proporcionará una guía para determinar que ficheros pueden significar la recuperación de más espacio en disco tras su reorganización.

Page 9: COLABORACIONES SUMARIO Aceleración de los procesos de ...att.es/attnews/archivos/attitudes_299.pdfalmacenamiento llegue al 90%. He comprobado todo lo que se me ha ocurrido. ¿Tiene

9 Septiembre-Octubre 2014ATTITUDES Nº 299

También intente localizar los ficheros basura y versio-nes antiguas de grandes ficheros. Esto incluye los viejos ar-chivos de salvado no eliminados, así como versiones de prueba de grandes archivos que probablemente alguien se encargo de guardar en una biblioteca privada antes de reali-zar un cambio en la base de datos. Puede utilizar los meta-datos de los ficheros para localizarlos.

4.- Receptores de JournalRecientemente solventamos un problema de espacio

tras revisar y encontrar 27 receptores de journal que nunca habían sido borrados del sistema en el momento adecuado. Estos consumían alrededor de un 9 % del almacenamiento del disco y su eliminación redujo el uso de almacenamiento de un 86 a un 77 %, lo suficiente para alejar a nuestra má-quina de su colapso ante la ocupación total del almacena-miento. Para ver los receptores de journal en su sistema, ejecute el mandato WRKJRNRCV (Work with Journal Re-ceivers).

WRKJRNRCV JRNRCV(*ALL/*ALL)

En el resultado obtenido, busque aquellos receptores de journal que aparecen con frecuencia, cuyo nombre raíz sea

el mismo y tenga diferente numeración. Por ejemplo, AU-DRCV2602 a AUDRCV2623. Si observa este patrón, com-pruebe la biblioteca a la que pertenecen los receptores con el mandato DSPLIB (Display Library).

DSPLIB LIB(LIB_NAME)

Si los receptores de journal sospechosos están consu-miendo mucho espacio, puede borrar los viejos receptores y modificar su técnica de gestión de journals, para separar y borrar receptores con cierta periodicidad.

5.- Sistema Integrado de Archivos (IFS) En algunos casos, algunas aplicaciones de terceros pue-

den llenar el IFS del AS/400 con ficheros ASCIII u otros objetos. Se ha observado con paquetes de fax o email don-de los viejos registros no son purgados de manera sistemá-tica y acumulan varios meses de documentos en el directo-rio IFS. Hace algunos años, evalúe 4 herramientas para cal-cular el tamaño de la IFS del AS/400 y así determinar si al-gunas carpetas estaban tomando demasiado espacio. Quizá puede utilizar alguna de ellas para comprobar el excesivo uso de espacio en la IFS del AS/400. Puede leer el artículo “How big is My IFS?” en el enlace http://www.itjungle.com/fhg/fhg111407-story03.html

Page 10: COLABORACIONES SUMARIO Aceleración de los procesos de ...att.es/attnews/archivos/attitudes_299.pdfalmacenamiento llegue al 90%. He comprobado todo lo que se me ha ocurrido. ¿Tiene

10 Septiembre-Octubre 2014ATTITUDES Nº 299

PREGUNTA USUARIO:En nuestros programas RPG protegemos operaciones de entrada (input) tipo CHAIN, READ, etc… con una

rutina de control de errores la cual notifica a los usuarios de bloqueos en registros. En otras palabras, la subrutina RecLock envía un mensaje break al usuario que provoca el bloqueo y muestra una ventana con información del bloqueo al usuario solicitante. Sin embargo, está lógica no está funcionando en uno de nuestros programas y no acabamos de ver porqué. ¿Podrían ayudarnos?

RESPUESTA ATTEste problema nos da la oportunidad de escribir sobre

un asunto que nos ronda la cabeza desde hace algún tiem-po. Antes, una pregunta sobre la que pensar. ¿Cuál es la

mejor manera de depurar un programa? La respuesta al fi-nal del artículo. Volviendo al problema planteado. Su pro-grama fuente RPG era algo similar a este:

La actualización fallaba debido al bloqueo del registro. No debería haber un bloqueo del registro, ya que el CHAIN debería haber iterado hasta que el bloqueo desapareciera.

De hecho el problema estaba en la propia subrutina Re-cLock. Algo causaba que %ERROR devolviera “false”, lo que finalizaba el bucle “do-until”, aún cuando el registro estaba bloqueado. Hay una valiosa lección detrás de todo esto. Aprendida durante la instalación de un compilador RPGIII de ASNA en un System/34, ¿los recuerdan?

El S/34 por defecto incorporaba el RPG II de IBM. ASNA, vendía algunas mejoras tales como ficheros descri-tos externamente y códigos op estructurados (IFxx, DOWxx, etc..). En la caja, junto con los diskettes había un libro y en él, una lección.

El que escribió ese libro fue muy inteligente. Ella o él, recomendaban al programador utilizar un indicador inme-diatamente cuando se establecía o bien, guardar la configu-ración del indicador en una variable apropiada para su uso posterior. Por ejemplo, no esto…

 C Unlock SomeFile C DoU Not %Error C SomeKey Chain(E) SomeFile C If %Error C Exsr RecLock C EndIf C EndDo * . . . more stuff . . . C Update(E) SomeRec  

 * ... omitted code * HiLoEq C CTYPE COMP 'E' 25 C N25 CTYPE COMP 'F' 25 C N25 CTYPE COMP 'R' 25 * ... more code C 25 EXSR EXPDT * ... more code C EXCPTDTLLIN * ... more code OREPORT E 1 01 DTLLIN * ... more code O 25 122 'EXPEDITE'

Page 11: COLABORACIONES SUMARIO Aceleración de los procesos de ...att.es/attnews/archivos/attitudes_299.pdfalmacenamiento llegue al 90%. He comprobado todo lo que se me ha ocurrido. ¿Tiene

11 Septiembre-Octubre 2014ATTITUDES Nº 299

En el primer código, el programador depende del indi-cador 25 para que contenga su configuración de modo que pueda ser utilizado con fiabilidad posteriormente en las specs de cálculo y también, en las Output specs. Este tipo de cosas funciona bien la mayoría de las veces, pero oca-sionalmente pasa algo, quizás una modificación de un pro-grama que sin intención cambia la configuración del indi-cador, y de repente, un programa que funcionaba correcta-mente se vuelve caótico.

En el segundo ejemplo, la dependencia de este indica-dor se ha eliminado. El indicador 25 se establece una vez y su configuración se guarda en la variable EXPFLG. Aún cuando algo pueda cambiar el indicador 25, está lógica continuará funcionando.

Tras conocer está técnica, sólo se utiliza un indicador de propósito general (aparte de los indicadores de manejo de pantalla) por programa.

Quizás este pensando, “todo eso está muy bien, pero no he utilizado un indicador en años”. Lo cual es genial. Mejor que no lo haga. Pero el código anterior muestra que pode-mos seguir haciendo el mismo error de una manera más ac-tual. Las funciones integradas, como %ERROR, %FOUND y %EOF, son candidatas al mismo error, incluso cuando el nombre de un fichero se adjunta como un argumento.

Sugerimos que revise su código de acuerdo con estas lí-neas generales.

La dependencia de la función %ERROR ha desapareci-do.

Ahora, volviendo a la pregunta del principio que deja-mos sin respuesta. La mejor manera de depurar un progra-

ma es no poner los errores en el programa en la medida de lo posible. Las mejores prácticas, incluso las más pequeñas como las de la lección aprendida de ASNA hace 30 años, reducen la introducción de errores y promocionan una pro-gramación fiable.

 * ... omitted code * HiLoEq C CTYPE COMP 'E' 25 C N25 CTYPE COMP 'F' 25 C N25 CTYPE COMP 'R' 25 C MOVE '0' EXPFLG 1 C 25 MOVE '1' EXPFLG * ... more code C EXPFLG IFEQ '1' C EXSR EXPDT C END * ... more code C EXPFLG IFEQ '1' C MOVE 'EXPEDITE'MSG 8 C ELSE C MOVE ' 'MSG C END C EXCPTDTLLIN * ... more code OREPORT E 1 01 DTLLIN * ... more code O MSG 122  

Sino esto:

 D SomeFileError s n C DoU not SomeFileError C SomeKey Chain(E) SomeFile C Eval SomeFileError = %Error C If SomeFileError C Exsr RecLock C EndIf C EndDo  

Page 12: COLABORACIONES SUMARIO Aceleración de los procesos de ...att.es/attnews/archivos/attitudes_299.pdfalmacenamiento llegue al 90%. He comprobado todo lo que se me ha ocurrido. ¿Tiene

12 Septiembre-Octubre 2014ATTITUDES Nº 299

PREGUNTA USUARIO:Una consulta acerca de SQL. Tengo dos archivos de bases de datos. Uno contiene el encabezado y el otro

archivo, los detalles. Puede haber varios registros de detalles para un solo encabezado, pero solo quiere ver algunos registros de detalles. Aquí viene el problema. Quisiera recuperar todos los registros de encabezados, incluso aquellos de los que no haya seleccionado ningún detalle correspondiente. En principio debería ser una sencilla consulta, pero todos mis esfuerzos hasta el momento me permiten obtener solo los registros de encabezados para los detalles seleccionados.

RESPUESTA ATTEs un poco más complicado de lo que parece a primera

vista. Pero es sencillo, una vez se entienda la diferencia en-tre WHERE y ON. Partamos de la siguiente tabla que con-tiene los encabezados de factura.

Y esta es la tabla que contiene los detalles relacionados.

Esta es la consulta que estaba ejecutando.

 SELECT H.* FROM INVHDR AS H Invoice Company Customer Date 47566 1 44 2004-05-03 47567 2 5 2004-05-03 47568 1 10001 2004-05-03 47569 7 777 2004-05-03 47570 7 777 2004-05-04 47571 2 5 2004-05-04

 

 SELECT D.* FROM INVDTL AS D Invoice Line Item Price Quantity 47566 1 AB1441 25.00 3 47566 2 JJ9999 20.00 4 47567 1 DN0120 .35 800 47569 1 DC2984 12.50 2 47570 1 MI8830 .10 10 47570 2 AB1441 24.00 100 47571 1 AJ7644 15.00 1

 SELECT H.INVOICE, H.COMPANY, H.CUSTNBR, H.INVDATE, D.LINE, D.ITEM, D.QTY FROM INVHDR AS H LEFT JOIN INVDTL AS D ON H.INVOICE = D.INVOICE WHERE D.ITEM = 'AB1441' Invoice Company Customer Date Line Item Quantity 47566 1 44 2004-05-03 1 AB1441 3 47570 7 777 2004-05-04 2 AB1441 100  

Tel. 93 319 16 12 Fax 93 319 17 55 [email protected] www.att.es

Acceso desde una única interfase (DBU), instalada en un System i (AS/400),

a diferentes servidores en múltiples plataformas, entre ellas: ✔ SQL Server ✔ DB2 UDB ✔ MySQL ✔ Informix ✔ Oracle ✔ DB2 400

DBU RDBAcceso a Bases Datos Remotas

Page 13: COLABORACIONES SUMARIO Aceleración de los procesos de ...att.es/attnews/archivos/attitudes_299.pdfalmacenamiento llegue al 90%. He comprobado todo lo que se me ha ocurrido. ¿Tiene

13 Septiembre-Octubre 2014ATTITUDES Nº 299

He seleccionado los detalles para el artículo AB1441 únicamente. El problema es que solo dispongo de informa-ción de encabezado para los pedidos que incluyan esos artí-culos. Si bien, Ud. quiere información de cabecera para to-

dos las ordenes.La solución es mover la expresión de selección de la

cláusula WHERE a una cláusula ON, de esta manera.

¿Por qué es diferente? La cláusula WHERE se ejecuta después de que haya tenido lugar el Join. Es decir, el motor de la base de datos junta las tablas para producir el conjun-to de resultados, luego aplica la cláusula WHERE para se-leccionar los registros que contienen el artículo AB1441. Esto tiene el efecto de convertir un Outer Join en un Inner Join.

La cláusula ON, por otro lado, se ejecuta durante el JOIN. El motor de la base de datos en este caso, selecciona solo los registros de detalle que incluyan el artículo

AB1441, luego junta los registros de detalle seleccionados a los registros de encabezados utilizando un Left Outer Join. El resultado es que obtenemos el Left Outer Join bus-cado, si bien solo vemos los registros de detalles que he-mos seleccionado. Genial, ¿no?

Trasladar la selección de registro de detalles del WHE-RE al ON no es la única manera de obtener el resultado es-perado. Puede seleccionar explícitamente solo los registros de detalles requeridos colocando la cláusula SELECT den-tro del Join, así:

 SELECT H.INVOICE, H.COMPANY, H.CUSTNBR, H.INVDATE, D.LINE, D.ITEM, D.QTY FROM INVHDR AS H LEFT JOIN INVDTL AS D ON H.INVOICE = D.INVOICE AND D.ITEM = 'AB1441' Invoice Company Customer Date Line Item Quantity 47566 1 44 2004-05-03 1 AB1441 3 47567 2 5 2004-05-03 - - - 47568 1 10001 2004-05-03 - - - 47569 7 777 2004-05-03 - - - 47570 7 777 2004-05-04 2 AB1441 100 47571 2 5 2004-05-04 - - -  

 SELECT H.INVOICE, H.COMPANY, H.CUSTNBR, H.INVDATE, D.LINE, D.ITEM, D.QTY FROM INVHDR AS H LEFT JOIN (SELECT * FROM INVDTL WHERE ITEM = 'AB1441') AS D ON H.INVOICE = D.INVOICE

 

Page 14: COLABORACIONES SUMARIO Aceleración de los procesos de ...att.es/attnews/archivos/attitudes_299.pdfalmacenamiento llegue al 90%. He comprobado todo lo que se me ha ocurrido. ¿Tiene

14 Septiembre-Octubre 2014ATTITUDES Nº 299

PREGUNTA USUARIO:Nuestros trabajos HTTP server en el i5/OS fallan cuando reorganizamos ficheros de producción de gran

tamaño porque los servidores no pueden abrir las vías de acceso que el sistema reconstruye tras la reorganización. Los servidores no pueden ejecutarse hasta que finaliza la reindexación, y algunos de estos archivos físicos tienen hasta 60 ficheros lógicos dependientes. ¿Cómo podríamos acelerar el proceso de recreación de vías de acceso para que no ralentice nuestros procesos?

RESPUESTA ATTLa reconstrucción de vías de acceso puede resultar un

problema tras las habituales reorganizaciones de ficheros. También pueden serlo en el caso de IPL anormales, dónde muchas vías de acceso pueden resultar inválidas y deben ser reconstruidas antes de poder utilizarse de nuevo. Vamos a ofrecer una solución que nos permite determinar que vías de acceso necesitan reconstrucción junto con una técnica para acelerar la reconstrucción.

Deteminar que vías de acceso necesitan reconstruc-ción. El mandato EDTRBDAP (Edit Rebuild of Access Paths) permite ver y manipular la lista de vías de acceso que su sistema está actualmente reconstruyendo. Esta lista muestra el orden en que se reconstruirán las vías de acceso y permite resecuenciar ese orden de modo que se reconstru-yan las vías de acceso más críticas antes.

En la pantalla mostrada por EDTRBDAP, puede que observe que algunas vías de acceso tienen asignada una prioridad de reconstrucción *OPN. La primera vez que un trabajo intenta abrir una vía de acceso con prioridad *OPN, el sistema reconstruye esa vía de acceso antes de devolver datos al trabajo. Para otras prioridades, el sistema recons-

truye las vías de acceso inválidas de acuerdo con la priori-dad que tenga en la lista (1-99). Si todas tienen la misma prioridad, el sistema empieza por el principio de la lista y continua hacia abajo hasta el final de la lista.

Es posible resecuenciar la reconstrucción de vías de ac-ceso del sistema designando una prioridad para cada re-construcción de 1-99. Las vías de acceso con los números más bajos serán reconstruidas antes y las que tengan núme-ros mayores serán reconstruidas más tarde. La pantalla ED-TRBDAP muestra un tiempo estimado de reconstrucción para cada vía de acceso, así como el tiempo transcurrido para cada vía de acceso que está siendo reconstruida.

Ahora bien, existen un par de problemas con la manera en que el sistema la reconstrucción de vías de acceso.

Problema 1- El sistema reconstruye vías de acceso a un ritmo no superior a una o dos reconstrucciones por procesa-dor. Si tiene tres procesadores activados en su sistema, por ejemplo, el sistema no sería capaz de reconstruir más de 6 vías de acceso a la vez. El sistema reconstruye las vías de acceso dentro de los trabajos QDBSRVNN, donde NN es un número basado en el número de procesadores activos en el sistema.

Page 15: COLABORACIONES SUMARIO Aceleración de los procesos de ...att.es/attnews/archivos/attitudes_299.pdfalmacenamiento llegue al 90%. He comprobado todo lo que se me ha ocurrido. ¿Tiene

15 Septiembre-Octubre 2014ATTITUDES Nº 299

 SBMJOB CMD (OPNDBF FILE (LIB_NAME/FILE_NAME) OPTION (*INP)) JOB (FILE_NAME) JOBQ (QSYS/QSYSNOMAX)

 

Para cada trabajo sometido a batch, el mandato OPN-DBF (Open Database File) intentará abrir la vía de acceso inválido. Dado que la entrada de la vía de acceso EDTRB-DAP está establecida en *OPN, el sistema reconstruirá de forma inmediata la vía de acceso con la prioridad de ejecu-ción del trabajo sometido (el cuál es superior a 52). Al so-meter esos trabajos a la cola de salida QSYSNOMAX, va-rias vías de acceso pueden ser ejecutadas simultáneamente en el subsistema QSYSWRK, el cual no tiene límite en el

número de trabajos que puede ejecutar simultáneamente.Al procesar como batch la reconstrucción de vías de ac-

ceso, debería poder mejorar la duración de las reconstruc-ciones y por tanto obtener respuestas a las solicitudes HTTP mucho antes. En su caso, al saber que vías de acceso necesitan reconstrucción, puede automatizar está técnica a través de un programa CL que somete los mandatos OPN-DBF una vez finalice la reorganización de ficheros.

Problema 2- Los trabajos QDBSRVNN se ejecutan con prioridad 52, mucho más baja que las de la mayoría de los trabajos ejecutados en el sistema, por lo que las reconstruc-ciones tardarán más al ir detrás de muchos otros trabajos de producción.

Acelerar las reconstruccionesDado este escenario, mostramos una técnica para incre-

mentar el número de vías de acceso que pueden ser recons-truidas simultáneamente. En las pruebas realizadas en una situación similar, se redujo el tiempo aproximado de 5 ho-ras para la reconstrucción de vías de acceso a 2 horas.

1.- Abra dos sesiones de pantalla verde 5250. En una, abra la lista EDTRBDAP. En la otra sesión, llame una línea de mandatos.

2.- En la lista EDTRBDAP, modifique la prioridad para cualquier vía de acceso que desee reconstruir de forma in-mediata por *HLD (Hold) para asegurar que ningún otro trabajo está bloqueando la vía. Luego modifique la priori-dad de reconstrucción por *OPN para decirle al sistema que reconstruya la vía de acceso la próxima vez que al-guien decida acceder a ella.

3.- Para todas las vías de acceso que tengan prioridad *OPN, utilice el siguiente mandato SBMJOB (Submit Job) para reconstruir las vías de acceso inmediatamente.