Gestión de mensajes con puntos finales de mensaje
Gestione la entrega de mensajes para los beans controlados por mensaje (MDB) que se desplieguen como puntos finales de mensaje. Los puntos finales de mensaje son beans gestionados (MBeans) para adaptadores de recursos de entrada compatibles con Java™ Platform, Enterprise Edition (Java EE) Connector Architecture (JCA) Versión 1.5.
Acerca de esta tarea
- Los mensajes fallidos exigen un proceso adicional, como entregarlos de nuevo al punto final a la escucha o redirigirlos a destinos alternativos que procesen los mensajes fallidos. Además, un adaptador de recursos puede volver a entregar un mensaje a un punto final un número infinito de veces.
- La redirección de mensajes exige la implementación de destinos especializados (colas y escuchas) para procesar los mensajes fallidos, así como la lógica para detectar anomalías de mensajes. La redirección de mensajes es proclive a generar errores y resulta costosa en términos informáticos debido a su complejidad.
La posibilidad de desactivar (dejar en pausa) y reactivar (reanudar) un punto final de mensaje específico mitiga estos problemas permitiendo que el administrador desactive el punto final desde los mensajes de proceso que están destinados a fallar. Cuando un punto final de mensaje se desactiva, puede reparar el recurso que causa los problemas y reactivar el punto final para reanudar el manejo de solicitudes de mensaje. Durante la resolución de problemas, el adaptador o la aplicación que alberga el punto final no se verá afectada.
Si se está conectando a WebSphere MQ, también puede utilizar la propiedad personalizada WAS_EndpointInitialState en la especificación de activación para realizar el inicio de punto final de mensaje fuera en un estado desactivado. Cuando se establece esta propiedad en Inactivo, el bean controlado por mensaje se conecta al destino, pero no empieza a recibir mensajes. Utilice este valor para desactivar automáticamente un punto final de mensaje si sabe que determinadas tareas deben completarse, deben iniciarse los servicios, o deben realizarse verificaciones, antes de que comience el manejo de mensajes. Puede activar el punto final de mensajes de la misma manera que reactivaría un punto final de mensaje que hubiera colocado en pausa durante su ejecución.
Procedimiento
Resultados
- Escucha de MDB en un tema no duradero (en función de la configuración): el comportamiento que implica la desactivación (pausa) de un punto final de mensaje a menudo depende de la función que realiza. Por ejemplo, si ha configurado un bean controlado por mensaje para que esté a la escucha en un tema no duradero del bus de integración de servicios, desactivar el punto final de mensaje es análogo a detener la aplicación y hará que la suscripción se cierre. Esto significa que el bean controlado por mensaje no recibirá los mensajes que se publican mientras el punto final de mensaje esté en pausa.
- Bean controlado por mensaje en clúster (en función de la topología): en este caso, una aplicación de bean controlado por mensaje se ha desplegado en un clúster de servidores. Un Mbean de punto final de mensaje determinado controla sólo el comportamiento del MDB en un servidor del clúster, por lo que sólo hará que un servidor deje de procesar mensajes. En función de la configuración de mensajería y el adaptador de recursos específico que esté en uso, los mensajes que el punto final de mensaje hubiera consumido podrían ser consumidos por los puntos finales de mensaje activos del clúster o podrían permanecer sin ser consumidos hasta que el punto final de mensaje en pausa se reanude.
- Bean controlado por mensaje en clúster, cola no en clúster: en este caso, dispone de un clúster de servidores con el mismo bean controlado por mensaje desplegado en ellos. Esto es similar al caso en el que se dispone de distintos beans controlados por mensaje con los mismos criterios de selección de mensajes, excepto que, en este caso, los beans controlados por mensaje son lógicamente el mismo bean controlado por mensaje. Al poner en pausa el punto final, sólo uno de los servidores dejará de recibir mensajes y los otros beans controlados por mensaje recibirán todos los mensajes; ninguno de los mensajes quedará huérfano. Para detener todos los puntos finales, debe dirigir cada servidor del clúster para detener el punto final de mensaje local.
- Bean controlado por mensaje en clúster, cola en clúster: en este caso, cada bean controlado por mensaje extrae los mensajes de una partición distinta de la cola. La mensajería a través de WebSphere MQ y el Bus de integración de servicios tiene posibilidades similares, aunque distintas. Si va a utilizar WebSphere MQ, al poner en pausa un punto, el resto de instancias del bean controlado por mensajes no podrán recibir los mensajes. En el Bus de integración de servicios, los mensajes de un punto final en pausa se redirigirán a los demás beans controlados por mensaje.