Cómo garantizar que los mensajes no se pierdan

Es importante proteger los mensajes que fluyen a través del dominio de intermediarios. Esto se aplica tanto a los mensajes que genera la aplicación como a los que se utilizan internamente para la comunicación entre componentes. Los mensajes que se utilizan internamente entre componentes siempre usan el protocolo WebSphere MQ. Los mensajes de aplicación pueden utilizar todos los protocolos de transporte para los que se ofrece soporte.

Para los mensajes internos de aplicación que viajan a través de WebSphere MQ, existen dos técnicas para la protección contra la pérdida de mensajes:

Para obtener más información sobre cómo utilizar estas aplicaciones, consulte la publicación WebSphere MQ System Administration Guide.

Mensajes internos

Los componentes de WebSphere Business Integration Event Broker utilizan mensajes WebSphere MQ para comunicar sucesos y datos entre subsistemas y procesos de intermediario, y el Gestor de configuración y el Servidor de nombres de usuarios. Los componentes garantizan el aprovechamiento de las características de WebSphere MQ para la protección contra la pérdida de mensajes. No es necesario que lleve a cabo ningún paso adicional a fin de configurar WebSphere MQ o WebSphere Business Integration Event Broker para la protección contra la pérdida de mensajes internos.

Mensajes de aplicación

Si la entrega de mensajes de aplicación es crítica, debe diseñar programas de aplicación y los flujos de mensajes que deben utilizar para garantizar que los mensajes no se pierdan. Las técnicas que se pueden utilizar varían en función del protocolo que usen las aplicaciones.

WebSphere MQ Enterprise Transport y WebSphere MQ Mobile Transport
Si utiliza los nodos de entrada incorporados que aceptan mensajes a través de los protocolos de WebSphere MQ o WebSphere MQ Everyplace, puede utilizar las directrices y las recomendaciones que se indican a continuación:
  • Utilización de mensajes permanentes

    Los productos de mensajería de WebSphere MQ ofrecen permanencia de mensajes, que define la longevidad del mensaje en el sistema y garantiza la integridad del mensaje. Los mensajes no permanentes se pierden en caso de que se produzca una anomalía en el sistema o en el gestor de colas. Los mensajes permanentes siempre se recuperan si se produce una anomalía.

    Puede controlar la permanencia de los mensajes utilizando los procedimientos siguientes:
    • Programe las aplicaciones que transfieren mensajes a una cola utilizando la MQI o AMI para indicar que los mensajes son permanentes.
    • Defina la cola de entrada con permanencia de mensajes como valor por omisión.
    • Configure el nodo de salida para manejar mensajes permanentes.
    • Programe las aplicaciones de suscriptor para que soliciten permanencia de mensajes.

    Cuando un nodo de entrada lee un mensaje, se lee desde una cola de entrada. La acción por omisión es utilizar la permanencia definida en la cabecera del mensaje WebSphere MQ (MQMD) y lo puede haber establecido la aplicación que crea el mensaje, o bien, la permanencia por omisión de la cola de entrada. El mensaje conserva esta permanencia a lo largo de todo el flujo de mensajes, a menos que se cambie en un nodo de proceso posterior.

    Puede alterar temporalmente el valor de permanencia de cada mensaje cuando el flujo de mensajes termina en un nodo de salida. Este nodo tiene una propiedad que le permite especificar la permanencia de mensaje de cada mensaje cuando se transfiere a la cola de salida, bien sea como valor obligatorio o como valor por omisión. Si especifica el valor por omisión, el mensaje toma el valor de permanencia definido para las colas en las que se escriben los mensajes.

    Si el mensaje pasa a través de un nodo Publication, las opciones de registro de los suscriptores determinan la permanencia de los mensajes enviados a los suscriptores. Si un suscriptor ha solicitado entrega de mensajes permanentes y tiene autorización para ello mediante ACL explícitas o implícitas (heredadas), el mensaje se entrega permanentemente, sin tener en cuenta su propiedad de permanencia existente. Además, si el usuario ha solicitado entrega de mensajes no permanentes, el mensaje se entrega como no permanente, sin tener en cuenta su propiedad de permanencia existente.

  • Proceso de mensajes bajo control de punto de sincronismo

    La acción por omisión de un flujo de mensajes es procesar los mensajes entrantes bajo punto de sincronismo en una transacción controlada por el intermediario, lo que significa que el intermediario restituye los mensajes que no se procesan correctamente, por el motivo que sea. Puesto que se ha recibido bajo punto de sincronismo, el mensaje anómalo se rehabilita en la cola de entrada y se puede volver a procesar. Si el proceso no se ejecuta correctamente, se ejecutan los procedimientos de manejo de errores que se han activado para este flujo de mensajes (definidos en la configuración del flujo de mensajes o en el intermediario).

    Para obtener información detallada sobre el proceso de nodos de entrada, consulte el apartado Gestión de errores en el nodo de entrada.

WebSphere MQ Telemetry Transport
Si utiliza el nodo de entrada incorporado SCADAInput que acepta mensajes de dispositivos de telemetría a través del protocolo MQIsdp, este protocolo no dispone del concepto de colas. Los clientes se conectan a un nodo SCADAInput al especificar el número de puerta desde el que el nodo está a la escucha. Los mensajes se envían a los clientes utilizando un IDcliente. Sin embargo, puede especificar un QoS (Calidad de servicio) máximo dentro de un mensaje de suscripción SCADA, que es similar para la permanencia:
  • QoS0 No permanente
  • QoS1 Permanente, pero se puede entregar más de una vez
  • QoS2 Una y sólo una entrega

Si se publica un mensaje SCADA, se puede actualizar al nivel superior que acepta el cliente. En determinadas circunstancias, puede significar que el mensaje se convierte en no permanente.

WebSphere MQ Real-time Transporty WebSphere MQ Multicast Transport
Si utiliza los nodos de entrada incorporados Real-timeInput y Real-timeOptimizedFlow que aceptan mensajes de JMS y aplicaciones multidifusión, no existen recursos disponibles para la protección contra la pérdida de mensajes. No obstante, puede proporcionar procedimientos de recuperación al configurar el flujo de mensajes para que maneje sus propios errores.

Conceptos relacionados
Flujos de mensajes
Soporte para aplicaciones de usuario final

Tareas relacionadas
Diseño de un flujo de mensajes
Creación de un flujo de mensajes
Definición del contenido del flujo de mensajes
Manejo de errores en flujos de mensajes
Gestión de errores en el nodo de entrada
Soporte de aplicaciones de usuario final

Referencia relacionada
Nodos incorporados
WebSphere MQ Enterprise Transport
WebSphere MQ Mobile Transport
WebSphere MQ Multicast Transport
WebSphere MQ Real-time Transport
WebSphere MQ Telemetry Transport

página Web de la biblioteca de WebSphere MQ