Message
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 10,32 KB
ï?§ El message header identifica el mensaje
(message ID) y contiene información de control,
tales como correlation ID, prioridad, expiración,
nombre de cola de respuesta, etc
ï?§ Un mensaje puede ser sobre 4 Mb o 100 Mb de
tamaño, dependiendo de la versión de MQSeries
a utilizar. La versión 5 soporta mensajes de hasta
100 Mb .
ï?§ Distribution Lists:
Usando MQSeries se puede enviar un mensaje a más
de una cola de destino con solo una llamada de una
rutina MQPUT
ï?§ Message Types:
Datagram: Contiene datos pero no espera respuesta
Request: Se espera una respuesta
Reply: Una respuesta a un requerimiento
Report: Un mensaje especial que describe un evento
ï?§ Persistencia:
ï?? Los mensajes pueden ser persistentes o no
persistentes. Un mensaje persistente sobrevive a una
falla del sistema, ya que es almacenado en logs
ï?§ Message Descriptor:
Version: indica la versión de MQSeries o plataforma
utilizada
Message ID y Correlation ID: permiten identificar un
requerimiento o respuesta en forma única
Persistence: flag que indica si el mensaje es
persistente o no
Priority: indica la importancia del mensaje, permitiendo
controlar el orden es que es procesado
Time and Date: hora y fecha de envío del mensaje
Expiration Time: fecha de expiración del mensaje.
Cumplida esa fecha, el mensaje se elimina del sistema
ReplyTQueue and ReplyToQueueManager: indica el
nombre de la cola y queue manager de respuesta
Format: un valor utilizado por el receptor para decirdir
si realizar una conversión sobre la data
Report options: permite registrar eventos asociados al
envío o recepción de mensajes
Backout counter: un contador que registra las veces en
que un mensaje es devuelto a la cola
§ :Concepto de queue Manager:
ï?§ Representa el corazón de MQSeries.
Corresponde a un proceso que gestiona las colas
y mensajes
ï?§ Provee una interfaz Message Queuing Interface
(MQI) para la comunicación con las aplicaciones
ï?§ Una aplicación invoca funciones de un queue
manager usando llamadas a una API. Por
ejemplo, MQPUT permite colocar un mensaje en
una cola. La rutina MQGET lo recupera
ï?§ Un programa puede enviar mensajes a otro
programa que corre en la misma máquina que el
Queue Manager, o puede enviar mensajes a una
aplicación que ejecuta en un sistema remoto
ï?§ Eï?§ Un Queue Manager transfiere mensajes a otro
queue manager por medio de un Canal, los
cuales utilizan las facilidades de red como
TCP/IP
ï?§ Los programas emisores no necesitan conocer la
ubicación del programa destino. MQSeries sabe
qué hacer cuando el sistema remoto no está
disponible o el programa destino no está en
ejecución o ocupado l sistema remoto tiene su propio Queue
Manager, con sus propias colas
ï?§ Un Queue Manager transfiere mensajes a otro
queue manager por medio de un Canal, los
cuales utilizan las facilidades de red como
TCP/IP
ï?§ Los programas emisores no necesitan conocer la
ubicación del programa destino. MQSeries sabe
qué hacer cuando el sistema remoto no está
disponible o el programa destino no está en
ejecución o ocupado
Funciones de queue Manager:
ï?§ Las funciones de un queue manager son:
ï?? Maneja colas de mensajes para aplicaciones
ï?? Provee una interfaz de programación, MQI
ï?? Utiliza las facilidades de red para transmitir mensajes
ï?? Coordina actualizaciones a base de datos y colas
utilizando un mecanismo de two-phase commit
ï?? Puede enviar un mensaje a varios destinos, a través
de la invocación a una API
ï?? Provee funcionalidades de administración que
permiten crear, modificar y eliminar colas. MQSeries
para Windows provee una interfaz gráfica para estas
tareas
qu eues :
ï?§ Las colas son objetos pertenecientes a un queue
manager. Existen diferentes tipos de colas:
ï?? Cola local: es una cola real
ï?? Cola remota: describe una cola en otro q. manager
ï?? Cola de transmisión (Xmitq): cola local especial
ï?? Cola de iniciación: cola local especial
ï?? Cola dinámica: cola creada dinámicamente
ï?? Cola alias: permite definir un alias de una cola
ï?? Cola dead-letter: solo una cola por queue manager
ï?? Cola reply-to: cola de respuesta
ï?? Cola modelo: permite crear colas a partir de ella
ï?§ Cola local:
Una cola es local si pertenece al queue manager al
cual la aplicación está conectada. Tanto la aplicación
emisora como receptora no necesariamente deben
estar en la misma máquina
ï?§ Cola cluster:
Es una cola local que es conocida por todo el cluster
que queue managers. Cualquier queue manager que
pertenece al cluster puede enviar mensajes a la cola
sin la necesidad de la definición de una cola remota
ï?§ Cola remota:
Es una cola que pertenece a otro queue manager. No
es una cola real, sino una representación de una cola
que existe en otro queue manager
ï?§ Cola de transmisión:
Es una cola utilizada para transmitir mensajes entre
queue managers. Una cola remota está asociada a
una cola de transmisión. Hay solo una cola de
transmisión para un queue manager remoto. En un
cluster, hay solo una única cola de transmisión para
enviar mensajes al resto de queue managers del
cluster
ï?§ Cola dinámica:
Es una cola definida â??al vueloâ?, en el sentido que es
creada y eliminada durante la ejecución de una
aplicación. Una cola dinámica es una cola local
ï?§ Cola alias:
No son colas reales, sino â??sinónimosâ? de otras colas.
Permite que múltiples aplicaciones tengan sus propias
colas asociadas, pero en realidad, es la misma para
todas
ï?§ Cola modelo:
No es una cola real. Es una cola utilizada como
â??plantillaâ? para la definición de una cola dinámica. La
cola dinámica copia todas las caracterísiticas
ï?§ Cola de iniciación:
Es una cola local que es utilizada por un queue
manager para escribir un mensaje de trigger cuando
ser reúnen ciertas condiciones (cuando un mensaje es
colocado en una cola vacía)
ï?§ Cola reply-to:
Un mensaje de requerimiento debe contener el nombre
de una cola en la cual espera recibir la respuesta
ï?§ Cola dead-letter:
Un queue manager debe ser capaz de manejar
situaciones donde no pueda entregar un mensaje.
Algunos casos son:
La cola de destino está llena
La cola de destino no existe
La cola no permite colocar mensajes (put deshabilitado)
El emisor no está autorizado a colocar mensaje s.
El mensaje es demasiado grande
El mensaje tiene un identificador duplicado
§ :En que consiste un sistema de mensajeria:
ï?? Queue manager (MQM)
ï?? Listener
ï?? Trigger Monitor
ï?? Channel Initiator
ï?? Message Channel Agent (MCA)
como funciona mqseries:
ï?§ Cuando una aplicación desea colocar un mensaje
en una cola, invoca una API MQPUT
ï?§ El queue manager chequea si la cola indicada es
local o remota
ï?§ Si la cola es remota, el mensaje es colocado en
una cola de transmisión. El queue manager
agrega información al header del mensaje tal
como el nombre de la cola y queue manager de
destino
ï?§ La transmisión es realizada vía canales. Los
canales pueden ser levantados manual o
automáticamente
ï?§ Para levantar un canal automáticamente, la cola
de transmisión debe estar asociada a un â??channel
initiation queueâ?. Esta cola es monitoreada por un
â??channel initiatorâ?
ï?§ El channel initiator es un programa MQSeries que
debe estar en ejecución. Cuando el channel
initiator detecta un mensaje en la cola de
transmisión, levanta un â??message channel agentâ?
(MCA)
ï?§ El MCA mueve el mensaje sobre la red a la otra
máquina
ï?§ El programa que procesa el mensaje de entrada
puede ser levantado manual o automáticamente
ï?§ Para levantar el programa automáticamente, se
debe asociar una cola de iniciación y un proceso
a la cola local, y un â??trigger monitorâ? debe estar
en ejecución
ï?§ Cuando el programa levanta automáticamente, el
MCA coloca el mensaje entrante en la cola local y
el mensaje de trigger en la cola de iniciación
ï?§ La cola es monitoreada por un â??trigger monitorâ?.
Este trigger monitor invoca el programa receptor
ï?§ El programa receptor utiliza la API MQGET para
recuperar el mensaje desde la cola local
comunicacion entre mqm:
ï?§ Para conectar dos queue managers, en cada
sistema es necesario:
ï?? Una definición de una cola remota, que represente una
cola local en la máquina destino y que asocie una cola
de transmisión (Q1 en sistema A y Q2 en sistema B)
ï?? Una cola de transmisión que mantenga todos los
mensajes destinados al sistema remoto hasta que el
canal los transmita (QMB en sistema A y QMA en
sistema B)
ï?? Un canal sender que tome los mensajes desde la cola
de transmisión y los transmita al otro sistema a través
de la red (QMA.QMB en sistema A y QMB.QMA en
sistema B)
ï?§ Un canal receptor que reciba mensajes y los
coloque en una cola local (QMB.QMA en sistema
A y QMA.QMB en sistema B). El canal receptor
debe ser levantar automáticamente por el queue
manager (uso de Channel Auto Definition)
ï?? Una cola local desde la cual el programa obtiene los
mensajes (Q2 en sistema A y Q1 en sistema B)