Nodo MQInput

Este tema contiene los apartados siguientes:

Finalidad

Utilice el nodo MQInput para recibir mensajes de clientes que se conectan al intermediario utilizando WebSphere MQ Enterprise Transport y que utilizan las interfaces de programas de aplicación MQI y AMI.

El nodo MQInput recibe la entrada de mensajes de un flujo de mensajes desde una cola de mensajes WebSphere MQ definida en el gestor de colas del intermediario. El nodo utiliza MQGET para leer un mensaje de una cola especificada, y establece el entorno de proceso para el mensaje. Si procede, puede definir la cola de entrada como una cola compartida o en clúster WebSphere MQ.

Los flujos de mensajes que manejan mensajes recibidos a través de conexiones WebSphere MQ siempre se deben iniciar con un nodo MQInput. Puede establecer las propiedades del nodo MQInput para controlar el modo en el que se reciben los mensajes, haciendo que se establezcan las opciones MQGET adecuadas. Por ejemplo, puede indicar que un mensaje se debe procesar bajo el control de transacción. También puede solicitar que se lleve a cabo la conversión de datos en cuanto se reciba cada mensaje de entrada.

Si incluye un nodo de salida en un flujo de mensajes que se inicia con un nodo MQInput, puede ser cualquiera de los nodos de salida para los que se ofrece soporte : no es necesario que incluya un nodo MQOutput. Puede crear un flujo de mensajes que reciba mensajes de clientes WebSphere MQ y genere mensajes para clientes que utilicen todos los transportes para los que se ofrece soporte para conectar al intermediario, puesto que puede configurar el flujo de mensajes de modo que solicite al intermediario que facilite las conversiones necesarias.

Si crea un flujo de mensajes para utilizarlo como un subflujo, no puede utilizar un nodo de entrada estándar; debe utilizar una instancia del nodo Input como primer nodo para crear un terminal de entrada para el subflujo.

Si el flujo de mensajes no recibe mensajes a través de conexiones WebSphere MQ, puede elegir uno de los nodos de entrada que se indican a continuación:

  • MQeInput
  • Real-timeInput
  • SCADAInput

El nodo MQInput se representa en el área de trabajo mediante el icono siguiente:

icono del nodo MQInput

Utilización de este nodo en un flujo de mensajes

Como ejemplo sobre cómo utilizar este nodo, suponga que ha escrito una aplicación de publicación que publica actualizaciones de valores con carácter regular. La aplicación envía los mensajes al intermediario de un nodo MQInput, y el flujo de mensajes permite que las publicaciones estén disponibles para varios suscriptores a través del nodo Publication.

Configuración del nodo MQInput

Se puede configurar al transferir una instancia del nodo MQInput a un flujo de mensajes. Pulse el botón derecho del ratón en la vista del editor y, a continuación, pulse en Propiedades. En el diálogo de propiedades se muestran las propiedades básicas del nodo.

Todas las propiedades obligatorias para las que no se ha definido ningún valor por omisión se muestran marcadas con un asterisco en el diálogo de propiedades.

