Utilice el nodo JMSOutput para enviar mensajes a destinos JMS.
Este tema contiene las secciones siguientes:
El nodo JMSOutput actúa como productor de mensajes JMS publicar los seis tipos de mensajes definidos en Java™ Message Service Specification, versión 1.1. Los mensajes se publican utilizando llamadas de método, que se describen en la especificación JMS.
El nodo JMSOutput se encuentra en la bandeja JMS de la paleta y está representado en el WebSphere Message Broker Toolkit mediante el siguiente icono:
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.
Los flujos de mensajes que manejan los mensajes que se reciben de las conexiones a proveedores JMS, deben empezar siempre con un nodo JMSInput. Si incluye el nodo JMSOutput en un flujo de mensajes, no será necesario que incluya un nodo JMSInput: pero si no incluye un nodo JMSInput, deberá incluir el nodo MQJMSTransform para dar al mensaje el formato que espera el nodo JMSOutput.
Si está propagando mensajes JMS y creando un flujo de mensajes para utilizarlo como un subflujo, utilice una instancia del nodo JMSOutput como último nodo para crear un terminal de salida para el subflujo.
SET OutputRoot.JMSTransport.Transport_Folders.Message_MetaData.PayloadType=valor de carga útil
Para obtener más información sobre el árbol de mensajes JMS y los valores de carga útil, consulte Representación de mensajes en el transporte JMS.
CREATE PROCEDURE CreateJMSDestinationList() BEGIN
SET OutputLocalEnvironment.Destination.JMSDestinationList.DestinationData[1] =
'jndi://TestDestQueue1';
SET OutputLocalEnvironment.Destination.JMSDestinationList.DestinationData[2] = 'jndi://TestDestQueue2';
SET OutputLocalEnvironment.Destination.JMSDestinationList.DestinationData[3] = 'jndi://TestDestQueue3';
END;
Los servicios configurables están definidos para una serie de proveedores JMS. Puede elegir uno de los servicios predefinidos, o bien puede crear un servicio nuevo para un nuevo proveedor, o para uno de los proveedores existentes. Los servicios predefinidos se listan en Propiedades de servicios configurables.
Utilice el mandato mqsireportproperties para ver las propiedades del proveedor y el mandato mqsichangeproperties para establecer o modificar las propiedades.
Es posible que el emisor de un mensaje desee que el destinatario responda a ese mensaje. En este caso, el mensaje de JMSOutput puede tratar el mensaje de salida como una respuesta y direccionarlo según el valor obtenido de la propiedad JMSReplyTo en el mensaje de solicitud. Puede modificar el valor de la propiedad JMSReplyTo en el MbMessage; por ejemplo, utilizando un nodo Compute o un nodo JavaCompute. Esta acción permite el direccionamiento dinámico de mensajes desde el nodo JMSOutput. El nodo envía el mensaje al nombre de destino JMS que se establece en el campo JMSReplyTo del árbol MbMessage.
queue://QM_mn2/myJMSQueue4
En
este caso, el valor es la representación específica del proveedor JMS
de un destino JMS para el proveedor JMS de WebSphere MQ.jndi://jmsQ4
donde jmsQ4 es el
nombre del objeto administrado en JNDI.La utilización de este método puede afectar al rendimiento, debido a la necesidad de buscar el objeto administrado en JNDI.
Para que el nodo JMSOutput pueda establecer la propiedad JMSReplyTo dinámicamente en el mensaje de salida, deje en blanco el campo Destino de respuesta en el separador Básicas y establezca el valor de JMSReplyTo en MbMessage utilizando un nodo Compute o un nodo JavaCompute.
El nodo resuelve el nombre del objeto administrado en JNDI, que se proporciona en el Tema de publicación o en la Cola de destino y envía el mensaje a ese destino JMS.
La función cciOutputMessageCallback se puede registrar como una devolución de llamada y se invoca siempre que un nodo JMSOutput envía un mensaje. Consulte el apartado cciOutputMessageCallback.
Si el estado de la salida de usuario está activo, se invoca la función cciOutputMessageCallback para cada mensaje de salida que se envíe satisfactoriamente desde un nodo JMSOutput en el que está registrada la devolución de llamada.
Si el nodo proporciona información de WrittenDestination en el árbol Entorno local, la devolución de llamada se invoca después de que se crea esta información. Consulte el apartado Utilización de variables LocalEnvironment con nodos JMSOutput y JMSReply.
Conecte un nodo Compute al terminal de salida (Out) de un nodo JMSOutput e interrogue la lista WrittenDestination. Para obtener más información, consulte Ver el árbol lógico de mensaje en la salida de rastreo.
WrittenDestination = (
JMS = (
DestinationData = (
destinationName = 'queue://jmsQueue1'
initialContext = 'com.sun.jndi.fscontext.RefFSContextFactory'
JMSMessageID = ID:414d512054657374514d2020202020206ab98b4520017a02'
JMSCorrelationID = 'ABCDEFGHIJKLMNOPQRSTUVW'
)
)
)
Cuando se incluye un nodo JMSOutput en un flujo de mensajes, el valor que se establece para Modalidad de transacción define si los mensajes se envían bajo punto de sincronismo.
dir_instalación/bin/ JMSSwitch.dll
XAOpenString=Contexto inicial,ubicación JNDI,parámetros_opcionales
ThreadOfControl=THREAD
JMSSwitch
XAOpenString=Initial Context,location JNDI,Optional_parms
ThreadOfControl=THREAD
XAResourceManager:
Name=Nombre_Proveedor_Jms
SwitchFile=/dir_instalación/bin/JMSSwitch.so
XAOpenString=Contexto inicial,ubicación JNDI,parámetros_opcionales
ThreadOfControl=THREAD
donde: Los parámetros opcionales están separados por coma y son posicionales. Por consiguiente, los parámetros que faltan deben representarse con una coma.
dir_instalación/classes/xarecovery.jar
dir_instalación/bin
Para obtener más información, consulte la sección System Administration Guide de Centro de información en línea de WebSphere MQ Versión 7.
El control de punto de sincronismo para el proveedor JMS se gestiona con la coordinación de puntos de sincronismo RRS del gestor de colas del intermediario. No necesita modificar el archivo .ini .
Si el nodo JMSOutput utiliza BEA WebLogic como proveedor JMS, y los nodos tienen que participar en un flujo de mensajes coordinado, consulte Cómo hacer que el cliente de proveedor JMS esté disponible para los nodos JMS.
Conecte el terminal de entrada del nodo JMSOutput al nodo desde el que se direccionan los mensajes de salida.
Conecte el terminal de salida del nodo JMSOutput a otro nodo del flujo de mensajes para procesar adicionalmente el mensaje, procesar errores o enviar el mensaje a un destino adicional.
Cuando haya colocado una instancia del nodo JMSOutput en un flujo de mensajes, podrá configurarlo; consulte el apartado Configurar un nodo de flujo de mensajes. Las propiedades del nodo se visualizan en la vista Propiedades. Todas las propiedades obligatorias que no tienen un valor predeterminado aparecen con un asterisco.
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 produce un error. Aunque esté establecida la propiedad Validación, los mensajes propagados a este terminal no se validan. |
Out (de salida) | Terminal de salida al que se direcciona el mensaje, si éste se ha colocado satisfactoriamente en el destino de salida (tema o cola). |
Las tablas siguientes describen las propiedades del 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).
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Nombre de nodo | No | No | El tipo de nodo, JMSOutput | El nombre del nodo. |
Descripción corta | No | No | Descripción breve del nodo. | |
Descripción larga | No | No | Texto que describe la finalidad del nodo en el flujo de mensajes. |
Propiedad | O | C | Valor predeterminado | Descripción | Propiedad de mandato mqsiapplybaroverride |
---|---|---|---|---|---|
Cola de destino | No | Sí | Nombre de la cola en la que el nodo publica los mensajes de salida. Si va a utilizar el nodo JMSOutput para enviar mensajes punto a punto, entre el nombre de la Cola de destino para el nombre de cola JMS que se lista en el archivo de enlaces. | destinationQueueName | |
Tema de publicación | No | Sí | Nombre del tema en el que el nodo publica los mensajes.
|
tema | |
Destino de respuesta | No | Sí | El nombre del destino JMS al que la aplicación receptora debe enviar un mensaje de respuesta. Para que se devuelva un mensaje de respuesta a este destino JMS, el nombre de
destino JMS debe ser conocido en el dominio del proveedor JMS utilizado por el cliente
receptor. Puede entrar un destino JMS, que puede ser una cola de suscripciones o un tema de
destino. El valor predeterminado es espacio en blanco, en cuyo caso el mensaje de salida JMS puede considerarse como un datagrama. Si el campo está en blanco, el nodo JMSOutput no espera una respuesta del cliente JMS receptor. |
replyToDestination | |
Enviar a lista de destinos en entorno local | No | Sí | No seleccionado | Si ha creado una lista de destinos JMS en el entorno local, seleccione este recuadro de selección para utilizar la lista de destinos. Si no selecciona ese recuadro de selección, el nodo utiliza el destino JMS configurado. Si marca este recuadro de selección pero no ha creado ninguna lista de destinos JMS en el entorno local, el nodo utilizará el destino JMS configurado. | useDistList |
Propiedad | O | C | Valor predeterminado | Descripción | Propiedad de mandato mqsiapplybaroverride |
---|---|---|---|---|---|
Nombre del proveedor JMS | Sí | No | WebSphere MQ | Seleccione un nombre de proveedor JMS en la lista o especifique el nombre que desee. Cuando se selecciona un nombre en la lista, la propiedad Fábrica de contexto inicial se actualiza automáticamente con la clase Java pertinente. Si especifica su propio nombre de proveedor JMS, también debe especificar un valor para la Fábrica de contexto inicial. El nombre debe coincidir con el nombre del servicio configurable definido para el intermediario al que despliega el flujo de mensajes. De forma alternativa, puede especificar el servicio configurable de JMSProviders. | |
Fábrica de contexto inicial | No | Sí | com.sun.jndi.fscontext. RefFSContextFactory | Esta propiedad es el punto de partida para un espacio de nombres JNDI. Una aplicación
JMS utiliza el contexto inicial para obtener y buscar la fábrica de conexión y los
objetos de cola y tema para el proveedor JMS. Si selecciona un nombre de proveedor JMS en la lista en Nombre del proveedor JMS, la propiedad Fábrica de contexto inicial se actualiza automáticamente con la clase Java pertinente. Si especifica su propio nombre de proveedor JMS, también debe especificar un valor para la Fábrica de contexto inicial. El valor predeterminado es com.sun.jndi.fscontext.RefFSContextFactory, que define la fábrica de contexto inicial basada en archivo para el proveedor JMS de WebSphere MQ. Si el nodo se ha establecido para utilizar su propio proveedor JMS, y la correspondiente Propiedad de servicios configurables de la definiciónmqsichangeproperties tiene el conjunto de atributos InitialContextFactory, se altera temporalmente el valor del nodo. |
initialContextFactory |
Enlaces JNDI de ubicación | No | Sí | Vía de acceso de sistema o ubicación LDAP para el archivo de enlaces. El archivo de enlaces contiene definiciones
para los objetos administrados en JNDI que utiliza el nodo
JMSOutput. Al entrar un valor para
Enlaces JNDI de ubicación, asegúrese de que satisface las indicaciones
siguientes:
Para obtener más información sobre cómo construir el archivo de enlaces de objetos administrados en JNDI, consulte la documentación que se proporciona con el proveedor JMS. Si el nodo se ha establecido para utilizar su propio proveedor JMS, y la correspondiente Propiedad de servicios configurables de la definiciónmqsichangeproperties tiene el conjunto de atributos jndiBindingsLocation, se altera temporalmente el valor del nodo. |
locationJndiBindings | |
Nombre de fábrica de conexión | No | Sí | El nombre de la fábrica de conexión que utiliza el nodo JMSOutput para crear una conexión con el proveedor JMS. Este nombre ya debe existir en el archivo de enlaces. La fábrica de conexión puede ser una fábrica de conexión de cola JMS o una fábrica de conexión de tema, pero ha de coincidir con el modelo de mensaje utilizado por el nodo. De forma alternativa, se puede especificar la fábrica de conexión JMS genérica que puede utilizarse para los destinos de cola JMS o de tema JMS. | connectionFactoryName |
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Nuevo ID correlación | No | Sí | Si se necesita el nodo JMSOutput para generar un nuevo ID de correlación para el mensaje, seleccione Nuevo ID de correlación. Si se deja el recuadro de selección sin seleccionar, el ID de correlación del mensaje de salida se toma del campo JMSCorrelationID en la sección JMSTransport_Header_Values del árbol de mensajes. | |
Modalidad de transacción | Sí | No | No | Esta propiedad controla si el mensaje se recibe
bajo una transacción JMS. Los valores válidos son
Sí y No.
|
Modalidad de entrega | No | Sí | No persistente | Esta propiedad controla la modalidad de
persistencia que utiliza un proveedor JMS para un mensaje. Los valores válidos son:
|
Caducidad del mensaje (ms) | No | Sí | 0 | Esta propiedad controla la longitud de tiempo, en milisegundos, para la cual el proveedor JMS conserva el mensaje JMS de salida.
El valor predeterminado, 0 se utiliza para indicar que el mensaje no debe caducar. Seleccione
Heredar de cabecera o especifique un entero que represente un número
de milisegundos. Si selecciona Heredar de cabecera,
la propiedad heredará el valor del campo JMSExpiry en el mensaje JMS que se encuentra en la siguiente ubicación:
|
Prioridad del mensaje | No | Sí | 4 | Esta propiedad asigna importancia relativa al mensaje y lo puede
utilizar para la selección de mensajes una aplicación cliente JMS receptora o un nodo
JMSOutput. Seleccione un valor entre 0 (prioridad más baja) y 9 (prioridad más alta) o seleccione Heredar de cabecera. El valor predeterminado es 4, que indica prioridad media.
Las prioridades en el rango de 0 a 4 están relacionadas
con la entrega típica.
Las prioridades en el rango de
5 a
9 están relacionadas con
las graduaciones de entrega urgente. Si selecciona Heredar de cabecera, la
propiedad heredará el valor del campo JMSPriority en el mensaje JMS que se encuentra en la siguiente ubicación:
|
Tipo de mensaje | No | Sí | Determine el tipo de mensaje de salida en el árbol de mensajes JMS | Seleccione un valor en la lista
para configurar el tipo de mensaje JMS que produce el
nodo JMSOutput. Si no establece un valor para esta propiedad, el nodo adopta el tipo de salida del
campo
PayLoadType de metadatos del árbol de mensajes tal como indica el valor predeterminado,
Determinar tipo de mensaje de salida del árbol de mensajes JMS. Los valores válidos son:
|
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 Ninguna, Contenido, Contenido y valor 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. |