Mensajes y colas

Los mensajes y las colas son los componentes básicos de un sistema de colocación de mensajes en colas.

¿Qué es un mensaje?

Un mensaje es una serie de bytes que tiene un significado para las aplicaciones que lo utilizan. Los mensajes se utilizan para transferir información de un programa de aplicación a otro (o a distintas partes de la misma aplicación). Las aplicaciones pueden estar ejecutándose en la misma o en distintas plataformas.

Los mensajes de IBM® WebSphere MQ constan de dos partes:
  • Los datos de la aplicación. El contenido y la estructura de los datos de la aplicación los definen los programas de aplicación que los utilizan.
  • Un descriptor de mensaje. El descriptor del mensaje identifica el mensaje y contiene información de control adicional, como el tipo de mensaje y la prioridad que ha asignado al mensaje la aplicación emisora.

    El formato del descriptor de mensajes lo define IBM WebSphere MQ. Si desea una descripción completa del descriptor de mensajes, consulte MQMD - descriptor de mensajes.

Longitudes de los mensajes

La longitud máxima predeterminada de un mensaje es de 4 MB, aunque puede aumentarla a una longitud máxima de 100 MB (donde 1 MB equivale a 1.048.576 bytes). En la práctica, la longitud del mensaje puede estar limitada por:
  • La longitud máxima de mensajes definida para la cola receptora
  • La longitud máxima de mensajes definida para el gestor de colas
  • La longitud máxima de mensajes definida por la cola
  • La longitud máxima de mensajes definida por la aplicación emisora o receptora
  • La cantidad de almacenamiento disponible para el mensaje.

Pueden ser necesarios varios mensajes para enviar toda la información que una aplicación necesita.

¿Cómo envían y reciben mensajes las aplicaciones?

Los programas de aplicación envían y reciben mensajes utilizando las llamadas MQI.

Por ejemplo, para transferir un mensaje a una cola, una aplicación:
  1. Abre la cola necesaria emitiendo una llamada MQOPEN de MQI
  2. Emite una llamada MQPUT de MQI para transferir el mensaje a la cola

Otra aplicación puede recuperar el mensaje de la misma cola emitiendo una llamada MQGET de MQI.

Para obtener más información sobre las llamadas MQI, consulte Llamadas MQI.

¿Qué es una cola?

Una cola es una estructura de datos que se utiliza para almacenar mensajes.

Cada cola es propiedad de un gestor de colas. El gestor de colas es responsable del mantenimiento de las colas de su propiedad y del almacenamiento en las colas adecuadas de todos los mensajes que recibe. Los mensajes se pueden transferir a la cola mediante programas de aplicación o mediante un gestor de colas como parte de sus operaciones normales.

Colas predefinidas y colas dinámicas

Las colas pueden distinguirse por la forma en que se han creado:
  • Las colas predefinidas las crea un administrador mediante los mandatos MQSC o PCF adecuados. Las colas predefinidas son permanentes; existen independientemente de las aplicaciones que las utilizan y perduran después de que se reinicie IBM WebSphere MQ.
  • Las colas dinámicas se crean cuando una aplicación emite una petición MQOPEN especificando el nombre de una cola modelo. La cola creada se basa en una plantilla de definición de cola que es la cola modelo. Puede crear una cola modelo utilizando el mandato MQSC DEFINE QMODEL. Los atributos de una cola modelo, por ejemplo, el número máximo de mensajes que se pueden almacenar en la cola, son heredados por cualquier cola dinámica que se cree a partir de la cola modelo.

    Las colas modelo tienen un atributo que especifica si la cola dinámica va a ser persistente o temporal. Las colas persistentes perduran después de los reinicios del gestor de colas y de la aplicación; las colas temporales se pierden al reiniciar.

Recuperación de mensajes de colas

Las aplicaciones debidamente autorizadas pueden recuperar mensajes de una cola en función de los siguientes algoritmos de recuperación:
  • Primero en entrar, primero en salir (FIFO).
  • Prioridad del mensaje, según lo definido en el descriptor del mensaje. Los mensajes que tienen la misma prioridad se recuperan según el método FIFO.
  • Una petición de programa para un mensaje específico.

La petición MQGET de la aplicación determina el método utilizado.




Comentarios

http://www.ibm.com/support/knowledgecenter/SSFKSJ_7.5.0/com.ibm.mq.pro.doc/com.ibm.mq.pro.doc/q002650_.htm fa10310_