Hay un conjunto de comprobaciones que puede llevar a cabo para investigar por qué los mensajes no se consumen en un destino en un bus de integración de servicios, cuando los mensajes se direccionan a través de un punto de mensaje remoto y se detiene la aplicación consumidora.
Acerca de esta tarea
Complete esta tarea como parte de
Investigación de la razón de que los mensajes punto a punto no se consuman o
Investigación de la razón de que los mensajes de publicación/suscripción no lleguen a una suscripción. Esta tarea
explica cómo investigar el flujo de mensajes en un escenario en que los
mensajes se direccionan a través de un punto de mensaje remoto y la aplicación
consumidora se ha detenido.
Los diagramas siguientes muestran los posibles escenarios. En la Figura 1, un bus contiene tres motores de mensajería, ME1, ME2 y ME3. La aplicación productora está conectada a ME1 y la aplicación consumidora está conectada a ME3.
Los mensajes se direccionan de ME1 a ME3 mediante ME2, y se consumen de ME3. Este escenario solo se ocupa de ME2 y ME3. ME3 aloja un punto de mensaje remoto que representa el punto de mensaje alojado por
ME2. En la Figura 2, ME2 y ME 2 alojan lo puntos de publicación representados por los puntos de publicación remotos en ME1, donde está conectada la aplicación productora. La aplicación suscriptora B está conectada a ME3 y recibe mensajes indirectamente de ME1, mediante una suscripción en ME2. Un punto de suscripción remoto en ME 3. Se hace referencia a estos motores de mensajería en los pasos siguientes.Figura 1. Consumo de mensajes punto a punto utilizando un punto de mensaje remoto
Figura 2. Mensajería de publicación/suscripción utilizando un punto de mensaje remoto
Procedimiento
- Si ha seguido los pasos indicados en Investigación de la razón de que los mensajes punto a punto no se consuman oInvestigación de la razón de que los mensajes de publicación/suscripción no lleguen a una suscripción antes de comenzar esta
tarea, debe haber visualizado una lista de solicitudes de mensajes. En el panel anterior (propiedades de tiempo de ejecución para el punto de
mensaje), compruebe que el valor de
Solicitudes de mensaje emitidas (sólo punto a punto) o
Solicitudes de mensaje recibidas (sólo de
publicación/suscripción) es mayor que cero. Si el valor no es mayor que cero, no se ha realizado ninguna solicitud. Compruebe si hay errores en la aplicación consumidora:
- Compruebe que la aplicación está conectada a ME2.
- Compruebe que la aplicación no ha producido ningún error que pueda explicar por qué los mensajes no se consumen.
- Compruebe que el consumidor se ha iniciado.
- Compruebe que la aplicación intentó consumir un mensaje:
- Si la aplicación utiliza un consumidor asíncrono, compruebe que el
consumidor asíncrono estaba registrado.
- Si la aplicación es síncrona, compruebe que el consumidor ha realizado una función de "recepción" o "recepción con espera" (esto podría necesitar una modificación en la aplicación para ampliar el tiempo que ésta esperará un mensaje).
- Si el número de solicitudes de mensajes emitidas es mayor que cero, se
han efectuado solicitudes de ME3 a ME2 de mensajes en el punto de mensaje. Compruebe que el valor de Solicitudes de mensaje
completadas es mayor que cero. En caso contrario, compruebe que los dos motores de mensajería se pueden comunicar entre sí, consulte Resolución de problemas de integración de servicios: comprobación de la comunicación entre dos motores de mensajería en un bus.
- Si el número de solicitudes de mensajes completadas es mayor que cero,
ME3 emite solicitudes, ME2 las procesa y ME3 las completa. Para asegurarse de que la aplicación que se está investigando realizó estas solicitudes, registre los valores actuales de Solicitudes de mensaje completadas y Solicitudes de mensaje emitidas o Solicitudes de mensaje recibidas.
Vuelva a ejecutar la aplicación consumidora y
compruebe que han aumentado ambos valores.
Si los valores no aumentan, la aplicación no ha realizado la solicitud de ME3 a
ME2 para este punto de mensaje (los números existentes están relacionados con
una aplicación anterior que consumía mensajes). Compruebe si hay errores en la aplicación consumidora:
- Compruebe que la aplicación se ha iniciado.
- Compruebe que el nombre del destino que se consume es correcto.
- Si los valores aumentan, la solicitud de
mensaje se ha emitido y completado, pero la aplicación consumidora no ha devuelto ni
procesado ningún mensaje.
- Compruebe que los criterios de selección de la aplicación coinciden con el mensaje o mensajes disponibles en el punto de mensaje.
- Compruebe que la aplicación recibe el mensaje correctamente verificando si
hay errores de aplicación o de tiempo de ejecución.
Qué hacer a continuación
Si todavía tiene problemas, póngase en contacto con el representante
del servicio al cliente de IBM.