Orden de mensajes estricto utilizando las especificaciones de activación o los puertos de escucha ASF conectados a WebSphere MQ Versión 6.0

Puede obtenerse el orden de mensajes estricto al desplegar aplicaciones de bean controlado por mensaje en el proveedor de mensajería de WebSphere MQ cuando no se han codificado recursos especiales en la aplicación para manejar los mensajes que llegan desordenados.

Para WebSphere Application Server versión 7 y posteriores, los puertos de escucha se estabilizan. Para obtener más información, consulte el artículo sobre las características que se han estabilizado. Debe planificar la migración de sus configuraciones de despliegue de beans controlados por mensajes de WebSphere MQ para pasar de utilizar puertos de escucha a utilizar especificaciones de activación. [AIX Solaris HP-UX Linux Windows][IBM i]Para obtener más información sobre cómo configurar especificaciones de activación para la modalidad no ASF, consulte Configuración de especificaciones de activación para la modalidad no ASF. No obstante, no debe iniciar esta migración hasta que esté seguro de que la aplicación no tiene que trabajar con servidores de aplicaciones anteriores WebSphere Application Server Versión 7. Por ejemplo, si tiene un clúster de servidor de aplicaciones con algunos miembros de la versión 6.1 y otros de una versión posterior, no debe migrar las aplicaciones en dicho clúster para que utilicen las especificaciones de activación hasta que haya migrado todos los servidores de aplicaciones del clúster a la versión posterior.

En este escenario se han establecido las presunciones siguientes:
  • La aplicación de beans controlados por mensajes (MDB) es transaccional.
  • El umbral de restitución (BOTHRESH) en la cola de WebSphere MQ se ha establecido en 0.
  • Se está utilizando WebSphere MQ Versión 6.0.

Configuración de WebSphere Application Server para entrega ordenada

  • Si utiliza puertos de escucha, el valor de Número máximo de sesiones de los puertos de escucha en WebSphere Application Server debe establecerse en 1.
  • Si utiliza especificaciones de activación, el valor de Número máximo de sesiones de servidor de las especificaciones de activación en WebSphere Application Server debe establecerse en 1.

Información importante acerca de esta configuración

  • Los puertos de escucha ASF y las especificaciones de activación de WebSphere MQ contienen dos partes separadas, que conjuntamente realizan la entrega de mensajes. El gestor de colas considera estas dos partes como aplicaciones independientes:
    • Una parte detecta los mensajes a medida que llegan, pero no los consume. En lugar de ello, los envía a la segunda parte.
    • La parte dos es una agrupación de sesiones de servidor que asigna una hebra para procesar el mensaje dentro de la transacción de la aplicación, y lo entrega al método onMessage() del MDB.
    Nota: Cuando un puerto de escucha ASF o especificación de activación está conectada a un gestor de colas WebSphere MQ Versión 6.0 o anterior, se utiliza un mecanismo de sondeo menos eficaz (basado en un cursor de examen) para detectar mensajes de la cola.

Circunstancias en las que los mensajes pueden llegar desordenados

