Vous êtes sur la page 1sur 2

Aplicaciones de las colas de mensajes en AS400 Cul es la utilidad de las colas de mensaje del AS40ms all del SNDMSG

y DSPMSG? Qu posibilidades ofrece el lenguaje CL de manipularlas? Conozca algunas de sus utilidades y posibilidades de manipulacin. 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 defectopor ejemplo, una *MSGQ para cada perfil de usuario y una para cada dispositivo de pantalla, usadas por los trabajos interactivos. Tambin existe un conjunto de colas de mensaje temporarias creadas para cada job y para cada programa invocado, usadas por el OS/40para rutearun mensaje de estado o de error del sistema operativo. Debidamente monitoreadas (por medio del comando MONMSG), estas colas de mensaje tienen una importante aplicacin en la programacin CL para atrapar situaciones de error y determinar la accin a seguir. Ms all de sto, es posible crear otras colas de mensaje (mediante el comando CRTMSGQ) con fines especficos, y lograr interesantes soluciones a travs de su aplicacin. Por ejSi se ha implementado desconexin automtica de sesiones por tiempo, es posible evitar que sto suceda en determinadas terminales? Es posible lograr que se generen automticamente Receptores de diario (objetos *JRNRCV) cuando el vigente alcanza su tamao mximo? Estas situaciones slo son posibles aprovechando adecuadamente las colas de mensaje. En el presente artculo se da un ejemplo de una solucin implementada con colas de mensaje, y queda como propuesta al lector imaginar, a partir de ella, muchas posibilidades ms. Generalidades de las colas de mensaje Las colas de mensaje presentan, entre otros, dos atributos esenciales: Entrega (Parmetro DLVRY)especifica cmo recibe un mensaje el destinatario cuando ste llega a la cola de mensajes. La entrega por omisin es *NOTIFY, que hace sonar la alarma de la terminal y desplegar el smbolo 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 sesin de pantalla. La entrega *DFT determina que los mensajes que requieren respuesta se contestan con-su respuesta por omisin (y no se aade ningn mensaje a-la cola de mensajes a menos que la cola de mensajes-sea QSYSOPR), y, por ltimo, la entrega *BREAK interrumpe la sesin de pantalla y provoca la ejecucin de un programa asociado a esa cola de mensajes. Programa manejo de interrupcin (parmetro 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 parmetro el nombre de un programa escrito por el usuario. Desconexin selectiva de dispositivos de pantalla A travs 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 cuntos minutos el sistema mantiene a una sesin inactiva, mientras que el valor del sistema QINACTMSGQ especifica qu accin se toma con las sesiones que superan esa cantidad. Las acciones posibles son: *DSCJOBla sesin es desconectada y conservada en el sistema *ENDJOBla sesin es finalizada nombre de una *MSGQel sistema enva un mensaje a la cola de mensajes indicada, con los datos del job que est en esa situacin. El inconveniente de usar cualquiera de las dos primeras opciones, es que son de caracter general-el sistema acta de la misma manera sobre cualquier sesin. Si se indica desconectar toda sesin que supere los 1minutos de inactividad (valor del sistema QINACTITV = 1y valor del sistema QINACTMSGQ = *DSCJOB), sto afectara tambin a la consola, o a una terminal en un mostrador de atencin al pblico. Sin embargo, utilizando la opcin nombre de cola de mensajes, es posible implementar un

programa de interrupcin 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 interrupcin (A1). Debido a que los cambios efectuados sobre colas de mensaje permanecen slo mientras el trabajo que los realiz se encuentra activo, es necesario demorar la ejecucin 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, pasara a modalidad *HOLD. Para que esta aplicacin se active automticamente, la ejecucin del Programa A podra asociarse a una entrada de trabajo de arranque automtico en el subsistema QCTL. El segundo programa (Programa B) es aqul que automticamente se ejecuta cuando un mensaje llega a la cola de mensajes y sta se encuentra en modalidad *BREAK. Este programa CL debe recibir como parmetros en la sentencia PGM, la cola cola de mensajes, biblioteca y clave de mensaje. 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 parmetro 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 planteramos en la introduccin, la aplicacin para el manejo de colas de salida presentada en este tip, es una de las posibles, pero depender de cada organizacin la posibilidad de utilizar distintas aplicaciones alternativas tomando como base los recursos disponibles para el manejo de colas de mensaje volcados en este artculo.

Vous aimerez peut-être aussi