Configure el nodo MQInput tal como se indica a continuación:

  1. Especifique el nombre de la cola de la que el flujo de mensajes recibe mensajes. Debe predefinir esta cola WebSphere MQ para el gestor de colas que alberga el intermediario al que se difunde el flujo de mensajes.
  2. Seleccione Avanzadas en el navegador del diálogo de propiedades para establecer las propiedades que determinan cómo se debe procesar el mensaje, por ejemplo, sus características transaccionales. Muchas de estas propiedades se correlacionan con opciones en la invocación de MQGET.
    • Seleccione Modalidad de transacción de la lista desplegable para definir las características transaccionales sobre el manejo de este mensaje:
      • Si selecciona Automática, el mensaje entrante se recibe bajo punto de sincronismo si se ha marcado como permanente, de lo contrario, no. La propiedad de permanencia de entrada determina la transaccionalidad de todos los mensajes derivados que envía con posterioridad un nodo de salida, a menos que se haya alterado temporalmente de forma explícita la transaccionalidad del nodo de salida.
      • Si selecciona , el mensaje entrante se recibe bajo punto de sincronismo. Todos los mensajes derivados que envía posteriormente un nodo de salida de la misma instancia del flujo de mensajes se envían de modo transaccional, a menos que el nodo de salida haya alterado temporalmente de forma explícita la transaccionalidad.
      • Si selecciona No, el mensaje entrante no se recibe bajo punto de sincronismo. Todos los mensajes derivados que envía posteriormente un nodo de salida del flujo se envían sin transaccionalidad, a menos que el nodo de salida haya especificado que los mensajes se deben transferir bajo punto de sincronismo.
    • Seleccione Modalidad de orden de la lista desplegable para determinar el orden en el que se deben recuperar los mensajes de la cola de entrada. Esta propiedad sólo tiene efecto si la propiedad del flujo de mensajes Instancias adicionales se ha establecido para mayor que 0, es decir, en el caso de que varias hebras lean la cola de entrada. Los valores válidos son:
      • Valor por omisión. Los mensajes se recuperan en el orden que definen los atributos de cola, pero este orden no se garantiza mientras el flujo de mensajes procesa los mensajes.
      • Por ID de usuario. Los mensajes que tienen el mismo ID de usuario en MQMD se recuperan y procesan en el orden que definen los atributos de cola; se garantiza el mantenimiento de este orden cuando se procesan los mensajes. Un mensaje asociado a un identificador de usuario determinado que está procesando una hebra se procesa completamente antes de que la misma hebra, u otra hebra, puede iniciar el proceso de otro mensaje con el mismo identificador de usuario. No se garantiza el mantenimiento de ningún otro orden.
      • Por orden de cola. El nodo recupera y procesa los mensajes en el orden que definen los atributos de cola; se garantiza el mantenimiento de este orden cuando se procesan los mensajes. Este comportamiento es idéntico al que se muestra si la propiedad de flujo de mensajes Instancias adicionales está establecida en 0.

      Si desea ver más información detallada sobre esta opción, consulte el apartado Configuración del nodo para el manejo de grupos de mensajes.

    • Seleccione el recuadro de selección Orden lógico si desea asegurarse de que los mensajes que forman parte de un grupo de mensajes se reciben en el orden que ha asignado la aplicación emisora. Esta opción se correlaciona con la opción MQGMO_LOGICAL_ORDER de MQGMO de la MQI.

      Si deselecciona el recuadro de selección, los mensajes que se envían como parte de un grupo no se reciben en un orden predeterminado. Si un intermediario espera recibir mensajes por grupos y no se ha seleccionado este recuadro de selección, el orden de los mensajes de entrada no es significativo, o bien, se debe designar el flujo de mensajes para que los procese correctamente.

      También debe seleccionar el recuadro de selección Confirmar por grupo de mensajes si desea que el proceso de mensajes se confirme únicamente después de recibir y procesar el último mensaje del grupo.

      En la publicación WebSphere MQ Application Programming Reference encontrará más información sobre las opciones para las que están disponibles las correlaciones de esta propiedad.

      Si desea ver más información detallada sobre esta opción, consulte el apartado Configuración del nodo para el manejo de grupos de mensajes.

    • Seleccione el recuadro de selección Todos los mensajes disponibles si desea que la recuperación y el proceso de mensajes se lleve a cabo únicamente cuando todos los mensajes de un único grupo estén disponibles. De este modo, se correlaciona con la opción MQGMO_ALL_MSGS_AVAILABLE de MQGMO de la MQI. Deseleccione este recuadro de selección si la recuperación de mensajes no depende de que todos los mensajes de un grupo estén disponibles antes de que se inicie el proceso.

      En la publicación WebSphere MQ Application Programming Reference encontrará más información sobre las opciones para las que están disponibles las correlaciones de esta propiedad.

    • Especifique un identificador de mensaje en Coincidir con el ID del mensaje si desea que el nodo de entrada reciba únicamente los mensajes que contengan un valor de identificador de mensaje coincidente en el campo IDMsj de MQMD.

      Especifique un número par de dígitos hexadecimales (son válidos los caracteres del 0 al 9, de la A a la F y de la a a la f) hasta 48 dígitos, como máximo. Si el ID que especifica tiene una longitud inferior al tamaño del campo IDMsj, se rellena a la derecha con caracteres X'00'. De este modo, se correlaciona con la opción MQMO_MATCH_MSG_ID de MQGMO de la MQI.

      Deje esta propiedad en blanco si no desea que el nodo de entrada compruebe si coincide el ID del mensaje.

      En la publicación WebSphere MQ Application Programming Reference encontrará más información sobre las opciones para las que están disponibles las correlaciones de esta propiedad.

    • Especifique un identificador de mensaje en Coincidir con el ID de correlación si desea que el nodo de entrada reciba únicamente los mensajes que contienen un valor de identificador de correlación coincidente en el campo IDCorrel de MQMD.

      Especifique un número par de dígitos hexadecimales (son válidos los caracteres del 0 al 9, de la A a la F y de la a a la f) hasta 48 dígitos, como máximo. Si el ID que especifica tiene una longitud inferior al tamaño del campo IDCorrel, se rellena a la derecha con caracteres X'00'. De este modo, se correlaciona con la opción MQMO_MATCH_CORREL_ID de MQGMO de la MQI.

      Deje esta propiedad en blanco si no desea que el nodo de entrada compruebe si coincide el ID del mensaje.

      En la publicación WebSphere MQ Application Programming Reference encontrará más información sobre las opciones para las que están disponibles las correlaciones de esta propiedad.

    • Seleccione el recuadro de selección Convertir si desea que WebSphere MQ realice la conversión de datos en el mensaje al recuperarlo de la cola.

      WebSphere MQ convierte el mensaje entrante a la codificación y el juego de caracteres codificado especificado en el MQMD que suministra el nodo de entrada en la invocación MQGET para recuperar el mensaje de la cola de entrada. El flujo de mensajes genera todos los mensajes de salida utilizando estos valores y y los transfiere a colas de destino con los valores de Codificación e IDConjCaractCodif establecidos en MQMD.

      Esta propiedad se correlaciona con la opción MQGMO_CONVERT de MQGMO de la MQI.

      Deseleccione el recuadro de selección si no desea que WebSphere MQ convierta el mensaje.

      Si selecciona este recuadro, también debe especificar:

      • Convertir codificación. Especifique el número que representa la codificación para la que desea convertir datos numéricos en el cuerpo del mensaje. Los valores válidos incluyen:
        • 546 para DOS y todos los sistemas Windows
        • 273 para todos los sistemas UNIX
        • 785 para los sistemas z/OS

        Si no especifica ningún valor, se utiliza el valor del MQMD del mensaje entrante.

        Si especifica un valor no válido, no se realiza ninguna conversión.

      • Convertir ID de juego de caracteres codificado. Especifique el número que representa el identificador de juego de caracteres para el que desea convertir datos de caracteres en el cuerpo del mensaje.

        Si no especifica ningún valor, se utiliza el valor del MQMD del mensaje entrante.

        Si especifica un valor no válido, no se realiza ninguna conversión.

      Para obtener más información sobre la conversión de datos de WebSphere MQ y la utilización de esta opción, consulte la publicación WebSphere MQ Application Programming Guide. Si desea más información sobre los valores que puede especificar para Convertir codificación y Convertir ID de juego de caracteres codificado, consulte la publicación WebSphere MQ Application Programming Reference.

    • Seleccione el recuadro de selección Confirmar por grupo de mensajes si desea que el proceso de mensajes se confirme únicamente después de recibir y procesar el último mensaje del grupo. Si deja este recuadro de selección deseleccionado, se lleva a cabo una confirmación una vez que se ha propagado completamente cada mensaje a través del flujo de mensajes.

      Esta propiedad sólo es adecuada si se ha seleccionado Orden lógico.

      Establezca la propiedad Modalidad de orden en Por orden de cola si los mensajes de un grupo se deben recuperar y procesar en el orden en el que aparecen en la cola.

  3. Seleccione Descripción en el navegador del diálogo de propiedades para especificar una descripción corta, una descripción larga, o ambas.
  4. Pulse el botón en Aplicar para realizar los cambios en el nodo MQInput sin cerrar el diálogo de propiedades. Pulse el botón en Aceptar para aplicar los cambios y cerrar el diálogo de propiedades.

    Pulse el botón en Cancelar para cerrar el diálogo y descartar todos los cambios que ha realizado en las propiedades.