Los mensajes pueden llegar desordenados con este despliegue en las circunstancias siguientes:
  • Los mensajes se pueden entregar fuera de orden durante una recuperación de la transacción:
    Nota: Un conjunto específico de sucesos debe producirse en un orden específico para que se pueda encontrar este escenario y, ello, como tal, no es común. Sin embargo, si la entrega del mensaje ordenado es imprescindible para el funcionamiento de la aplicación, deberá considerarla.
    • La entrega fuera de orden puede producirse con esta opción de despliegue durante la recuperación de una anomalía de uno de los siguientes componentes:
      • El servidor de aplicaciones que alberga el MDB
      • El gestor de colas de WebSphere MQ
      • Una red que se conecta con el servidor de aplicaciones y el gestor de colas
    • Si uno de estos componentes falla a mitad de un compromiso de dos fases de una transacción de MDB, el gestor de transacciones del servidor de aplicaciones restablece su conexión con el gestor de colas para resolver la transacción cuando el componente está disponible de nuevo.
    • Este proceso de recuperación es asíncrono y es posible que la entrega de nuevos mensajes al MDB comience antes del que el proceso de recuperación de la transacción haya finalizado. Si el resultado de la recuperación de la transacción es retrotraer la transacción, se devolverá el mensaje a la cola WebSphere MQ y se volverá a entregar a la aplicación, posiblemente después de que se hayan entregado los mensajes nuevos.
  • Después de una retrotracción de la transacción, el mensaje siguiente disponible en la cola puede ser entregado antes de que el mensaje se retrotracción se vuelva a entregar:
    • Para un puerto de escucha ASF, establecer Máximo de reintentos en cero impide la entrega fuera de orden después de una retrotracción deteniendo el puerto de escucha cuando se produce una retrotracción. No obstante, el puerto de escucha deberá reiniciarse manualmente a continuación.
    • Para una especificación de activación, la selección de Detener punto final si la entrega de mensajes falla y el establecimiento de Número de anomalías de entrega secuenciales antes de suspender el punto final en 0 impide la entrega fuera de orden después de una retrotracción pausando el punto final de mensaje cuando se produce una retrotracción. Sin embargo, el punto final de mensaje para el MDB deberá ser reanudado a continuación. Para obtener más información, consulte el Information Center de WebSphere MQ.
  • Durante la operación normal, cuando varias hebras están enviando mensajes al destino (para secuencias diferentes) utilizando transacciones:
    • Este comportamiento se debe a la operación del cursor para examinar de WebSphere MQ.
    • Cuando se confirma un mensaje en una cola de WebSphere MQ, mientras que otro mensaje enviado al destino no se confirma (dentro de una transacción que todavía no se ha completado), el cursor de examinar se traslada al mensaje más reciente de la cola y no vuelve automáticamente al mensaje anterior cuando finalmente se confirma. Esto puede hacer que los mensajes aparezcan en la cola siguiendo el cursor de examinar.
    • Si se produce esta situación, los mensajes más recientes dentro de una secuencia pueden entregarse al MDB antes de que el proveedor de mensajería de WebSphere MQ reexplore la cola y detecte el mensaje que ha aparecido detrás del cursor de examinar.
  • Si la cola de WebSphere MQ supervisada por una especificación de activación o puerto de escucha ASF tiene el atributo de secuencia de entrega de mensajes (MSGDLYSEQ) establecido en prioridad, el orden de mensajes puede fallar debido a las razones siguientes:
    • Los mensajes de una prioridad inferior se pueden entregar antes que los mensajes de una prioridad superior, cuando se envían mensajes de varias prioridades a una cola; este comportamiento se debe a la operación del cursor para examinar de WebSphere MQ. El cursor de examinar recorre todos los mensajes disponibles en la prioridad más alta, y, a continuación, pasa a los mensajes con prioridad más baja. Si llegan mensajes con prioridad más alta cuando el cursor de examinar está examinando actualmente los mensajes con prioridad más baja, es posible que los mensajes de prioridad más alta no se entreguen hasta que se hayan entregado todos los mensajes de prioridad más baja de la cola.
    • Los puertos de escucha ASF o especificaciones de activación que examinan colas que tienen el valor de Secuencia de entrega de mensajes establecido en FIFO no experimentan este problema, ya que WebSphere MQ ordena los mensajes de la cola por orden de llegada en lugar de hacerlo por prioridad.

Consideraciones sobre un despliegue en clúster

  • Sólo puede activar el MDB en un miembro del clúster, ya que el servidor de aplicaciones no tiene un recurso que pueda gestionar esta activación automáticamente.
  • Puede establecer el estado de inicio de los puertos de escucha en detenido, independientemente del establecimiento del estado de inicio de una aplicación.
  • Puede iniciar y detener manualmente aplicaciones, puertos de escucha ASF y puntos finales de mensaje con interfaces de MBean utilizando el script wsadmin o utilizando la interfaces com.ibm.websphere.management.AdminClient a partir de código Java™.

Icon that indicates the type of topic Concept topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cmm_wmq_smo_mq6
File name: cmm_wmq_smo_mq6.html