Utilice el nodo MQOutput para enviar mensajes a clientes que se conecten con el intermediario utilizando WebSphere MQ Enterprise Transport y que utilicen las interfaces de programación de aplicaciones MQI y AMI.
Este tema contiene las secciones siguientes:
El nodo MQOutput entrega un mensaje de salida de un flujo de mensajes a una cola WebSphere MQ. El nodo utiliza MQPUT para colocar el mensaje en la cola o colas de destino que especifique.
Si es adecuado, defina la cola como una cola compartida o una cola de clúster de WebSphere MQ. Cuando utilice una cola de clúster de WebSphere MQ, deje el Nombre del gestor de colas en blanco.
Puede configurar el nodo MQOutput para colocar un mensaje en una cola específica de WebSphere MQ que se ha definido en cualquier gestor de colas a la cual el gestor de colas puede acceder para el intermediario, o en los destinos identificados en el entorno local asociado al mensaje.
Establezca otras propiedades para controlar la forma en que se envían los mensajes, definiendo las opciones adecuadas de MQPUT; por ejemplo, puede solicitar que un mensaje se procese bajo control de transacción. También puede especificar que WebSphere MQ pueda, si es adecuado, dividir el mensaje en segmentos en el gestor de colas.
Si crea un flujo de mensajes para utilizarlo como subflujo, no podrá utilizar un nodo de salida estándar; utilice una instancia del nodo Output para crear un terminal de salida para el subflujo a través del cual propagar el mensaje.
Si no desea que el flujo de mensajes envíe mensajes a una cola de WebSphere MQ, elija otro nodo de salida soportado.
El nodo MQOutput comprueba si hay una cabecera MQMD (WebSphere MQ descriptor de mensaje) en el árbol de mensajes. Si no hay ninguna cabecera MQMD, el nodo MQOutput crea una en el árbol de mensajes y la llena con las propiedades predeterminas de MQMD. Si se encuentra una cabecera MQMD, el nodo MQOutput comprueba si es una cabecera de tipo WebSphere MQ y si no lo es, establece la propiedad Contexto de mensaje en Predeterminado. El nodo MQOutput trata cualquier otra cabecera de transporte del árbol de mensajes como datos. Si estas cabeceras no son necesarias como parte del cuerpo del mensaje, utilice un nodo de transformación para eliminarlas de árbol de mensajes antes del nodo MQOutput. Si el árbol de mensajes proviene de JMS, puede utilizar un nodo JMSMQTransform para construir un árbol de mensajes compatible con MQ. Para más detalles, consulte el apartado Transformación de mensajes JMS.
El nodo MQOutput se encuentra en la bandeja de WebSphere MQ de la paleta y está representado en el WebSphere Message Broker Toolkit con el siguiente icono:
Consulte los ejemplos siguientes para ver cómo se debe utilizar este nodo:
Puede ver información sobre los ejemplos sólo cuando utilice el Information Center que está integrado en WebSphere Message Broker Toolkit o el Information Center en línea. Puede ejecutar ejemplos sólo cuando utilice el Information Center que está integrado en WebSphere Message Broker Toolkit.
Por ejemplo, para utilizar este nodo, suponga que ha escrito una aplicación de publicación para publicar actualizaciones de unas acciones regularmente. La aplicación envía los mensajes al intermediario en un nodo MQInput y el flujo de mensajes pone las publicaciones a disposición de múltiples suscriptores a través del un nodo Publication. El usuario configura un nodo Compute para crear un nuevo mensaje de salida cada vez que cambia el valor de una acción determinada y conecta dicho nodo a un nodo MQOutput para registrar todos los cambios de precio de dicha acción.
WrittenDestination = (
MQ = (
z`DestinationData = (
queueName = 'OUT'
queueManagerName = 'MYQUEUEMANAGER'
replyIdentifier = X'4d...2e'
msgId = X'3c...2c'
correlId = X'2a...00'
GroupId = X'3a...00'
)
)
)
Conecte el terminal de entrada al nodo desde el que se direccionan los mensajes de salida.
Conecte el terminal de salida o el terminal de anomalías de este nodo a otro nodo de este flujo de mensajes para procesar adicionalmente el mensaje, procesar errores o enviar el mensaje a un destino adicional.
Si utiliza agregación en los flujos de mensajes, debe utilizar los terminales de salida.
MQMD.Report = 0;
MQMD.PutApplType = MQAT_BROKER;
MQMD.PutDate = Taken from current Timestamp
MQMD.PutTime = Taken from current Timestamp
MQMD.PutApplName = MsgTree.MQMD.ReplyToQMgr (first 28 chars)
MQMD.Version
MQMD.Format
MQMD.Priority
MQMD.Persistence
MQMD.Expiry
MQMD.Encoding
MQMD.CodedCharSetId
MQMD.GroupId
MQMD.MsgSeqNumber
MQMD.Offset
MQMD.MsgFlags
MQMD.OriginalLength
IF MsgTree.MQMD.MsgType = MQMT_REQUEST THEN
MQMD.MsgType = MQMT_REPLY;
IF Nodes Message Context is Default, PassAll or PassIdentity THEN
MQMD.UserIdentifer = MsgTree.MQMD.UserIdentifier;
IF MsgTree.MQMD.Report contains MQRO_PASS_CORREL_ID THEN
MQMD.CorrelId = MsgTree.MQMD.CorrelId;
ELSE
MQMD.CorrelId = MsgTree.MQMD.MsgId;
IF MsgTree.MQMD.Report contains MQRO_PASS_MSG_ID THEN
MQMD.MsgId = MsgTree.MQMD.MsgId;
ELSE
MQMD.MsgId = MQMI_NONE;
Una vez que la estructura MQMD de salida se ha construido, el Message Context del nodo MQOutput se ignora y el comportamiento es set All.
Los valores que se alteran temporalmente, sólo lo hacen en la estructura MQMD de salida; no se realiza ninguna actualización en la carpeta MQMD del árbol de mensajes.
Cuando haya colocado una instancia del nodo MQOutput en un flujo de mensajes, podrá configurarlo; consulte el tema Configurar un nodo de flujo de mensajes. Las propiedades del nodo se visualizan en la vista Propiedades.
Los terminales del nodo MQOutput están descritos en la siguiente tabla.
Terminal | Descripción |
---|---|
In (de entrada) | El terminal de entrada que acepta un mensaje para que lo procese el nodo. |
Failure (de anomalías) | El terminal de salida al que se direcciona el mensaje si se detecta una anomalía al transferir el mensaje a la cola de salida. |
Out (de salida) | Terminal de salida al que se direcciona el mensaje, si éste se ha colocado satisfactoriamente en la cola de salida. |
Las tablas siguientes describen las propiedades de nodo. La columna con la cabecera O indica si la propiedad es obligatoria (marcada con un asterisco si tiene que entrar un valor cuando no hay definido ningún valor predeterminado); la columna con la cabecera C indica si la propiedad es configurable (puede cambiar el valor cuando añade el flujo de mensajes al archivo BAR para desplegarlo).
Las propiedades de descripción del nodo MQOutput están descritas en la siguiente tabla.
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Nombre de nodo | No | No | El tipo de nodo, MQOutput | El nombre del nodo. |
Descripción corta | No | No | Una descripción breve del nodo. | |
Descripción larga | No | No | Texto que describe la finalidad del nodo en el flujo de mensajes. |
Las propiedades básicas del nodo MQOutput se describen en la siguiente tabla.
Propiedad | O | C | Valor predeterminado | Descripción | Propiedad de mandato mqsiapplybaroverride |
---|---|---|---|---|---|
Nombre del gestor de colas | No | Sí | Escriba el nombre del gestor de colas de WebSphere MQ para el que se define esta cola de salida (especificada en la propiedad Nombre de cola). La propiedad Nombre del gestor de colas sólo es necesaria si la cola especificada está definida en otro gestor de colas o es una cola del clúster. Si es una cola de clúster, Nombre del gestor de colas se puede especificar opcionalmente si desea ser preceptivo sobre qué gestor de colas recibe el mensaje. Si la cola está definida en un gestor de colas remoto, debe especificarse el Nombre del gestor de colas y debe coincidir con la cola de transmisión definida en el gestor de colas local del intermediario, para dicho gestor de colas. |
queueManagerName | |
Nombre de cola | No | Sí | Para enviar el mensaje de salida a una sola cola de destino que está definida por este nodo, escriba el nombre de la cola de salida de WebSphere MQ a la cual el flujo de mensajes envía los mensajes. Si establece la propiedad Modalidad de destino en Nombre de cola, debe especificar un valor para la propiedad Nombre de cola. Si establece Modalidad de destino en otro valor, se hará caso omiso de esta propiedad. |
queueName |
Las propiedades Avanzadas del nodo MQOutput están descritas en la siguiente tabla. Estas propiedades definen el control transaccional para el mensaje y la forma en que se coloca el mensaje en la cola. Muchas de estas propiedades se corresponden con opciones de la llamada MQPUT.
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Modalidad de destino | Sí | No | Nombre de cola | Las colas a las que se envía el mensaje de salida.
|
Modalidad de transacción | Sí | No | Automática | Esta propiedad controla si el mensaje se transfiere
transaccionalmente.
|
Modalidad de persistencia | Sí | No | Automática | Esta propiedad controla si el mensaje se transfiere
persistentemente.
|
Nuevo ID de mensaje | Sí | No | Deseleccionado | Si marca este recuadro, WebSphere MQ genera un identificador de mensajes nuevo para sustituir el contenido del campo MsgId en MQMD. Esta
propiedad se corresponde con la opción MQPMO_NEW_MSG_ID de la estructura
MQPMO de la MQI. Deseleccione el recuadro si no desea generar un nuevo ID. Se generará de todas formas un nuevo ID de mensaje si selecciona la propiedad
Petición en el separador Petición. Para obtener más información sobre las opciones con las que se correlaciona esta propiedad, consulte la sección Application Programming Reference de la publicación Centro de información en línea de WebSphere MQ Versión 7. |
Nuevo ID correlación | Sí | No | Deseleccionado | Si selecciona este recuadro,
WebSphere MQ genera un nuevo identificador de
correlación para sustituir el contenido del campo CorrelId de MQMD.
Esta propiedad se corresponde con la opción MQPMO_NEW_CORREL_ID
de la estructura MQPMO de la MQI. Deseleccione el recuadro si no desea generar un nuevo ID. Para obtener más información sobre las opciones con las que se correlaciona esta propiedad, consulte la sección Application Programming Reference de la publicación Centro de información en línea de WebSphere MQ Versión 7. |
Segmentación permitida | Sí | No | Deseleccionado | Si selecciona este recuadro, WebSphere MQ divide el mensaje en
segmentos en el gestor de colas. Deseleccione
el recuadro si no desea que se efectúe la segmentación. Para obtener más información sobre la segmentación de mensajes, consulte Envío de segmentos de mensajes en un mensaje WebSphere MQ. Para obtener más información sobre las opciones con las que se correlaciona esta propiedad, consulte la sección Application Programming Reference de la publicación Centro de información en línea de WebSphere MQ Versión 7. |
Contexto del mensaje | Sí | No | Pasar todo | Esta propiedad controla cómo se maneja el contexto
de origen.
Cuando un perfil de seguridad está asociado con el nodo y está configurado para realizar la propagación de identidad, el contexto elegido puede alterarse temporalmente para garantizar que se establezca la identidad de salida. Para obtener más información sobre las opciones con las que se correlacionan estas propiedades, consulte la sección Application Programming Reference de la publicación Centro de información en línea de WebSphere MQ Versión 7. |
Autorización de usuario alternativo | Sí | No | Deseleccionado | Si marca este recuadro de selección, se utiliza la autorización alternativa cuando se coloca el mensaje de salida y se establece la opción MQOO_ALTERNATE_USER_AUTHORITY en las opciones abiertas (MQOO) de MQI. Si selecciona este recuadro, al abrir la cola para la salida se especifica esta opción. La información de usuario alternativo se recupera de la información del contexto del mensaje. Deseleccione el recuadro de selección si no quiere especificar la autorización de usuario alternativo. Si deselecciona el recuadro, para transferir el mensaje se utiliza el ID de usuario del servicio de intermediario. |
Las propiedades de petición del nodo MQOutput se describen en la siguiente tabla. Estas propiedades definen las características de cada mensaje de salida que se genera.
Propiedad | O | C | Valor predeterminado | Descripción | Propiedad de mandato mqsiapplybaroverride |
---|---|---|---|---|---|
Petición | Sí | No | Deseleccionado | Si marca el recuadro de selección, cada mensaje de salida de MQMD se genera como un mensaje de petición
(MQMT_REQUEST), y el campo del identificador de mensajes se borra (y se establece en MQMI_NONE) de forma que WebSphere MQ genera un identificador nuevo.
Deseleccione el recuadro de selección para
indicar que ningún mensaje de salida está marcado como mensaje de
petición. Si ha establecido Modalidad de destino en Cola de respuestas, no puede marcar este recuadro de selección. Se generará un nuevo identificador de mensaje aunque el recuadro Nuevo ID de mensaje no esté seleccionado en el separador Avanzadas. |
|
Gestor de colas de respuestas | No | Sí | El nombre del gestor de colas de WebSphere MQ para el que se define la cola de salida, especificada en Cola de respuestas. Este nombre se inserta en el MQMD de cada mensaje de salida como gestor de colas de respuesta. | replyToQMgr | |
Cola de respuestas | No | Sí | Nombre de la cola de WebSphere MQ en la que se debe poner una respuesta a esta petición. Este nombre se inserta en el MQMD de cada mensaje de salida como cola de respuesta. | replyToQ |
Las propiedades de validación del nodo MQOutput se describen en la siguiente tabla.
Para ver la descripción completa de estas propiedades, consulte Propiedades de validación.
Propiedad | O | C | Valor predeterminado | Descripción | Propiedad de mandato mqsiapplybaroverride |
---|---|---|---|---|---|
Validar | No | Sí | Heredar | Esta propiedad controla si tiene lugar la validación. Los valores válidos son Ninguno, Contenido y valor, Contenido y Heredar. | validateMaster |
Acción para anomalía | No | No | Excepción | Esta propiedad controla qué sucede si falla la validación. Sólo puede establecer esta propiedad si establece Validar en Contenido o Contenido y valor. Los valores válidos son Rastreo de usuario, Anotaciones de error locales, Excepción y Lista de excepciones. |
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Sucesos | No | No | Ninguno | Los sucesos que se han definido para el nodo se visualizan en este separador. De forma predeterminada, no se define ningún suceso de supervisión en ningún nodo en un flujo de mensajes. Utilice Añadir, Editar y
Suprimir para crear, cambiar o suprimir sucesos de supervisión para el nodo; consulte Configuración de orígenes de sucesos de supervisión utilizando propiedades de supervisión para obtener detalles. Puede habilitar e inhabilitar sucesos que se muestran aquí seleccionando o deseleccionando el recuadro Habilitado. |