Conexión de terminales

MQInput direcciona cada mensaje que recupera correctamente al terminal de salida. Si no se ejecuta correctamente, se reintenta el mensaje. Si el tiempo de espera de reintento caduca (tal como lo define el atributo BackoutThreshold de la cola de entrada), el mensaje se direcciona al terminal de anomalías; puede conectar nodos a este terminal para manejar esta condición. Si no ha conectado el terminal de anomalías, el mensaje se escribe en la cola de restitución.

Si el nodo capta el mensaje después de emitirse una excepción más adelante en el flujo de mensajes, el mensaje se direcciona al terminal de captación. Si no ha conectado el terminal de captación, el mensaje se repite continuamente en bucle a través del nodo hasta que se resuelve el problema. Debe definir una cola de restitución o una cola de mensajes no entregados (DLQ) a fin de evitar que el mensaje se repita en bucle de forma continuada a través del nodo.

Configuración de transacciones coordinadas

Cuando incluye un nodo MQInput en un flujo de mensajes, el valor que establece para Modalidad de transacción define si los mensajes se deben recibir bajo punto de sincronismo:

  • Si lo establece en (el valor por omisión), el mensaje se recibe bajo punto de sincronismo (es decir, en una unidad de trabajo de WebSphere MQ). Todos los mensajes que envía con posterioridad un nodo de salida en la misma instancia del flujo de mensajes se transfieren bajo punto de sincronismo, a menos que el nodo de salida lo haya alterado temporalmente de forma explícita.
  • Si lo establece en Automático, el mensaje se recibe bajo punto de sincronismo en caso de que el mensaje entrante se haya marcado como permanente. De lo contrario, no. Todos los mensajes que envía con posterioridad un nodo de salida se transfieren bajo punto de sincronismo, tal como lo determina la propiedad de permanencia entrante, a menos que el nodo de salida lo haya alterado temporalmente de forma explícita.
  • Si lo establece en No, el mensaje no se recibe bajo punto de sincronismo. Todos los mensajes que envía con posterioridad un nodo de salida del flujo no se transfieren bajo punto de sincronismo, a menos que un nodo de salida individual haya especificado que el mensaje se debe transferir bajo punto de sincronismo.

