Orden de mensajes estricto utilizando especificaciones de activación o puertos de escucha ASF conectados a WebSphere MQ Versión 7.x
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.
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.
- 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.
- Si utiliza WebSphere MQ Versión 7.0 o posterior.
Configuración de WebSphere Application Server para entrega ordenada
- El gestor de colas de WebSphere MQ debe estar en ejecución en WebSphere MQ Versión 7.0 o posterior.
- La conexión con el gestor de colas debe utilizar la modalidad normal del proveedor de mensajería de WebSphere MQ. Consulte el tema Reglas de selección de la modalidad de proveedor de mensajería de WebSphere MQ del Information Center de WebSphere MQ.
- 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:
- La parte uno 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.
- A partir de la versión 7.0, WebSphere MQ proporciona un modelo de transferencia para la detección de mensajes, que resulta más eficaz que el modelo de sondeo utilizado en versiones anteriores de WebSphere MQ, y proporciona un mejor orden de mensajes cuando funciona normalmente.
Circunstancias en las que los mensajes se pueden entregar desordenados
Los mensajes se pueden entregar sin orden con esta configuración en las circunstancias siguientes:
Consideraciones sobre un despliegue en clúster
- Debe activar el MDB sólo 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™ .