Directriz: Diseño de beans controlados por mensajes
Esta directriz trata la forma en que diseñar beans controlados por mensajes para una aplicación J2EE.
Relaciones
Elementos relacionados
Descripción principal

Introducción

Esta directriz se centra en el diseño de beans controlados por mensajes. En la sección Directriz de producto de trabajo: beans controlados por mensajes encontrará ayuda adicional sobre los beans controlados por mensajes como, por ejemplo, para conocer la forma de identificarlos y modelarlos. En la sección Directriz de producto de trabajo: Enterprise JavaBeans (EJB) encontrará ayuda general sobre los EJB.

Observe que puesto que los beans controlados por mensajes se invocan indirectamente mediante mensajes, en lugar de hacerlo de forma directa mediante operaciones de interfaz, su diseño implica elaborar un formato de mensaje y describir el comportamiento en relación con la respuesta de los mensajes, en lugar de elaborar operaciones de interfaz.

Transacciones

Una limitación en la utilización de la mensajería está en que el productor de un mensaje y el consumidor del mensaje (el bean controlado por mensajes) no pueden participar en la misma transacción. El productor puede utilizar la transacción para colocar el mensaje en la cola, y el bean controlado por mensaje puede utilizar una transacción distinta para confirmar el consumo del mensaje, pero siempre se tratará de transacciones separadas.

Los beans controlados por mensajes tienen la posibilidad de utilizar transacciones gestionadas por contenedor o gestionadas por bean. En general, las transacciones gestionadas por contenedor son más sencillas y, por lo tanto, debería ser la alternativa preferida. Consulte la sección Técnica: diseño de Enterprise JavaBeans (EJB) para obtener más ayuda.

Orden de los mensajes

Cada bean controlado por mensajes es una clase activa de la que puede haber varias instancias. Puesto que cada instancia de bean controlado por mensajes se ejecuta de forma concurrente, el proceso de un mensaje que una instancia recibe puede que se complete antes o después de otro mensaje que otra instancia haya procesado.

Esto significa que los mensajes se pueden consumir en un orden diferente al producido. El diseño de los beans controlados por mensajes debe tener en cuenta esta posibilidad.