1. An application places a message on a message-request queue.
2. An application may listen to a message-response queue.
3. A Message-Driven Bean is listening to the message-request queue. When a message is found on the queue, the onMessage() method of the Message-Driven Bean is called and executed by the
EJB container.
Ideally, code in the Message-Driven Bean will do some message processing and then call on a Session EJB for business logic with data extracted from the message.
For emphasis, business logic always goes in a Session EJB and should not be coded in Message-Driven Beans.
Hope this helps!