Lea en AS/400 System i . . .

Aprovechando las posibilidades del WRKACTJOB a través de sus parámetros

Obtenga una salida diferente de la habitual al ejecutar el comando WRKACTJOB, aprovechando lo ofrecido por algunos parámetros interesantes que posibilitan entre otras acciones la de renovar automáticamente la pantalla resultante.

FaceBookTwitterGoogle+

Aplicaciones de las colas de mensajes en AS400

¿Cuál es la utilidad de las colas de mensaje del AS400 más allá del SNDMSG y DSPMSG? ¿Qué posibilidades ofrece el lenguaje CL de manipularlas?

Conozca algunas de sus utilidades y posibilidades de manipulación.

Las colas de mensaje (*MSGQ) son objetos especiales del sistema operativo utilizados como buzones; un "lugar"  al cual podemos enviar mensajes para que otro los recoja.

Existe un conjunto de colas de mensaje que el sistema genera por defecto: por ejemplo, una *MSGQ para cada perfil de usuario y una para cada dispositivo de pantalla, usadas por los trabajos interactivos. También existe un conjunto de colas de mensaje temporarias creadas para cada job y para cada programa invocado, usadas por el OS/400 para "rutear" un mensaje de estado o de error del sistema operativo. Debidamente monitoreadas (por medio del comando MONMSG), estas colas de mensaje tienen una importante aplicación en la programación CL para atrapar situaciones de error y determinar la acción a seguir.

Más allá de ésto, es posible crear otras colas de mensaje (mediante el comando CRTMSGQ) con fines específicos, y lograr interesantes soluciones a través de su aplicación. Por ej: Si se ha implementado desconexión automática de sesiones por tiempo, ¿es posible evitar que ésto suceda en determinadas terminales? ¿Es posible lograr que se generen automáticamente Receptores de diario (objetos *JRNRCV) cuando el vigente alcanza su tamaño máximo? Estas situaciones sólo son posibles aprovechando adecuadamente las colas de mensaje. En el presente artículo se da un ejemplo de una solución implementada con colas de mensaje, y queda como propuesta al lector imaginar, a partir de ella, muchas posibilidades más.

AS400-colas-de-mensajes-creadas-por-sistema1-2

Generalidades de las colas de mensaje

Las colas de mensaje presentan, entre otros, dos atributos esenciales:

  • Entrega (Parámetro DLVRY): especifica cómo recibe un mensaje el destinatario cuando éste llega a la cola de mensajes. La entrega por omisión es *NOTIFY, que hace sonar la alarma de la terminal y desplegar el símbolo de mensajes pendientes en la pantalla. La entrega *HOLD retiene el mensaje en la cola sin avisar su llegada, y es el comportamiento de todas las colas de mensaje que no se encuentran asociadas a una sesión de pantalla. La entrega *DFT determina que los mensajes que requieren respuesta se contestan con su respuesta por omisión (y no se añade ningún mensaje a la cola de mensajes a menos que la cola de mensajes sea QSYSOPR), y, por último, la entrega *BREAK interrumpe la sesión de pantalla y provoca la ejecución de un programa asociado a esa cola de mensajes.

  • Programa manejo de interrupción (parámetro PGM): Especifica el nombre del programa/comando que es invocado cuando llega un mensaje si la cola de mensajes está en modalidad *BREAK. Por defecto, este programa es el asociado al comando DSPMSG, pero es posible indicar en este parámetro el nombre de un programa escrito por el usuario.

Desconexión selectiva de dispositivos de pantalla

A través de valores del sistema es posible determinar qué tratamiento se les da a los trabajos interactivos que pasan una determinada cantidad de tiempo inactivos. El valor del sistema QINACTITV indica cuántos minutos el sistema mantiene a una sesión inactiva, mientras que el valor del sistema QINACTMSGQ especifica qué acción se toma con las sesiones que superan esa cantidad. Las acciones posibles son:

*DSCJOB: la sesión es desconectada y conservada en el sistema

*ENDJOB: la sesión es finalizada

nombre de una *MSGQ: el sistema envía un mensaje a la cola de mensajes indicada, con los datos del job que está en esa situación.

El inconveniente de usar cualquiera de las dos primeras opciones, es que son de caracter general:  el sistema actúa de la misma manera sobre cualquier sesión. Si se indica desconectar toda sesión que supere los 10 minutos de inactividad (valor del sistema QINACTITV = 10 y valor del sistema QINACTMSGQ = *DSCJOB), ésto afectaría también a la consola, o a una terminal en un mostrador de atención al público.