(El nodo MQOutput es el único nodo de salida que se puede configurar para alterar temporalmente esta opción).

Configuración del nodo para el manejo de grupos de mensajes

WebSphere MQ ofrece soporte para grupos de mensajes; puede especificar que un mensaje pertenece a un grupo y que su proceso y el proceso de todos los demás mensajes del grupo se debe manejar como una transacción. Es decir, si el proceso de un mensaje del grupo no se ejecuta correctamente, se restituyen todos los mensajes del grupo. El proceso de mensajes se confirma cuando se procesa correctamente el último mensaje del grupo, sólo si el proceso de todos los mensajes se ha llevado a cabo de forma satisfactoria.

Si incluye mensajes en un grupo, y es importante que todos los mensajes del grupo se lean de la cola y se procesen en el orden en el que se han definido en el grupo, debe llevar a cabo todas las acciones que se indican más abajo:

  • Seleccione el recuadro de selección Confirmar por grupo de mensajes.
  • Seleccione el recuadro de selección Orden lógico.
  • Establezca la Modalidad de orden en Por orden de cola, o bien, establezca la propiedad del flujo de mensajes Instancias adicionales en 0. (Puede modificar las propiedades del flujo de mensajes al añadir el flujo de mensajes al archivo bar para la difusión). Si elige cualquiera de estas opciones (o ambas), el flujo de mensajes procesa los mensajes en una sola hebra de ejecución y el mensaje se procesa hasta el final antes de que se recupere el mensaje siguiente de la cola. En todos los demás casos, es posible que varias hebras de un único flujo de mensajes procesen varios mensajes, por lo que no existe garantía alguna de que el mensaje final de un grupo, que solicita la acción de confirmación o de restitución, se procese hasta el final después de todos los demás mensajes del grupo.

También debe asegurarse de que ningún otro flujo de mensajes recupere mensajes de la misma cola de entrada. Si fuera así, no existe garantía alguna sobre el orden en el que se procesan los mensajes de un grupo.

Si tiene varios flujos de mensajes, o instancias del mismo flujo de mensajes, que acceden a la misma cola, es posible que observe uno o más de los síntomas siguientes:

  • Los mensajes no se recuperan en el orden de cola de todas las hebras (o instancias) del flujo de mensajes.
  • Los mensajes no se procesan en el orden de cola de todas las hebras del flujo de mensajes.
  • No se recuperan todos los mensajes de la cola de todas las hebras del flujo de mensajes (es decir, los mensajes se comparten a través de hebras).
  • Los recursos MQ actualizados se confirman o se restituyen en tiempos incorrectos en todas las hebras del flujo de mensajes.

