Palabras clave EGL relacionadas con MQSeries

Cuando se trabaja con las palabras clave EGL relacionadas con MQSeries, como por ejemplo add y scan, se define un registro MQ para cada cola de mensajes a la que se desea acceder. El diseño del registro es el formato del mensaje.

La tabla siguiente muestra las palabras clave.

Palabra clave Finalidad
add Coloca el contenido de un registro MQ al final de la cola especificada.

La sentencia add de EGL invoca hasta tres mandatos de MQSeries:
  • MQCONN conecta el código generado con un gestor de colas y se invoca cuando no hay ninguna conexión activa.
  • MQOPEN establece una conexión con una cola y se invoca cuando una conexión está activa pero la cola no está abierta.
  • MQPUT pone el registro en la cola y siempre se invoca a menos que se produzca un error en una llamada anterior de MQSeries.

Después de añadir un registro MQ, debe cerrar una cola de mensajes antes de leer un registro MQ de la misma cola.

close Abandona el acceso a la cola de mensajes que está asociada a un registro MQ.

La sentencia EGL close invoca el mandato MQCLOSE de MQSeries, que también se invoca automáticamente cuando finaliza el programa.

Debe cerrar la cola de mensajes después de ejecutar una sentencia add o scan si otro programa necesita acceder a la cola. La sentencia close es especialmente apropiada si el programa se ejecuta durante mucho tiempo y el acceso ya no es necesario.
scan Lee el primer mensaje de una cola en un registro de la cola de mensajes y (por omisión) elimina el mensaje de la cola.

La sentencia scan de EGL invoca hasta tres mandatos de MQSeries:
  • MQCONN conecta el código generado con un gestor de colas y se invoca cuando no hay ninguna conexión activa.
  • MQOPEN establece una conexión con una cola y se invoca cuando una conexión está activa pero la cola no está abierta.
  • MQGET elimina el registro de la cola y se invoca siempre a menos que se haya producido un error en una llamada anterior a MQSeries.

Después de leer un registro MQ, debe cerrar la cola antes de añadir un registro MQ a la misma cola.

Especificación de cola y gestor

Cuando trabaje con palabras clave EGL relacionadas con MQSeries, debe identificar una cola en las siguientes situaciones:
  • Durante la declaración, debe especificar un nombre de cola lógica estableciendo la propiedad queueName del componente de registro MQ. Este nombre de cola lógica actúa como valor por omisión para el nombre de cola al que se accede durante la ejecución; pero en la mayoría de casos, el nombre sólo es significativo como una forma de asociar el registro MQ con una cola física. El nombre de cola lógica no puede tener más de 8 caracteres.
  • Durante la generación, debe controlar el proceso de generación con un componente buildDescriptor que, a su vez, puede hacer referencia a un componente de asociaciones de recursos. El componente de asociaciones de recursos asocia el nombre de cola con el nombre de una cola física.
  • Durante la ejecución, el código puede cambiar el valor de la variable específica del registro record.resourceAssociation para alterar temporalmente cualquier nombre de cola que se haya especificado durante la declaración o la generación.
El nombre de la cola física tiene el siguiente formato:
  nombreGestorColas:nombreColaFísica
nombreGestorColas
Nombre del gestor de colas; si se omite este nombre, también se omite el carácter de dos puntos
nombreColaFísica
Nombre de la cola física, como es conocido para el gestor de colas especificado

La primera vez que se emite una sentencia add o scan en un registro de cola de mensajes, se debe especificar un gestor de colas de conexión, ya sea por omisión o de otra forma. En el caso más simple, no se especifica ningún gestor de colas de conexión, pero se depende de un valor por omisión de la configuración de MQSeries.

La variable específica del registro record.resourceAssociation siempre contiene como mínimo el nombre de la cola de mensajes de un determinado registro MQ.

Colas de mensajes remotas

Si desea acceder a una cola que está controlada por un gestor de colas remoto, debe realizar lo siguiente:
  • Emita la sentencia EGL close para abandonar el acceso a la cola que se está utilizando ahora
  • Establezca la variable específica del registro record.resourceAssociation para asegurar el acceso de la cola remota en el futuro
Establezca record.resourceAssociation de una de las dos maneras siguientes, en función de cómo estén establecidas las relaciones del gestor de colas en MQSeries:
  • Si el gestor de colas de conexión tiene una definición local de la cola remota, establezca record.resourceAssociation de la manera siguiente:
    • Acepte el mismo valor para el gestor de colas de conexión (especificando el nombre del gestor de colas de conexión o no especificando ningún nombre; en este último caso, omita el carácter de dos puntos).
    • Especifique el nombre de la definición local de la cola remota.

    El uso siguiente de la sentencia add o scan emite un mandato MQOPEN para establecer el acceso a la cola remota.

  • Como alternativa, establezca record.resourceAssociation con el nombre del gestor de colas remoto, junto con el nombre de la cola remota. En este caso, el gestor de colas de conexión no cambia. El uso siguiente de la sentencia add o scan emite el mandato MQOPEN y utiliza la conexión ya establecida.
Condiciones de uso | Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.