Sin embargo, utilizando la opción nombre de cola de mensajes, es posible implementar un programa de interrupción que determine si el trabajo inactivo será desconectado, finalizado o ignorado.

Como primer paso, deberá crearse una cola de mensajes cuyo nombre debe figurar en el valor del sistema QINACTMSGQ. Luego, deben implementarse dos programas CL. El primero de ellos (marcado como Programa A) es el encargado de establecer en *BREAK la entrega de la cola de mensajes y asociarle el programa de interrupción (A1).

Debido a que los cambios efectuados sobre colas de mensaje permanecen sólo mientras el trabajo que los realizó se encuentra activo, es necesario demorar la ejecución del programa por una cantidad indefinida de tiempo, con el comando DLYJOB (A2). En caso contrario, la cola de mensajes al ser liberada por el programa, pasaría a modalidad *HOLD.

Para que esta aplicación se active automáticamente, la ejecución del Programa A podría asociarse a una entrada de trabajo de arranque automático en el subsistema QCTL.

AS400-Programa-A-setea-colas-mensaje

El segundo programa (Programa B) es aquél que automáticamente se ejecuta cuando un mensaje llega a la cola de mensajes y ésta se encuentra en modalidad *BREAK. Este programa CL debe recibir como parámetros en la sentencia PGM, la cola cola de mensajes, biblioteca y clave de mensaje.

AS400-Programa-B-programa-de-interrupcion

El comando RCVMSG en el programa B debe utilizarse para leer el mensaje que llega con el nombre del trabajo inactivo en la variable asociada al parámetro MSGDTA, del comando. A partir de los datos contenidos en esta úlltima variable, se puede programar el tratamiento que se le otorgará a cada trabajo interactivo inactivo.

Como planteáramos en la introducción, la aplicación para el manejo de colas de salida presentada en este tip, es una de las posibles, pero dependerá de cada organización la posibilidad de utilizar distintas aplicaciones alternativas tomando como base los recursos disponibles para el manejo de colas de mensaje volcados en este artículo.


Copyright 2012 - Teknoda S.A.

IMPORTANTE:
“Notas técnicas de AS/400 - IBM i" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes IBM i - AS/400. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. NS iTech - Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos.
Si desea suscribir otra dirección de e-mail para que comience a recibir las Notas Técnicas AS400 - IBM i, envíe un mensaje desde esa dirección a info@nsitech.com.ar  o  a letter400@nsitech.com.ar, aclarando nombre, empresa, cargo y país del suscriptor.

AS400 , iSeries, System i, IBM Power Systems, IBM i son marcas registradas de IBM. IBM no es el editor de esta publicación y no es responsable de la misma en ningún aspecto. La información contenida en esta publicación ha sido generada por nuestros especialistas a partir de fuentes consideradas confiables y del ejercicio profesional cotidiano. No obstante, por la posibilidad de error humano, mecánico, cambio de versión u otro, NS iTech - Teknoda no garantiza la exactitud o completud de la misma.
COPYRIGHT NS iTech - TEKNODA S.A.  PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL SIN CONSENTIMIENTO DE  NS iTech - TEKNODA


Ficha técnica: Notas técnicas – Tips de AS400 - iSeries ”Aplicaciones de las colas de mensajes en AS400"

Tema: Colas de mensaje,  Gestión de trabajos, valores del sistema. Descripción: Conozca algunas de las posibilidades de utilización y manipulación de las colas de mensaje..

Lea en AS/400 Tips . . .

Infografía comparativa Comandos de SAVE RESTORE del AS400

save_restore_thumbnail

Conozca y diferencie visualmente qué partes del almacenamiento resguarda y restaura cada comando y cada opción del Menú Salvar y Restaurar. PUEDE DESCARGAR UN FORMATO POSTER PARA IMPRESION.

Para lograr un entendimiento conceptual es de suma utilidad contar con una ayuda gráfica, que  permita diferenciarlos a primera vista. Nuestro equipo de especialistas ha desarrollado el "Infographics" que presentamos con este tip. Por supuesto, el mismo debe complementarse con la información detallada de los innumerables parámetros de cada comando, pero es un útil marco de referencia  para recordar el área de injerencia de cada comando.

LEER ESTE ARTICULO >>>>>

 

 

 

Copyright © 2024 Teknoda Tech Portal & Training. Todos los derechos reservados.
Joomla! es software libre, liberado bajo la GNU General Public License.