Message Linking
Message linking is a feature that allows the messages being sent by any enterprise bean to be routed to a specific message-driven bean in the same deployment. By using message linking, you can orchestrate a flow of messages between components in the same application. This is achieved by assigning logical names to destinations instead of using a real JCA endpoint; we may think of message destination references as virtual endpoints (see Figure 8-6).

Figure 8-6. Sending events to the message-link abstraction, which delegates to a real destination
When we discussed this method earlier in the chapter, we never really mentioned where a user registration message was being sent; it could go to an emailing system or some other vendor listening in. However, message linking makes sure that the message goes directly to an explicit message-driven bean that we deploy.
For example, consider the following stateless session bean:
@Stateless(name = "MessageSendingEJB")
@Local(MessageSendingBusiness.class)
public class MessageSendingBean implements MessageSendingBusiness
{
/**
* Queue we'll send messages to; logical name as wired from
* the message-destination-link
*/
@Resource(name = "jms/MessageDestinationLinkQueue")
// Name to match message-destination-ref-name
private Queue queue;
...
}Session Beans Should Not Receive Messages
Session beans respond to calls from EJB clients, and they ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access