Terminales y propiedades

Los terminales del nodo MQInput se describen en la tabla siguiente:

Terminal Descripción
Terminal de anomalías Terminal de salida al que se direcciona el mensaje si se produce un error. Aunque se haya establecido la propiedad Validación, los mensajes que se propagan a este terminal no se validan.
Terminal de salida Terminal de salida al que se direcciona un mensaje si se recupera correctamente de la cola de WebSphere MQ.
Terminal de captación Terminal de salida al que se direcciona el mensaje si se emite una excepción en sentido descendente y la captura este nodo.

En las tablas siguientes se describen las propiedades del nodo; la columna que tiene el encabezamiento M indica si se trata de una propiedad obligatoria (marcada con un asterisco en el diálogo de propiedades si se debe especificar un valor cuando no se ha definido ningún valor por omisión), la columna que tiene el encabezamiento C indica que se trata de una propiedad configurable (se puede cambiar el valor cuando se añade el flujo de mensajes al archivo bar para su difusión).

Las propiedades básicas del nodo MQInput se describen en la tabla siguiente:

Propiedad M C Valor por omisión Descripción
Nombre de cola   Nombre de la cola de entrada de WebSphere MQ desde la que el nodo recupera mensajes (utilizando MQGET) para que los procese el flujo de mensajes.

Las propiedades avanzadas del nodo MQInput se describen en la tabla siguiente:

Propiedad M C Valor por omisión Descripción
Modalidad de transacción No Si el mensaje entrante se recibe bajo punto de sincronismo. Los valores válidos son Automático, y No.
Modalidad de orden No Valor por omisión Orden en el que se recuperan los mensajes de la cola de entrada y se procesan. Los valores válidos son Valor por omisión, Por ID de usuario y Por orden de cola.
Orden lógico No Seleccionado Si los mensajes se reciben en orden lógico, tal como define WebSphere MQ. Si selecciona el recuadro de selección, se realiza esta acción.
Todos los mensajes disponibles No Deseleccionado Si selecciona el recuadro de selección, todos los mensajes de un grupo deben estar disponibles para que se pueda recuperar un mensaje.
Coincidir con el ID del mensaje No No   Un ID de mensaje que debe coincidir con el ID de mensaje de MQMD del mensaje entrante.
Coincidir con el ID de correlación No No   Un ID de correlación que debe coincidir con el ID de correlación de MQMD del mensaje entrante.
Convertir No Deseleccionado Si WebSphere MQ convierte datos del mensaje que se va a recibir, conforme a los valores de IDConjCaractCodif y Codificación establecidos en MQMD. Si selecciona el recuadro de selección, se realiza esta acción.
Convertir codificación No No   Representación utilizada para valores numéricos en los datos del mensaje, expresada como un valor de entero. Esta propiedad sólo es válida si se ha seleccionado el recuadro de selección Convertir.
Convertir ID de juego de caracteres codificado No No   Identificador de juego de caracteres codificado de datos de caracteres en los datos del mensaje, expresado como un valor de entero. Esta propiedad sólo es válida si se ha seleccionado el recuadro de selección Convertir.
Confirmar por grupo de mensajes No Deseleccionado Cuando se confirma una transacción al procesar mensajes que forman parte de un grupo de mensajes. Si selecciona el recuadro de selección, la transacción se confirma una vez que se ha procesado el grupo de mensajes.

Las propiedades de descripción del nodo MQInput se describen en la tabla siguiente:

Propiedad M C Valor por omisión Descripción
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.

Conceptos relacionados
WebSphere MQ Enterprise Transport
Flujos de mensajes
Difusión de aplicaciones de flujos de mensajes

Tareas relacionadas
Cómo decidir los nodos que utilizar
Utilización de más de un nodo de entrada
Manejo de errores en flujos de mensajes
Utilización de colas de clúster WebSphere MQ para entrada y salida
Utilización de colas compartidas de WebSphere MQ para entrada y salida (z/OS)
Edición de propiedades configurables

Referencia relacionada
WebSphere MQ Enterprise Transport
Nodo Input
Nodo MQeInput
Nodo MQeOutput
Nodo MQOutput
Nodo MQReply
Nodo Real-timeInput
Nodo Real-timeOptimizedFlow
Nodo SCADAInput
Nodo SCADAOutput

página Web de la biblioteca de WebSphere MQ