Orden de mensajes estricto con el proveedor de mensajería de IBM MQ y aplicaciones de beans controlados por mensajes (MDB)
El orden de los mensajes es importante para algunas aplicaciones de mensajería asíncrona; es decir, es importante procesar mensajes en el mismo orden en que el productor los envía. Si este tipo de orden de mensajes es importante para la aplicación, su diseño debe tenerlo en cuenta.
Por ejemplo, una aplicación de mensajería que procesa reservas de asientos puede tener componentes de productor y un componente de consumidor. Un componente de productor envía un mensaje al componente de consumidor cuando un cliente reserva un asiento. Si el cliente cancela la reserva, entonces el productor (o probablemente un productor diferente) envía un segundo mensaje. Generalmente, el componente de consumidor debe procesar el primer mensaje (que reserva el asiento) antes de procesar el segundo mensaje (que cancela la reserva).
Algunas aplicaciones utilizan un patrón asíncrono (petición-respuesta) en el que el productor espera una respuesta a cada mensaje antes de enviar el mensaje siguiente. En este tipo de aplicación, el consumidor controla el orden en el que recibe los mensajes y puede garantizar que es el mismo orden con el que los productores lo envían. Otras aplicaciones utilizan un patrón asíncrono (activar y olvidar) en el que el productor envía mensajes sin esperar respuestas. Incluso en este tipo de aplicación, generalmente el orden se conserva, esto es, un consumidor puede esperar la recepción de los mensajes en el mismo orden en el que los productores los envían, especialmente cuando pasa una cantidad de tiempo significativa entre el envío de mensajes consecutivos. No obstante, el diseño debe considerar factores que pueden interrumpir este orden.
El orden de los mensajes se interrumpe si la aplicación envía mensajes con prioridades diferentes (los mensajes con prioridad más alta pueden superar a los mensajes con prioridad más baja) o si la aplicación recibe de forma explícita un mensaje que no sea el primero especificando selectores de mensajes. El proceso paralelo y el proceso de errores o de excepciones también pueden afectar el orden de los mensajes.